This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.scripting.thymeleaf-1.1.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-thymeleaf.git
commit f53dfda63425e7b352c275b6ea8c80f7358f12cf Author: Oliver Lietz <[email protected]> AuthorDate: Sun Jan 29 20:31:33 2017 +0000 SLING-6486 Use single pattern (regular expression) per template mode in PatternTemplateModeProvider * handle blank patterns * remove default for template mode RAW git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf@1780851 13f79535-47bb-0310-9956-ffa450edef68 --- pom.xml | 6 ++++ .../internal/PatternTemplateModeProvider.java | 37 +++++++++++----------- .../PatternTemplateModeProviderConfiguration.java | 2 +- .../it/tests/PatternTemplateModeProviderIT.java | 3 +- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index d3f8ddb..f64a9fd 100644 --- a/pom.xml +++ b/pom.xml @@ -98,6 +98,12 @@ <version>2.5</version> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.5</version> + <scope>provided</scope> + </dependency> <!-- Apache Felix --> <dependency> <groupId>org.apache.felix</groupId> diff --git a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java index b25c0c2..84108ca 100644 --- a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java +++ b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java @@ -20,6 +20,7 @@ package org.apache.sling.scripting.thymeleaf.internal; import java.util.regex.Pattern; +import org.apache.commons.lang3.StringUtils; import org.apache.sling.api.resource.Resource; import org.apache.sling.scripting.thymeleaf.TemplateModeProvider; import org.osgi.framework.Constants; @@ -80,44 +81,44 @@ public class PatternTemplateModeProvider implements TemplateModeProvider { private void configure(final PatternTemplateModeProviderConfiguration configuration) { // HTML - htmlPattern = Pattern.compile(configuration.htmlPattern()); - logger.debug("configured HTML pattern: {}", htmlPattern.pattern()); + htmlPattern = StringUtils.isNotBlank(configuration.htmlPattern()) ? Pattern.compile(configuration.htmlPattern()) : null; + logger.debug("configured HTML pattern: {}", htmlPattern); // XML - xmlPattern = Pattern.compile(configuration.xmlPattern()); - logger.debug("configured XML pattern: {}", xmlPattern.pattern()); + xmlPattern = StringUtils.isNotBlank(configuration.xmlPattern()) ? Pattern.compile(configuration.xmlPattern()) : null; + logger.debug("configured XML pattern: {}", xmlPattern); // TEXT - textPattern = Pattern.compile(configuration.textPattern()); - logger.debug("configured TEXT pattern: {}", textPattern.pattern()); + textPattern = StringUtils.isNotBlank(configuration.textPattern()) ? Pattern.compile(configuration.textPattern()) : null; + logger.debug("configured TEXT pattern: {}", textPattern); // JAVASCRIPT - javascriptPattern = Pattern.compile(configuration.javascriptPattern()); - logger.debug("configured JAVASCRIPT pattern: {}", javascriptPattern.pattern()); + javascriptPattern = StringUtils.isNotBlank(configuration.javascriptPattern()) ? Pattern.compile(configuration.javascriptPattern()) : null; + logger.debug("configured JAVASCRIPT pattern: {}", javascriptPattern); // CSS - cssPattern = Pattern.compile(configuration.cssPattern()); - logger.debug("configured CSS pattern: {}", cssPattern.pattern()); + cssPattern = StringUtils.isNotBlank(configuration.cssPattern()) ? Pattern.compile(configuration.cssPattern()) : null; + logger.debug("configured CSS pattern: {}", cssPattern); // RAW - rawPattern = Pattern.compile(configuration.rawPattern()); - logger.debug("configured RAW pattern: {}", rawPattern.pattern()); + rawPattern = StringUtils.isNotBlank(configuration.rawPattern()) ? Pattern.compile(configuration.rawPattern()) : null; + logger.debug("configured RAW pattern: {}", rawPattern); } @Override public TemplateMode provideTemplateMode(final Resource resource) { final String path = resource.getPath(); - if (htmlPattern.matcher(path).matches()) { + if (htmlPattern != null && htmlPattern.matcher(path).matches()) { return TemplateMode.HTML; } - if (xmlPattern.matcher(path).matches()) { + if (xmlPattern != null && xmlPattern.matcher(path).matches()) { return TemplateMode.XML; } - if (textPattern.matcher(path).matches()) { + if (textPattern != null && textPattern.matcher(path).matches()) { return TemplateMode.TEXT; } - if (javascriptPattern.matcher(path).matches()) { + if (javascriptPattern != null && javascriptPattern.matcher(path).matches()) { return TemplateMode.JAVASCRIPT; } - if (cssPattern.matcher(path).matches()) { + if (cssPattern != null && cssPattern.matcher(path).matches()) { return TemplateMode.CSS; } - if (rawPattern.matcher(path).matches()) { + if (rawPattern != null && rawPattern.matcher(path).matches()) { return TemplateMode.RAW; } return null; diff --git a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java index 8b692ef..956b4f9 100644 --- a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java +++ b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java @@ -61,6 +61,6 @@ import org.osgi.service.metatype.annotations.ObjectClassDefinition; name = "pattern for template mode RAW", description = "The template pattern (regular expression) for templates which should be processed with template mode RAW (e.g. *.raw - NOTE: extension needs to be enabled for this script engine)." ) - String rawPattern() default "^.+$"; + String rawPattern(); } diff --git a/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java b/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java index b401055..32b1eae 100644 --- a/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java +++ b/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java @@ -31,6 +31,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass; import org.thymeleaf.templatemode.TemplateMode; import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; @RunWith(PaxExam.class) @@ -83,7 +84,7 @@ public class PatternTemplateModeProviderIT extends ThymeleafTestSupport { public void provideTemplateMode_fall_through() throws Exception { final Resource resource = mockResource("foohtml"); final TemplateMode templateMode = templateModeProvider.provideTemplateMode(resource); - assertThat(templateMode, is(TemplateMode.RAW)); + assertThat(templateMode, is(nullValue())); } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
