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 2015/12/07 23:43:24 UTC
svn commit: r1718487 - in
/sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf:
SlingContext.java internal/DefaultSlingContext.java
internal/ResourceBundleMessageResolver.java
internal/ThymeleafScriptEngine.java
Author: olli
Date: Mon Dec 7 22:43:24 2015
New Revision: 1718487
URL: http://svn.apache.org/viewvc?rev=1718487&view=rev
Log:
SLING-5075 Upgrade Thymeleaf to 3.0
* adjust to new Context API
* adjust to new Message Resolution API
* cleanup
Removed:
sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/SlingContext.java
sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/DefaultSlingContext.java
Modified:
sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ResourceBundleMessageResolver.java
sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngine.java
Modified: sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ResourceBundleMessageResolver.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ResourceBundleMessageResolver.java?rev=1718487&r1=1718486&r2=1718487&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ResourceBundleMessageResolver.java (original)
+++ sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ResourceBundleMessageResolver.java Mon Dec 7 22:43:24 2015
@@ -18,7 +18,10 @@
*/
package org.apache.sling.scripting.thymeleaf.internal;
+import java.text.MessageFormat;
import java.util.Dictionary;
+import java.util.Locale;
+import java.util.ResourceBundle;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
@@ -100,26 +103,21 @@ public class ResourceBundleMessageResolv
}
@Override
- public String resolveMessage(ITemplateContext context, Class<?> origin, String key, Object[] messageParameters) {
- return null;
- }
-
- @Override
- public String createAbsentMessageRepresentation(ITemplateContext context, Class<?> origin, String key, Object[] messageParameters) {
- return null;
- }
-
- /*
- @Override
- public MessageResolution resolveMessage(final ITemplateProcessingContext processingContext, final String key, final Object[] messageParameters) {
- logger.debug("processingContext: {}, key: {}, message parameters: {}", processingContext, key, messageParameters);
- final Locale locale = processingContext.getLocale();
+ public String resolveMessage(final ITemplateContext templateContext, final Class<?> origin, final String key, final Object[] messageParameters) {
+ logger.debug("template context: {}, origin: {}, key: {}, message parameters: {}", templateContext, origin, key, messageParameters);
+ // TODO can origin be useful with Sling i18n?
+ final Locale locale = templateContext.getLocale();
final ResourceBundle resourceBundle = resourceBundleProvider.getResourceBundle(locale);
final String string = resourceBundle.getString(key);
final MessageFormat messageFormat = new MessageFormat(string, locale);
final String message = messageFormat.format((messageParameters != null ? messageParameters : EMPTY_MESSAGE_PARAMETERS));
- return new MessageResolution(message);
+ logger.debug("message: '{}'", message);
+ return message;
+ }
+
+ @Override
+ public String createAbsentMessageRepresentation(final ITemplateContext templateContext, final Class<?> origin, final String key, final Object[] messageParameters) {
+ return key; // TODO make configurable
}
- */
}
Modified: sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngine.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngine.java?rev=1718487&r1=1718486&r2=1718487&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngine.java (original)
+++ sling/trunk/contrib/scripting/thymeleaf/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngine.java Mon Dec 7 22:43:24 2015
@@ -33,6 +33,7 @@ import org.apache.sling.api.scripting.Sl
import org.apache.sling.scripting.api.AbstractSlingScriptEngine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.thymeleaf.context.Context;
import org.thymeleaf.context.IContext;
public final class ThymeleafScriptEngine extends AbstractSlingScriptEngine {
@@ -64,12 +65,10 @@ public final class ThymeleafScriptEngine
final String scriptName = helper.getScript().getScriptResource().getPath();
final Writer writer = scriptContext.getWriter();
- bindings.put(SlingScriptConstants.ATTR_SCRIPT_RESOURCE_RESOLVER, resourceResolver); // TODO #388
+ bindings.put(SlingScriptConstants.ATTR_SCRIPT_RESOURCE_RESOLVER, resourceResolver); // TODO SlingBindings.RESOLVER
try {
- final IContext context = new DefaultSlingContext(resourceResolver, locale, bindings);
- // TODO optimize, process() calls TemplateManager which does resolving, parsing and processing
- // resolving is already done by Sling, so we need a parsing and processing only call into TemplateEngine
+ final IContext context = new Context(locale, bindings);
thymeleafScriptEngineFactory.getTemplateEngine().process(scriptName, context, writer);
} catch (Exception e) {
logger.error("Failure rendering Thymeleaf template '{}': {}", scriptName, e.getMessage());