You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2007/12/17 17:42:29 UTC

svn commit: r604923 - in /incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting: MicroslingScriptResolver.java helpers/ScriptHelper.java

Author: fmeschbe
Date: Mon Dec 17 08:42:28 2007
New Revision: 604923

URL: http://svn.apache.org/viewvc?rev=604923&view=rev
Log:
ScriptHelper must implement SlingScriptHelper interface

Modified:
    incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java
    incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/helpers/ScriptHelper.java

Modified: incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java?rev=604923&r1=604922&r2=604923&view=diff
==============================================================================
--- incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java (original)
+++ incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java Mon Dec 17 08:42:28 2007
@@ -29,10 +29,12 @@
 import javax.jcr.Property;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.naming.Context;
 import javax.script.Bindings;
 import javax.script.ScriptContext;
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
+import javax.script.SimpleBindings;
 import javax.script.SimpleScriptContext;
 import javax.servlet.ServletException;
 
@@ -254,10 +256,10 @@
                 SlingHttpServletResponse res = (SlingHttpServletResponse) props.get(SlingBindings.RESPONSE);
                 
                 // the script helper
-                ScriptHelper helper = new ScriptHelper(req, res);
+                ScriptHelper helper = new ScriptHelper(req, res, this);
 
                 // prepare the properties for the script
-                Bindings bindings = getScriptEngine().createBindings();
+                Bindings bindings = new SimpleBindings(); // getScriptEngine().createBindings();
                 
                 bindings.put(SlingBindings.SLING, helper);
                 bindings.put(SlingBindings.RESOURCE, helper.getRequest().getResource());
@@ -270,6 +272,10 @@
                     + "; charset=UTF-8");
 
                 ScriptContext context = new SimpleScriptContext();
+                context.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
+                context.setWriter(helper.getResponse().getWriter());
+//                context.setReader();
+//                context.setErrorWriter(arg0);
                 
                 // evaluate the script now using the ScriptEngine
                 getScriptEngine().eval(getScriptReader(), context);

Modified: incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/helpers/ScriptHelper.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/helpers/ScriptHelper.java?rev=604923&r1=604922&r2=604923&view=diff
==============================================================================
--- incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/helpers/ScriptHelper.java (original)
+++ incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/helpers/ScriptHelper.java Mon Dec 17 08:42:28 2007
@@ -29,6 +29,9 @@
 import org.apache.sling.api.SlingException;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.request.RequestDispatcherOptions;
+import org.apache.sling.api.scripting.SlingScript;
+import org.apache.sling.api.scripting.SlingScriptHelper;
 import org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper;
 import org.apache.sling.api.wrappers.SlingRequestPaths;
 import org.slf4j.Logger;
@@ -39,7 +42,7 @@
  * class are made available to the scripts as the global <code>sling</code>
  * variable.
  */
-public class ScriptHelper {
+public class ScriptHelper implements SlingScriptHelper {
 
     private static final Logger log = LoggerFactory.getLogger(ScriptHelper.class);
     
@@ -47,6 +50,8 @@
 
     private final SlingHttpServletResponse response;
     
+    private final SlingScript script;
+    
     public static final String INCLUDE_COUNTER = "ScriptHelper.include.counter";
     public static final int MAX_INCLUDE_RECURSION_LEVEL = 20;
     
@@ -56,9 +61,10 @@
         }
     }
 
-    public ScriptHelper(SlingHttpServletRequest request, SlingHttpServletResponse response) {
+    public ScriptHelper(SlingHttpServletRequest request, SlingHttpServletResponse response, SlingScript script) {
         this.request = request;
         this.response = new OnDemandWriterResponse(response);
+        this.script = script;
     }
 
     public SlingHttpServletRequest getRequest() {
@@ -99,6 +105,15 @@
         }
     }
 
+    public void include(String path, RequestDispatcherOptions options)
+            throws ServletException, IOException {
+        include(path);
+    }
+    
+    public SlingScript getScript() {
+        return script;
+    }
+    
     /** Simple Response wrapper returning an on-demand writer when asked for
      * a writer.
      */