You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2019/11/08 17:46:41 UTC
[sling-org-apache-sling-scripting-sightly-js-provider] branch
issue/SLING-8737 created (now 3e088fa)
This is an automated email from the ASF dual-hosted git repository.
radu pushed a change to branch issue/SLING-8737
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-js-provider.git.
at 3e088fa SLING-8737 - Add support for lazily-evaluated bindings
This branch includes the following new commits:
new 3e088fa SLING-8737 - Add support for lazily-evaluated bindings
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[sling-org-apache-sling-scripting-sightly-js-provider] 01/01:
SLING-8737 - Add support for lazily-evaluated bindings
Posted by ra...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
radu pushed a commit to branch issue/SLING-8737
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-js-provider.git
commit 3e088facc50f502be92a175c17976ba4c11c8e05
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Fri Nov 8 18:45:50 2019 +0100
SLING-8737 - Add support for lazily-evaluated bindings
* switched from SimpleBindings to LazyBindings
---
pom.xml | 2 +-
.../org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java | 6 +++---
.../sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java | 4 ++--
.../scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java | 3 ++-
4 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/pom.xml b/pom.xml
index d5c796d..03c5aad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,7 +96,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
- <version>2.5.0</version>
+ <version>2.20.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java b/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java
index 2e88a35..98671f3 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java
@@ -28,11 +28,11 @@ import javax.script.Compilable;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
-import javax.script.SimpleBindings;
import javax.script.SimpleScriptContext;
import org.apache.commons.io.IOUtils;
import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.scripting.LazyBindings;
import org.apache.sling.scripting.core.ScriptNameAwareReader;
import org.apache.sling.scripting.sightly.SightlyException;
import org.apache.sling.scripting.sightly.js.impl.async.AsyncContainer;
@@ -58,7 +58,7 @@ public class JsEnvironment {
public JsEnvironment(ScriptEngine jsEngine) {
this.jsEngine = jsEngine;
- engineBindings = new SimpleBindings();
+ engineBindings = new LazyBindings();
TimingBindingsValuesProvider.INSTANCE.addBindings(engineBindings);
}
@@ -92,7 +92,7 @@ public class JsEnvironment {
}
private Bindings buildBindings(Resource scriptResource, Bindings local, Bindings arguments, CommonJsModule commonJsModule) {
- Bindings bindings = new SimpleBindings();
+ Bindings bindings = new LazyBindings();
bindings.putAll(engineBindings);
DependencyResolver dependencyResolver = new DependencyResolver(scriptResource, this, local);
UseFunction useFunction = new UseFunction(dependencyResolver, arguments);
diff --git a/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java b/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java
index 00b1ee5..180dcde 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java
@@ -21,10 +21,10 @@ import java.util.Set;
import javax.script.Bindings;
import javax.script.ScriptEngine;
-import javax.script.SimpleBindings;
import org.apache.commons.lang3.StringUtils;
import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.scripting.LazyBindings;
import org.apache.sling.scripting.sightly.js.impl.JsEnvironment;
import org.apache.sling.scripting.sightly.js.impl.rhino.HybridObject;
import org.mozilla.javascript.Scriptable;
@@ -47,7 +47,7 @@ public class ProxyAsyncScriptableFactory {
public void registerProxies(ResourceResolver resourceResolver, JsEnvironment environment, Bindings bindings) {
slyBindingsValuesProvider.initialise(resourceResolver, environment, bindings);
- Bindings bindingsCopy = new SimpleBindings();
+ Bindings bindingsCopy = new LazyBindings();
for (String factoryName : slyBindingsValuesProvider.getScriptPaths().keySet()) {
ShadowScriptableObject shadowScriptableObject = new ShadowScriptableObject(factoryName, bindingsCopy);
bindings.put(factoryName, shadowScriptableObject);
diff --git a/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java b/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
index 87905a1..c129202 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
@@ -34,6 +34,7 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.IOUtils;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.scripting.LazyBindings;
import org.apache.sling.api.scripting.SlingBindings;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.scripting.sightly.SightlyException;
@@ -203,7 +204,7 @@ public class SlyBindingsValuesProvider {
}
private Bindings createBindings(Bindings global) {
- Bindings bindings = new SimpleBindings();
+ Bindings bindings = new LazyBindings();
bindings.putAll(global);
TimingBindingsValuesProvider.INSTANCE.addBindings(bindings);
return bindings;