You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:11:03 UTC

[sling-org-apache-sling-scripting-sightly-js-provider] 06/18: SLING-4241 Improve JS execution performance

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.scripting.sightly.js.provider-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-js-provider.git

commit ca30d507a105cfb982c4f1f7d327d5ffa9172b4d
Author: Felix Meschberger <fm...@apache.org>
AuthorDate: Mon Dec 15 13:35:27 2014 +0000

    SLING-4241 Improve JS execution performance
    
    (apply patch by Radu Cotescu; thanks a lot)
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/sightly/js-use-provider@1645656 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/scripting/sightly/js/impl/JsUseProvider.java       |  5 +++++
 .../sightly/js/impl/jsapi/SlyBindingsValuesProvider.java     | 12 ++++--------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java b/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
index fa8b0ec..b779c81 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
@@ -34,6 +34,7 @@ import org.apache.sling.api.resource.ResourceResolverFactory;
 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 UseProvider {
     @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();
         }
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 72b99a2..6731ed4 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
@@ -45,7 +45,6 @@ import org.apache.sling.api.resource.ResourceResolver;
 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 implements BindingsValuesProvider {
     private Script qScript;
     private final ScriptableObject qScope = createQScope();
 
-    @Override
-    public void addBindings(Bindings bindings) {
+    public void processBindings(Bindings bindings) {
         if (needsInit()) {
             init(bindings);
         }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.