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.2
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-thymeleaf.git

commit 11ea14289d83b8338e70fec2f292a493f6f9bf65
Author: Oliver Lietz <[email protected]>
AuthorDate: Wed Jun 11 20:20:22 2014 +0000

    SLING-3649 fix issue with fragments (use Sling's ResourceResolver instead 
of supplied Reader)
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/thymeleaf@1602004
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/scripting/thymeleaf/SlingContext.java  |  5 ++---
 .../sling/scripting/thymeleaf/SlingWebContext.java      | 11 ++++-------
 .../scripting/thymeleaf/ThymeleafScriptEngine.java      |  4 ++--
 ...ResourceResolver.java => SlingResourceResolver.java} | 17 +++++++++++------
 4 files changed, 19 insertions(+), 18 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/scripting/thymeleaf/SlingContext.java 
b/src/main/java/org/apache/sling/scripting/thymeleaf/SlingContext.java
index a4fc418..18e6763 100644
--- a/src/main/java/org/apache/sling/scripting/thymeleaf/SlingContext.java
+++ b/src/main/java/org/apache/sling/scripting/thymeleaf/SlingContext.java
@@ -18,12 +18,11 @@
  */
 package org.apache.sling.scripting.thymeleaf;
 
-import java.io.Reader;
-
+import org.apache.sling.api.resource.ResourceResolver;
 import org.thymeleaf.context.IContext;
 
 public interface SlingContext extends IContext {
 
-    Reader getReader();
+    ResourceResolver getResourceResolver();
 
 }
diff --git 
a/src/main/java/org/apache/sling/scripting/thymeleaf/SlingWebContext.java 
b/src/main/java/org/apache/sling/scripting/thymeleaf/SlingWebContext.java
index afbdfd8..a5e206d 100644
--- a/src/main/java/org/apache/sling/scripting/thymeleaf/SlingWebContext.java
+++ b/src/main/java/org/apache/sling/scripting/thymeleaf/SlingWebContext.java
@@ -18,7 +18,6 @@
  */
 package org.apache.sling.scripting.thymeleaf;
 
-import java.io.Reader;
 import java.util.Calendar;
 import java.util.Locale;
 import java.util.Map;
@@ -28,6 +27,7 @@ import javax.servlet.http.HttpSession;
 
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.resource.ResourceResolver;
 import org.thymeleaf.context.AbstractContext;
 import org.thymeleaf.context.IWebContext;
 import org.thymeleaf.context.VariablesMap;
@@ -46,15 +46,12 @@ public class SlingWebContext implements SlingContext, 
IWebContext {
 
     private final ServletContext servletContext;
 
-    private final Reader reader;
-
-    public SlingWebContext(final SlingHttpServletRequest servletRequest, final 
SlingHttpServletResponse servletResponse, final ServletContext servletContext, 
final Locale locale, final Map<String, ?> variables, final Reader reader) {
+    public SlingWebContext(final SlingHttpServletRequest servletRequest, final 
SlingHttpServletResponse servletResponse, final ServletContext servletContext, 
final Locale locale, final Map<String, ?> variables) {
         this.servletRequest = servletRequest;
         this.servletResponse = servletResponse;
         this.servletContext = servletContext;
         this.locale = locale;
         this.variables.putAll(variables);
-        this.reader = reader;
     }
 
     @Override
@@ -98,8 +95,8 @@ public class SlingWebContext implements SlingContext, 
IWebContext {
     }
 
     @Override
-    public Reader getReader() {
-        return reader;
+    public ResourceResolver getResourceResolver() {
+        return servletRequest.getResourceResolver();
     }
 
     @Override
diff --git 
a/src/main/java/org/apache/sling/scripting/thymeleaf/ThymeleafScriptEngine.java 
b/src/main/java/org/apache/sling/scripting/thymeleaf/ThymeleafScriptEngine.java
index 91d4916..d3de614 100644
--- 
a/src/main/java/org/apache/sling/scripting/thymeleaf/ThymeleafScriptEngine.java
+++ 
b/src/main/java/org/apache/sling/scripting/thymeleaf/ThymeleafScriptEngine.java
@@ -47,7 +47,7 @@ public class ThymeleafScriptEngine extends 
AbstractSlingScriptEngine {
     }
 
     @Override
-    public Object eval(Reader reader, ScriptContext scriptContext) throws 
ScriptException {
+    public Object eval(final Reader reader, final ScriptContext scriptContext) 
throws ScriptException {
         final Bindings bindings = 
scriptContext.getBindings(ScriptContext.ENGINE_SCOPE);
         final SlingScriptHelper helper = (SlingScriptHelper) 
bindings.get(SlingBindings.SLING);
 
@@ -63,7 +63,7 @@ public class ThymeleafScriptEngine extends 
AbstractSlingScriptEngine {
         final String scriptName = 
helper.getScript().getScriptResource().getPath();
 
         try {
-            final IContext context = new SlingWebContext(request, response, 
servletContext, locale, bindings, reader);
+            final IContext context = new SlingWebContext(request, response, 
servletContext, locale, bindings);
             
thymeleafScriptEngineFactory.getTemplateEngine().process(scriptName, context, 
scriptContext.getWriter());
         } catch (Exception e) {
             logger.error("Failure rendering Thymeleaf template '{}': {}", 
scriptName, e.getMessage());
diff --git 
a/src/main/java/org/apache/sling/scripting/thymeleaf/impl/ScriptReaderResourceResolver.java
 
b/src/main/java/org/apache/sling/scripting/thymeleaf/impl/SlingResourceResolver.java
similarity index 79%
rename from 
src/main/java/org/apache/sling/scripting/thymeleaf/impl/ScriptReaderResourceResolver.java
rename to 
src/main/java/org/apache/sling/scripting/thymeleaf/impl/SlingResourceResolver.java
index 661ed9e..68f4475 100644
--- 
a/src/main/java/org/apache/sling/scripting/thymeleaf/impl/ScriptReaderResourceResolver.java
+++ 
b/src/main/java/org/apache/sling/scripting/thymeleaf/impl/SlingResourceResolver.java
@@ -20,13 +20,13 @@ package org.apache.sling.scripting.thymeleaf.impl;
 
 import java.io.InputStream;
 
-import org.apache.commons.io.input.ReaderInputStream;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.scripting.thymeleaf.SlingContext;
-import org.apache.sling.scripting.thymeleaf.ThymeleafScriptEngineFactory;
 import org.osgi.framework.Constants;
 import org.thymeleaf.TemplateProcessingParameters;
 import org.thymeleaf.context.IContext;
@@ -36,17 +36,20 @@ import org.thymeleaf.util.Validate;
 
 @Component(
     label = "Apache Sling Scripting Thymeleaf “Script Reader Resource 
Resolver”",
-    description = "script reader resource resolver for Sling Scripting 
Thymeleaf",
+    description = "Sling resource resolver for Sling Scripting Thymeleaf",
     immediate = true,
     metatype = true
 )
 @Service
 @Properties({
     @Property(name = Constants.SERVICE_VENDOR, value = "The Apache Software 
Foundation"),
-    @Property(name = Constants.SERVICE_DESCRIPTION, value = "script reader 
resource resolver for Sling Scripting Thymeleaf"),
+    @Property(name = Constants.SERVICE_DESCRIPTION, value = "Sling resource 
resolver for Sling Scripting Thymeleaf"),
     @Property(name = Constants.SERVICE_RANKING, intValue = 0, propertyPrivate 
= false)
 })
-public class ScriptReaderResourceResolver implements IResourceResolver {
+public class SlingResourceResolver implements IResourceResolver {
+
+    public SlingResourceResolver() {
+    }
 
     @Override
     public String getName() {
@@ -61,7 +64,9 @@ public class ScriptReaderResourceResolver implements 
IResourceResolver {
         final IContext context = templateProcessingParameters.getContext();
         if (context instanceof SlingContext) {
             final SlingContext slingContext = (SlingContext) context;
-            return new ReaderInputStream(slingContext.getReader(), 
ThymeleafScriptEngineFactory.TEMPLATE_CHARSET);
+            final ResourceResolver resourceResolver = 
slingContext.getResourceResolver();
+            final Resource resource = 
resourceResolver.getResource(resourceName);
+            return resource.adaptTo(InputStream.class);
         } else {
             throw new TemplateProcessingException("Cannot handle context: " + 
context.getClass().getName());
         }

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to