public FreemarkerDefaultConfigurationFactory(ServletContext servletContext) { super(); // Create different loaders. final List<TemplateLoader> loaders = new ArrayList<>(); if (servletContext != null) { loaders.add(new WebappTemplateLoader(servletContext)); } loaders.add(new ClassTemplateLoader(FreemarkerDefaultConfigurationFactory.class, "/")); try { loaders.add(new FileTemplateLoader(new File("/"))); } catch (IOException e) { // NOOP } // Create Base configuration. configuration = new Configuration(); configuration.setTemplateLoader(new MultiTemplateLoader(loaders.toArray(new TemplateLoader[loaders.size()]))); }
throw new TemplatePathParsingException("Template paths starting with \"{\" are reseved for future purposes"); } else { templateLoader = new WebappTemplateLoader(srvCtx, pureTemplatePath);
private Template loadFreemarkerTemplate() throws IOException { Configuration cfg = new Configuration(); cfg.setTemplateLoader(new WebappTemplateLoader(ctx)); return cfg.getTemplate(TEMPLATE_PATH); }
public FreemarkerDefaultConfigurationFactory(ServletContext servletContext) { super(); // Create different loaders. final List<TemplateLoader> loaders = new ArrayList<>(); if (servletContext != null) { loaders.add(new WebappTemplateLoader(servletContext)); } loaders.add(new ClassTemplateLoader(FreemarkerDefaultConfigurationFactory.class, "/")); try { loaders.add(new FileTemplateLoader(new File("/"))); } catch (IOException e) { // NOOP } // Create Base configuration. configuration = new Configuration(); configuration.setTemplateLoader(new MultiTemplateLoader(loaders.toArray(new TemplateLoader[loaders.size()]))); }
@Override protected TemplateLoader newDelegate() { final WebContext webCtx = MgnlContext.getWebContextOrNull(); if (webCtx != null) { final ServletContext sc = webCtx.getServletContext(); if (sc != null) { return new WebappTemplateLoader(sc, ""); } } return null; } }
/** * Creates freemarker configuration settings, * default output format to trigger auto-escaping policy * and template loaders. * * @param servletContext servlet context * @return freemarker configuration settings */ private Configuration getFreemarkerConfiguration(ServletContext servletContext) { Configuration configuration = new Configuration(Configuration.VERSION_2_3_26); configuration.setOutputFormat(HTMLOutputFormat.INSTANCE); List<TemplateLoader> loaders = new ArrayList<>(); loaders.add(new WebappTemplateLoader(servletContext)); loaders.add(new ClassTemplateLoader(DrillRestServer.class, "/")); try { loaders.add(new FileTemplateLoader(new File("/"))); } catch (IOException e) { logger.error("Could not set up file template loader.", e); } configuration.setTemplateLoader(new MultiTemplateLoader(loaders.toArray(new TemplateLoader[loaders.size()]))); return configuration; }
/** * Create the template loader. The default implementation will create a * {@link ClassTemplateLoader} if the template path starts with "class://", * a {@link FileTemplateLoader} if the template path starts with "file://", * and a {@link WebappTemplateLoader} otherwise. * @param templatePath the template path to create a loader for * @return a newly created template loader * @throws IOException */ protected TemplateLoader createTemplateLoader(String templatePath) throws IOException { if (templatePath.startsWith("class://")) { // substring(7) is intentional as we "reuse" the last slash return new ClassTemplateLoader(getClass(), templatePath.substring(7)); } else { if (templatePath.startsWith("file://")) { templatePath = templatePath.substring(7); return new FileTemplateLoader(new File(templatePath)); } else { return new WebappTemplateLoader(this.getServletContext(), templatePath); } } }
new MultiTemplateLoader(new TemplateLoader[]{ templatePathLoader, new WebappTemplateLoader(servletContext), new WebWorkClassTemplateLoader() }) : new MultiTemplateLoader(new TemplateLoader[]{ new WebappTemplateLoader(servletContext), new WebWorkClassTemplateLoader() });
new MultiTemplateLoader( new TemplateLoader[]{ new WebappTemplateLoader( context, ROOT_PATH ), new ClassTemplateLoader( getClass(), "/"), new URLTemplateLoader() {
throw new TemplatePathParsingException("Template paths starting with \"{\" are reseved for future purposes"); } else { templateLoader = new WebappTemplateLoader(srvCtx, pureTemplatePath);
throw new TemplatePathParsingException("Template paths starting with \"{\" are reseved for future purposes"); } else { templateLoader = new WebappTemplateLoader(srvCtx, pureTemplatePath);