Author: fmeschbe
Date: Mon Dec 15 13:35:27 2014
New Revision: 1645656
URL: http://svn.apache.org/r1645656
Log:
SLING-4241 Improve JS execution performance
(apply patch by Radu Cotescu; thanks a lot)
Modified:
sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
Modified:
sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java?rev=1645656&r1=1645655&r2=1645656&view=diff
==============================================================================
---
sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
(original)
+++
sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
Mon Dec 15 13:35:27 2014
@@ -34,6 +34,7 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.api.scripting.SlingScriptHelper;
import org.apache.sling.scripting.sightly.js.impl.async.AsyncContainer;
import org.apache.sling.scripting.sightly.js.impl.async.AsyncExtractor;
+import
org.apache.sling.scripting.sightly.js.impl.jsapi.SlyBindingsValuesProvider;
import org.apache.sling.scripting.sightly.js.impl.rhino.JsValueAdapter;
import org.apache.sling.scripting.sightly.render.RenderContext;
import org.apache.sling.scripting.sightly.use.ProviderOutcome;
@@ -74,9 +75,13 @@ public class JsUseProvider implements Us
@Reference
private ResourceResolverFactory rrf = null;
+ @Reference
+ private SlyBindingsValuesProvider slyBindingsValuesProvider = null;
+
@Override
public ProviderOutcome provide(String identifier, RenderContext
renderContext, Bindings arguments) {
Bindings globalBindings = renderContext.getBindings();
+ slyBindingsValuesProvider.processBindings(globalBindings);
if (!Utils.isJsScript(identifier)) {
return ProviderOutcome.failure();
}
Modified:
sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java?rev=1645656&r1=1645655&r2=1645656&view=diff
==============================================================================
---
sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
(original)
+++
sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
Mon Dec 15 13:35:27 2014
@@ -45,7 +45,6 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.api.scripting.SlingBindings;
import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.apache.sling.scripting.api.BindingsValuesProvider;
import org.apache.sling.scripting.sightly.js.impl.JsEnvironment;
import org.apache.sling.scripting.sightly.js.impl.Variables;
import org.apache.sling.scripting.sightly.js.impl.async.AsyncContainer;
@@ -65,16 +64,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Provides the {@code sly} and {@code aem} namespaces for usage in Sightly &
JS scripts
+ * Provides the {@code sightly} namespace for usage in Sightly & JS scripts
* called from Sightly
*/
@Component(metatype = true, label = "Apache Sling Scripting Sightly JavaScript
Bindings Provider",
description = "The Apache Sling Scripting Sightly JavaScript Bindings
Provider loads the JS Use-API and makes it available in the" +
" bindings map.")
-@Service(BindingsValuesProvider.class)
+@Service(SlyBindingsValuesProvider.class)
@Properties({
- @Property(name = "javax.script.name", value = "sightly",
propertyPrivate = true),
- @Property(name = "service.ranking", intValue = 100),
@Property(
name =
SlyBindingsValuesProvider.SCR_PROP_JS_BINDING_IMPLEMENTATIONS,
value = {
@@ -87,7 +84,7 @@ import org.slf4j.LoggerFactory;
)
})
@SuppressWarnings("unused")
-public class SlyBindingsValuesProvider implements BindingsValuesProvider {
+public class SlyBindingsValuesProvider {
public static final String SCR_PROP_JS_BINDING_IMPLEMENTATIONS =
"org.apache.sling.scripting.sightly.js.bindings";
@@ -113,8 +110,7 @@ public class SlyBindingsValuesProvider i
private Script qScript;
private final ScriptableObject qScope = createQScope();
- @Override
- public void addBindings(Bindings bindings) {
+ public void processBindings(Bindings bindings) {
if (needsInit()) {
init(bindings);
}