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:12:50 UTC
[sling-org-apache-sling-scripting-thymeleaf] 07/27: SLING-4296 add
support for custom dialects
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.scripting.thymeleaf-0.0.6
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-thymeleaf.git
commit c1f41d96a2a3b47b849f5f5ea8be8f772b4b096a
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Mon Jan 12 14:13:10 2015 +0000
SLING-4296 add support for custom dialects
* template engine uses dialects (org.thymeleaf.dialect.IDialect) provided as OSGi service
* org.thymeleaf.standard.StandardDialect is provided by default
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/thymeleaf@1651100 13f79535-47bb-0310-9956-ffa450edef68
---
.../internal/ThymeleafScriptEngineFactory.java | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngineFactory.java b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngineFactory.java
index 24174fd..74e5eab 100644
--- a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngineFactory.java
+++ b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngineFactory.java
@@ -42,7 +42,9 @@ import org.osgi.service.component.ComponentContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.thymeleaf.TemplateEngine;
+import org.thymeleaf.dialect.IDialect;
import org.thymeleaf.messageresolver.IMessageResolver;
+import org.thymeleaf.standard.StandardDialect;
import org.thymeleaf.templateresolver.ITemplateResolver;
@Component(
@@ -65,6 +67,9 @@ public class ThymeleafScriptEngineFactory extends AbstractScriptEngineFactory {
@Reference(referenceInterface = IMessageResolver.class, cardinality = ReferenceCardinality.MANDATORY_MULTIPLE, policy = ReferencePolicy.DYNAMIC)
final private Set<IMessageResolver> messageResolvers = new LinkedHashSet<IMessageResolver>();
+ @Reference(referenceInterface = IDialect.class, cardinality = ReferenceCardinality.MANDATORY_MULTIPLE, policy = ReferencePolicy.DYNAMIC)
+ final private Set<IDialect> dialects = new LinkedHashSet<IDialect>();
+
private TemplateEngine templateEngine;
public static final String DEFAULT_EXTENSION = "html";
@@ -131,6 +136,18 @@ public class ThymeleafScriptEngineFactory extends AbstractScriptEngineFactory {
configureTemplateEngine();
}
+ protected synchronized void bindDialects(final IDialect dialect) {
+ logger.debug("binding a dialect for prefix '{}'", dialect.getPrefix());
+ dialects.add(dialect);
+ configureTemplateEngine();
+ }
+
+ protected synchronized void unbindDialects(final IDialect dialect) {
+ logger.debug("unbinding a dialect for prefix '{}'", dialect.getPrefix());
+ dialects.remove(dialect);
+ configureTemplateEngine();
+ }
+
private synchronized void configure(final ComponentContext componentContext) {
final Dictionary properties = componentContext.getProperties();
@@ -156,6 +173,11 @@ public class ThymeleafScriptEngineFactory extends AbstractScriptEngineFactory {
if (messageResolvers.size() > 0) {
templateEngine.setMessageResolvers(messageResolvers);
}
+ if (dialects.size() > 0) {
+ templateEngine.setDialects(dialects);
+ final IDialect standardDialect = new StandardDialect();
+ templateEngine.addDialect(standardDialect);
+ }
}
@Override
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.