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.
*/