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);
         }


Reply via email to