diff --git a/cms-templates/src/main/java/com/condation/cms/templates/TemplateConfiguration.java b/cms-templates/src/main/java/com/condation/cms/templates/TemplateConfiguration.java index ddc1972f9..1b7d75310 100644 --- a/cms-templates/src/main/java/com/condation/cms/templates/TemplateConfiguration.java +++ b/cms-templates/src/main/java/com/condation/cms/templates/TemplateConfiguration.java @@ -53,6 +53,10 @@ public class TemplateConfiguration { @Getter private boolean devMode = false; + public TemplateConfiguration (final boolean devMode) { + this.devMode = devMode; + } + public boolean hasTags () { return !registeredTags.isEmpty(); } diff --git a/cms-templates/src/main/java/com/condation/cms/templates/TemplateEngineFactory.java b/cms-templates/src/main/java/com/condation/cms/templates/TemplateEngineFactory.java index c684a01a5..7c0eabae4 100644 --- a/cms-templates/src/main/java/com/condation/cms/templates/TemplateEngineFactory.java +++ b/cms-templates/src/main/java/com/condation/cms/templates/TemplateEngineFactory.java @@ -50,12 +50,12 @@ public class TemplateEngineFactory { private TemplateConfiguration configuration; - private TemplateEngineFactory() { - configuration = new TemplateConfiguration(); + private TemplateEngineFactory(boolean devMode) { + configuration = new TemplateConfiguration(devMode); } - public static TemplateEngineFactory newInstance(TemplateLoader templateLoader) { - var factory = new TemplateEngineFactory(); + public static TemplateEngineFactory newInstance(TemplateLoader templateLoader, boolean devMode) { + var factory = new TemplateEngineFactory(devMode); factory.configuration.setTemplateLoader(templateLoader); diff --git a/cms-templates/src/main/java/com/condation/cms/templates/TemplateLoader.java b/cms-templates/src/main/java/com/condation/cms/templates/TemplateLoader.java index 82b77152c..336ae775a 100644 --- a/cms-templates/src/main/java/com/condation/cms/templates/TemplateLoader.java +++ b/cms-templates/src/main/java/com/condation/cms/templates/TemplateLoader.java @@ -29,6 +29,4 @@ public interface TemplateLoader { String load (String template); - - default void invalidate () {} } diff --git a/cms-templates/src/main/java/com/condation/cms/templates/loaders/CompositeTemplateLoader.java b/cms-templates/src/main/java/com/condation/cms/templates/loaders/CompositeTemplateLoader.java index 9d2c85348..387849a16 100644 --- a/cms-templates/src/main/java/com/condation/cms/templates/loaders/CompositeTemplateLoader.java +++ b/cms-templates/src/main/java/com/condation/cms/templates/loaders/CompositeTemplateLoader.java @@ -49,11 +49,5 @@ public String load(String template) { } throw new TemplateNotFoundException("template %s not found".formatted(template)); } - - @Override - public void invalidate() { - this.templateLoaders.forEach(TemplateLoader::invalidate); - } - } diff --git a/cms-templates/src/main/java/com/condation/cms/templates/loaders/FileTemplateLoader.java b/cms-templates/src/main/java/com/condation/cms/templates/loaders/FileTemplateLoader.java index aa2ab3813..b259bd24e 100644 --- a/cms-templates/src/main/java/com/condation/cms/templates/loaders/FileTemplateLoader.java +++ b/cms-templates/src/main/java/com/condation/cms/templates/loaders/FileTemplateLoader.java @@ -40,26 +40,12 @@ public class FileTemplateLoader implements TemplateLoader { private final Path basePath; - private final ICache templateCache; - - public FileTemplateLoader(Path basePath, ICache templateCache) { + public FileTemplateLoader(Path basePath) { this.basePath = basePath; - - this.templateCache = templateCache; } @Override - public String load(String template) { - try { - return templateCache.get(template, key -> { - return loadFromDisk(key); - }); - } catch (Exception e) { - throw new TemplateNotFoundException(e.getMessage()); - } - } - - private String loadFromDisk(String template) { + public String load(String template) { try { var path = basePath.resolve(template); @@ -79,11 +65,4 @@ private String loadFromDisk(String template) { throw new TemplateNotFoundException("Failed to load template: " + template, e); } } - - @Override - public void invalidate() { - this.templateCache.invalidate(); - } - - } diff --git a/cms-templates/src/main/java/com/condation/cms/templates/module/CMSModuleTemplateEngine.java b/cms-templates/src/main/java/com/condation/cms/templates/module/CMSModuleTemplateEngine.java index 432161c18..5a0c98a85 100644 --- a/cms-templates/src/main/java/com/condation/cms/templates/module/CMSModuleTemplateEngine.java +++ b/cms-templates/src/main/java/com/condation/cms/templates/module/CMSModuleTemplateEngine.java @@ -79,33 +79,25 @@ public static CMSModuleTemplateEngine create(final DB db, final Theme theme, Cac return engine; } - - private ICache createTemplateCache (String name) { - if (devMode) { - return this.cacheManager.get(name, new CacheManager.CacheConfig(1000l, Duration.ofMinutes(1))); - } else { - return this.cacheManager.get(name, new CacheManager.CacheConfig(1000l, Duration.ofMinutes(10))); - } - } private void initTemplateEngine() { var loaders = new ArrayList(); - loaders.add(new FileTemplateLoader(db.getFileSystem().resolve("templates/"), createTemplateCache("templates/site"))); + loaders.add(new FileTemplateLoader(db.getFileSystem().resolve("templates/"))); if (!theme.empty()) { - var themeLoader = new FileTemplateLoader(theme.templatesPath(), createTemplateCache("templates/theme")); + var themeLoader = new FileTemplateLoader(theme.templatesPath()); loaders.add(themeLoader); if (theme.getParentTheme() != null) { - var parentLoader = new FileTemplateLoader(theme.getParentTheme().templatesPath(), createTemplateCache("templates/parent")); + var parentLoader = new FileTemplateLoader(theme.getParentTheme().templatesPath()); loaders.add(parentLoader); } } CompositeTemplateLoader templateLoader = new CompositeTemplateLoader(loaders); - templateEngine = TemplateEngineFactory.newInstance(templateLoader) + templateEngine = TemplateEngineFactory.newInstance(templateLoader, devMode) .cache(cacheManager.get("templates", new CacheManager.CacheConfig(100l, Duration.ofMinutes(1)))) .defaultFilters() .defaultTags() diff --git a/cms-templates/src/test/java/com/condation/cms/templates/AbstractTemplateEngineTest.java b/cms-templates/src/test/java/com/condation/cms/templates/AbstractTemplateEngineTest.java index b00eb69e8..764e151ab 100644 --- a/cms-templates/src/test/java/com/condation/cms/templates/AbstractTemplateEngineTest.java +++ b/cms-templates/src/test/java/com/condation/cms/templates/AbstractTemplateEngineTest.java @@ -49,7 +49,7 @@ public boolean isDevMode () { @BeforeAll public void setup () { SUT = TemplateEngineFactory - .newInstance(getLoader()) + .newInstance(getLoader(), true) .cache(cacheProvider.getCache("templates", new CacheManager.CacheConfig(100l, Duration.ofSeconds(60)))) .defaultFilters() .defaultTags() diff --git a/cms-templates/src/test/java/com/condation/cms/templates/content/TagTemplateFunctionTest.java b/cms-templates/src/test/java/com/condation/cms/templates/content/TagTemplateFunctionTest.java index 63faa3959..2055d955c 100644 --- a/cms-templates/src/test/java/com/condation/cms/templates/content/TagTemplateFunctionTest.java +++ b/cms-templates/src/test/java/com/condation/cms/templates/content/TagTemplateFunctionTest.java @@ -50,7 +50,7 @@ public class TagTemplateFunctionTest extends ContentBaseTest { public static void setup() { templateLoader = new StringTemplateLoader(); engine = TemplateEngineFactory - .newInstance(templateLoader) + .newInstance(templateLoader, true) .defaultFilters() .defaultTags() .devMode(true) diff --git a/cms-templates/src/test/java/com/condation/cms/templates/parser/ParserStabilityTest.java b/cms-templates/src/test/java/com/condation/cms/templates/parser/ParserStabilityTest.java index c1d62d0cd..630722966 100644 --- a/cms-templates/src/test/java/com/condation/cms/templates/parser/ParserStabilityTest.java +++ b/cms-templates/src/test/java/com/condation/cms/templates/parser/ParserStabilityTest.java @@ -46,7 +46,7 @@ public class ParserStabilityTest { @BeforeAll public static void setup() { - var config = new TemplateConfiguration(); + var config = new TemplateConfiguration(true); config.registerTag(new com.condation.cms.templates.tags.IfTag()); config.registerTag(new com.condation.cms.templates.tags.EndIfTag()); parser = new Parser(config, jexl); diff --git a/cms-templates/src/test/java/com/condation/cms/templates/parser/ParserTest.java b/cms-templates/src/test/java/com/condation/cms/templates/parser/ParserTest.java index 2b5cd8452..944666943 100644 --- a/cms-templates/src/test/java/com/condation/cms/templates/parser/ParserTest.java +++ b/cms-templates/src/test/java/com/condation/cms/templates/parser/ParserTest.java @@ -46,7 +46,7 @@ public class ParserTest { @BeforeAll public static void setup() { - var config = new TemplateConfiguration(); + var config = new TemplateConfiguration(true); parser = new Parser(config, jexl); lexer = new Lexer(); } diff --git a/cms-templates/src/test/java/com/condation/cms/templates/renderer/RendererStabilityTest.java b/cms-templates/src/test/java/com/condation/cms/templates/renderer/RendererStabilityTest.java index 68ca3e649..adc27f5fb 100644 --- a/cms-templates/src/test/java/com/condation/cms/templates/renderer/RendererStabilityTest.java +++ b/cms-templates/src/test/java/com/condation/cms/templates/renderer/RendererStabilityTest.java @@ -39,7 +39,7 @@ public class RendererStabilityTest { @BeforeAll public static void setup() { - var config = new TemplateConfiguration(); + var config = new TemplateConfiguration(true); config.registerTag(new com.condation.cms.templates.tags.IfTag()); config.registerTag(new com.condation.cms.templates.tags.EndIfTag()); engine = new CMSTemplateEngine(config); diff --git a/modules/ui-module/src/main/java/com/condation/cms/modules/ui/utils/TemplateEngine.java b/modules/ui-module/src/main/java/com/condation/cms/modules/ui/utils/TemplateEngine.java index 6aa452a60..2cf0dfc0e 100644 --- a/modules/ui-module/src/main/java/com/condation/cms/modules/ui/utils/TemplateEngine.java +++ b/modules/ui-module/src/main/java/com/condation/cms/modules/ui/utils/TemplateEngine.java @@ -21,6 +21,7 @@ * . * #L% */ +import com.condation.cms.api.ServerContext; import com.condation.cms.api.cache.CacheManager; import com.condation.cms.api.cache.CacheProvider; import com.condation.cms.templates.CMSTemplateEngine; @@ -41,7 +42,7 @@ public class TemplateEngine { public TemplateEngine(CacheManager cacheManager) { templateEngine = TemplateEngineFactory - .newInstance(new ClasspathTemplateLoader("manager")) + .newInstance(new ClasspathTemplateLoader("manager"), ServerContext.IS_DEV) .cache(cacheManager.get("ui/templates", new CacheManager.CacheConfig(100l, Duration.ofSeconds(60)))) .defaultFilters() .defaultTags() diff --git a/modules/ui-module/src/test/java/com/condation/cms/modules/ui/utils/TemplateEngineTest.java b/modules/ui-module/src/test/java/com/condation/cms/modules/ui/utils/TemplateEngineTest.java index 3e3a73887..8122b9719 100644 --- a/modules/ui-module/src/test/java/com/condation/cms/modules/ui/utils/TemplateEngineTest.java +++ b/modules/ui-module/src/test/java/com/condation/cms/modules/ui/utils/TemplateEngineTest.java @@ -79,7 +79,7 @@ public void testSomeMethod() { ); Assertions.assertThatCode(() -> { - templateEngine.render("index.html", Map.of("actionFactory", new ActionFactory(hookSystem, moduleManager, new User("test", "asdasdfasdf", new String[]{"manager"})))); + templateEngine.render("test.html", Map.of("actionFactory", new ActionFactory(hookSystem, moduleManager, new User("test", "asdasdfasdf", new String[]{"manager"})))); }).doesNotThrowAnyException(); } diff --git a/modules/ui-module/src/test/resources/manager/test.html b/modules/ui-module/src/test/resources/manager/test.html new file mode 100644 index 000000000..eb6fa59de --- /dev/null +++ b/modules/ui-module/src/test/resources/manager/test.html @@ -0,0 +1,33 @@ + + + + + + TODO supply a title + + + + +
TODO write content
+ +