You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:14:31 UTC
[sling-org-apache-sling-scripting-thymeleaf] 29/39: SLING-6486 Use
single pattern (regular expression) per template mode in
PatternTemplateModeProvider
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 <ol...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.