private void updateTemplates() { LOG.info("Updating template cache..."); StringResourceRepository repo = StringResourceLoader.getRepository(); URI uri = path.toUri(); if (uri == null) { LOG.error("Could not locate templates folder!"); return; } File dir = new File(uri); File[] templates = dir.listFiles( new FilenameFilter() { @Override public boolean accept(File arg0, String arg1) { boolean isTemplateFile = arg1 != null && arg1.endsWith(".tpl"); if (!isTemplateFile) { return false; } return fileHasBeenModified(new File(arg0, arg1)); } }); if (templates != null && templates.length > 0) { for (File template : templates) { repo.putStringResource(template.getName(), getTemplateFromResource(template.getName())); } } }
/** * This method will return a {@link Template} object containing the requested template. This * method will also throw a {@link RuntimeException} if the template could not be loaded, in which * case you probably specified the wrong file. * * @param templatePath The template file to load. * @return The loaded {@link Template} object. */ public Template getTemplate(final String templatePath) { synchronized (engine) { if (!engine.resourceExists(templatePath)) { StringResourceRepository repo = StringResourceLoader.getRepository(); repo.putStringResource(templatePath, getTemplateFromResource(templatePath)); } try { return engine.getTemplate(templatePath); } catch (Exception e) { LOG.error(e.getLocalizedMessage(), e); throw new DevHubException(e); } } }
private Template createTemplate(TemplateDescription templateDescription, VelocityEngine ve) { StringResourceRepository repo = StringResourceLoader.getRepository(); repo.putStringResource(TEMPLATE_NAME, templateDescription.getTemplate()); return ve.getTemplate(TEMPLATE_NAME, DEFAULT_ENCODING); }