You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2017/01/29 20:31:33 UTC

svn commit: r1780851 - in /sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf: ./ src/main/java/org/apache/sling/scripting/thymeleaf/internal/ src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/

Author: olli
Date: Sun Jan 29 20:31:33 2017
New Revision: 1780851

URL: http://svn.apache.org/viewvc?rev=1780851&view=rev
Log:
SLING-6486 Use single pattern (regular expression) per template mode in PatternTemplateModeProvider

* handle blank patterns
* remove default for template mode RAW

Modified:
    sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/pom.xml
    sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java
    sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java
    sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java

Modified: sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/pom.xml?rev=1780851&r1=1780850&r2=1780851&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/pom.xml (original)
+++ sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/pom.xml Sun Jan 29 20:31:33 2017
@@ -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>

Modified: sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java?rev=1780851&r1=1780850&r2=1780851&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java (original)
+++ sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProvider.java Sun Jan 29 20:31:33 2017
@@ -20,6 +20,7 @@ package org.apache.sling.scripting.thyme
 
 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
 
     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;

Modified: sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java?rev=1780851&r1=1780850&r2=1780851&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java (original)
+++ sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/PatternTemplateModeProviderConfiguration.java Sun Jan 29 20:31:33 2017
@@ -61,6 +61,6 @@ import org.osgi.service.metatype.annotat
         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();
 
 }

Modified: sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java?rev=1780851&r1=1780850&r2=1780851&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java (original)
+++ sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/PatternTemplateModeProviderIT.java Sun Jan 29 20:31:33 2017
@@ -31,6 +31,7 @@ import org.ops4j.pax.exam.spi.reactors.P
 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 PatternTemplateModeProvider
     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()));
     }
 
 }