static TemplateLoader createTemplateLoader( String templatePath, Configuration cfg, Class classLoaderClass, ServletContext srvCtx) throws IOException { final int settingAssignmentsStart = findTemplatePathSettingAssignmentsStart(templatePath); String pureTemplatePath = (settingAssignmentsStart == -1 ? templatePath : templatePath.substring(0, settingAssignmentsStart)) .trim(); if (pureTemplatePath.startsWith(TEMPLATE_PATH_PREFIX_CLASS)) { String packagePath = pureTemplatePath.substring(TEMPLATE_PATH_PREFIX_CLASS.length()); packagePath = normalizeToAbsolutePackagePath(packagePath); templateLoader = new ClassTemplateLoader(classLoaderClass, packagePath); } else if (pureTemplatePath.startsWith(TEMPLATE_PATH_PREFIX_CLASSPATH)) { packagePath = normalizeToAbsolutePackagePath(packagePath); List listItems = parseCommaSeparatedTemplatePaths(commaSepItems); TemplateLoader[] templateLoaders = new TemplateLoader[listItems.size()]; for (int i = 0; i < listItems.size(); i++) { String pathItem = (String) listItems.get(i); templateLoaders[i] = createTemplateLoader(pathItem, cfg, classLoaderClass, srvCtx);
jettyTaglibJarPatterns = attrVal != null ? InitParamParser.parseCommaSeparatedPatterns(attrVal) : null; } catch (Exception e) { LOG.error("Failed to parse application context attribute \"" if (sysPropVal != null) { try { List/*<String>*/ classpathTldsSysProp = InitParamParser.parseCommaSeparatedList(sysPropVal); if (classpathTldsSysProp != null) { mergedClassPathTlds.addAll(classpathTldsSysProp);
static List parseCommaSeparatedPatterns(String value) throws ParseException { List/*<String>*/ values = parseCommaSeparatedList(value); List/*<Pattern>*/ patterns = new ArrayList(values.size()); for (int i = 0; i < values.size(); i++) { patterns.add(Pattern.compile((String) values.get(i))); } return patterns; }
/** * Create the template loader. The default implementation will create a {@link ClassTemplateLoader} if the template * path starts with {@code "class://"}, a {@link FileTemplateLoader} if the template path starts with * {@code "file://"}, and a {@link WebappTemplateLoader} otherwise. Also, if * {@link Configuration#Configuration(freemarker.template.Version) incompatible_improvements} is 2.3.22 or higher, * it will create a {@link MultiTemplateLoader} if the template path starts with {@code "["}. * * @param templatePath * the template path to create a loader for * @return a newly created template loader */ protected TemplateLoader createTemplateLoader(String templatePath) throws IOException { return InitParamParser.createTemplateLoader(templatePath, getConfiguration(), getClass(), getServletContext()); }
/** * This is like {@link #parseCommaSeparatedList(String)}, but is not confused by commas inside * {@code ?settings(...)} parts at the end of the items. */ static List parseCommaSeparatedTemplatePaths(String commaSepItems) { List listItems; listItems = new ArrayList(); while (commaSepItems.length() != 0) { int itemSettingAssignmentsStart = findTemplatePathSettingAssignmentsStart(commaSepItems); int pureItemEnd = itemSettingAssignmentsStart != -1 ? itemSettingAssignmentsStart : commaSepItems.length(); int prevComaIdx = commaSepItems.lastIndexOf(',', pureItemEnd - 1); int itemStart = prevComaIdx != -1 ? prevComaIdx + 1 : 0; final String item = commaSepItems.substring(itemStart).trim(); if (item.length() != 0) { listItems.add(0, item); } else if (listItems.size() > 0) { throw new TemplatePathParsingException("Missing list item before a comma"); } commaSepItems = prevComaIdx != -1 ? commaSepItems.substring(0, prevComaIdx).trim() : ""; } return listItems; }
private List/*<MetaInfTldSource>*/ parseAsMetaInfTldLocations(String value) throws ParseException { List/*<String>*/ values = InitParamParser.parseCommaSeparatedList(value); for (Iterator it = values.iterator(); it.hasNext(); ) { final String itemStr = (String) it.next();
/** * Create the template loader. The default implementation will create a {@link ClassTemplateLoader} if the template * path starts with {@code "class://"}, a {@link FileTemplateLoader} if the template path starts with * {@code "file://"}, and a {@link WebappTemplateLoader} otherwise. Also, if * {@link Configuration#Configuration(freemarker.template.Version) incompatible_improvements} is 2.3.22 or higher, * it will create a {@link MultiTemplateLoader} if the template path starts with {@code "["}. * * @param templatePath * the template path to create a loader for * @return a newly created template loader */ protected TemplateLoader createTemplateLoader(String templatePath) throws IOException { return InitParamParser.createTemplateLoader(templatePath, getConfiguration(), getClass(), getServletContext()); }
/** * This is like {@link #parseCommaSeparatedList(String)}, but is not confused by commas inside * {@code ?settings(...)} parts at the end of the items. */ static List parseCommaSeparatedTemplatePaths(String commaSepItems) { List listItems; listItems = new ArrayList(); while (commaSepItems.length() != 0) { int itemSettingAssignmentsStart = findTemplatePathSettingAssignmentsStart(commaSepItems); int pureItemEnd = itemSettingAssignmentsStart != -1 ? itemSettingAssignmentsStart : commaSepItems.length(); int prevComaIdx = commaSepItems.lastIndexOf(',', pureItemEnd - 1); int itemStart = prevComaIdx != -1 ? prevComaIdx + 1 : 0; final String item = commaSepItems.substring(itemStart).trim(); if (item.length() != 0) { listItems.add(0, item); } else if (listItems.size() > 0) { throw new TemplatePathParsingException("Missing list item before a comma"); } commaSepItems = prevComaIdx != -1 ? commaSepItems.substring(0, prevComaIdx).trim() : ""; } return listItems; }
static TemplateLoader createTemplateLoader( String templatePath, Configuration cfg, Class classLoaderClass, ServletContext srvCtx) throws IOException { final int settingAssignmentsStart = findTemplatePathSettingAssignmentsStart(templatePath); String pureTemplatePath = (settingAssignmentsStart == -1 ? templatePath : templatePath.substring(0, settingAssignmentsStart)) .trim(); if (pureTemplatePath.startsWith(TEMPLATE_PATH_PREFIX_CLASS)) { String packagePath = pureTemplatePath.substring(TEMPLATE_PATH_PREFIX_CLASS.length()); packagePath = normalizeToAbsolutePackagePath(packagePath); templateLoader = new ClassTemplateLoader(classLoaderClass, packagePath); } else if (pureTemplatePath.startsWith(TEMPLATE_PATH_PREFIX_CLASSPATH)) { packagePath = normalizeToAbsolutePackagePath(packagePath); List listItems = parseCommaSeparatedTemplatePaths(commaSepItems); TemplateLoader[] templateLoaders = new TemplateLoader[listItems.size()]; for (int i = 0; i < listItems.size(); i++) { String pathItem = (String) listItems.get(i); templateLoaders[i] = createTemplateLoader(pathItem, cfg, classLoaderClass, srvCtx);
jettyTaglibJarPatterns = attrVal != null ? InitParamParser.parseCommaSeparatedPatterns(attrVal) : null; } catch (Exception e) { LOG.error("Failed to parse application context attribute \"" if (sysPropVal != null) { try { List/*<String>*/ classpathTldsSysProp = InitParamParser.parseCommaSeparatedList(sysPropVal); if (classpathTldsSysProp != null) { mergedClassPathTlds.addAll(classpathTldsSysProp);
newClasspathTlds.addAll(classpathTlds); newClasspathTlds.addAll(InitParamParser.parseCommaSeparatedList(value)); classpathTlds = newClasspathTlds; } else {
/** * Create the template loader. The default implementation will create a {@link ClassTemplateLoader} if the template * path starts with {@code "class://"}, a {@link FileTemplateLoader} if the template path starts with * {@code "file://"}, and a {@link WebappTemplateLoader} otherwise. Also, if * {@link Configuration#Configuration(freemarker.template.Version) incompatible_improvements} is 2.3.22 or higher, * it will create a {@link MultiTemplateLoader} if the template path starts with {@code "["}. * * @param templatePath * the template path to create a loader for * @return a newly created template loader */ protected TemplateLoader createTemplateLoader(String templatePath) throws IOException { return InitParamParser.createTemplateLoader(templatePath, getConfiguration(), getClass(), getServletContext()); }
/** * This is like {@link #parseCommaSeparatedList(String)}, but is not confused by commas inside * {@code ?settings(...)} parts at the end of the items. */ static List parseCommaSeparatedTemplatePaths(String commaSepItems) { List listItems; listItems = new ArrayList(); while (commaSepItems.length() != 0) { int itemSettingAssignmentsStart = findTemplatePathSettingAssignmentsStart(commaSepItems); int pureItemEnd = itemSettingAssignmentsStart != -1 ? itemSettingAssignmentsStart : commaSepItems.length(); int prevComaIdx = commaSepItems.lastIndexOf(',', pureItemEnd - 1); int itemStart = prevComaIdx != -1 ? prevComaIdx + 1 : 0; final String item = commaSepItems.substring(itemStart).trim(); if (item.length() != 0) { listItems.add(0, item); } else if (listItems.size() > 0) { throw new TemplatePathParsingException("Missing list item before a comma"); } commaSepItems = prevComaIdx != -1 ? commaSepItems.substring(0, prevComaIdx).trim() : ""; } return listItems; }
static TemplateLoader createTemplateLoader( String templatePath, Configuration cfg, Class classLoaderClass, ServletContext srvCtx) throws IOException { final int settingAssignmentsStart = findTemplatePathSettingAssignmentsStart(templatePath); String pureTemplatePath = (settingAssignmentsStart == -1 ? templatePath : templatePath.substring(0, settingAssignmentsStart)) .trim(); if (pureTemplatePath.startsWith(TEMPLATE_PATH_PREFIX_CLASS)) { String packagePath = pureTemplatePath.substring(TEMPLATE_PATH_PREFIX_CLASS.length()); packagePath = normalizeToAbsolutePackagePath(packagePath); templateLoader = new ClassTemplateLoader(classLoaderClass, packagePath); } else if (pureTemplatePath.startsWith(TEMPLATE_PATH_PREFIX_CLASSPATH)) { packagePath = normalizeToAbsolutePackagePath(packagePath); List listItems = parseCommaSeparatedTemplatePaths(commaSepItems); TemplateLoader[] templateLoaders = new TemplateLoader[listItems.size()]; for (int i = 0; i < listItems.size(); i++) { String pathItem = (String) listItems.get(i); templateLoaders[i] = createTemplateLoader(pathItem, cfg, classLoaderClass, srvCtx);
jettyTaglibJarPatterns = attrVal != null ? InitParamParser.parseCommaSeparatedPatterns(attrVal) : null; } catch (Exception e) { LOG.error("Failed to parse application context attribute \"" if (sysPropVal != null) { try { List/*<String>*/ classpathTldsSysProp = InitParamParser.parseCommaSeparatedList(sysPropVal); if (classpathTldsSysProp != null) { mergedClassPathTlds.addAll(classpathTldsSysProp);
static List parseCommaSeparatedPatterns(String value) throws ParseException { List/*<String>*/ values = parseCommaSeparatedList(value); List/*<Pattern>*/ patterns = new ArrayList(values.size()); for (int i = 0; i < values.size(); i++) { patterns.add(Pattern.compile((String) values.get(i))); } return patterns; }
static List parseCommaSeparatedPatterns(String value) throws ParseException { List/*<String>*/ values = parseCommaSeparatedList(value); List/*<Pattern>*/ patterns = new ArrayList(values.size()); for (int i = 0; i < values.size(); i++) { patterns.add(Pattern.compile((String) values.get(i))); } return patterns; }
private List/*<MetaInfTldSource>*/ parseAsMetaInfTldLocations(String value) throws ParseException { List/*<String>*/ values = InitParamParser.parseCommaSeparatedList(value); for (Iterator it = values.iterator(); it.hasNext(); ) { final String itemStr = (String) it.next();
private List/*<MetaInfTldSource>*/ parseAsMetaInfTldLocations(String value) throws ParseException { List/*<String>*/ values = InitParamParser.parseCommaSeparatedList(value); for (Iterator it = values.iterator(); it.hasNext(); ) { final String itemStr = (String) it.next();
newClasspathTlds.addAll(classpathTlds); newClasspathTlds.addAll(InitParamParser.parseCommaSeparatedList(value)); classpathTlds = newClasspathTlds; } else {