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 2015/04/09 17:01:42 UTC

svn commit: r1672383 - in /sling/trunk/contrib/scripting/sightly: js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java testing-content/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json

Author: radu
Date: Thu Apr  9 15:01:41 2015
New Revision: 1672383

URL: http://svn.apache.org/r1672383
Log:
SLING-4578 - Incorrect Sightly JS Use-API script dependency resolution

* script dependency resolution now also takes into account relative paths for
sling:resourceSuperType

Modified:
    sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java
    sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json

Modified: sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.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/JsEnvironment.java?rev=1672383&r1=1672382&r2=1672383&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java (original)
+++ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java Thu Apr  9 15:01:41 2015
@@ -32,6 +32,7 @@ import javax.script.SimpleScriptContext;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.scripting.SlingBindings;
 import org.apache.sling.api.scripting.SlingScriptHelper;
@@ -185,21 +186,18 @@ public class JsEnvironment {
     private boolean isResourceOverlay(Resource resourceA, Resource resourceB) {
         String resourceBSuperType = resourceB.getResourceSuperType();
         if (StringUtils.isNotEmpty(resourceBSuperType)) {
+            ResourceResolver resolver = resourceA.getResourceResolver();
             String parentResourceType = resourceA.getResourceType();
             if ("nt:file".equals(parentResourceType)) {
                 parentResourceType = ResourceUtil.getParent(resourceA.getPath());
             }
-            if (resourceBSuperType.equals(parentResourceType)) {
-                return true;
-            }
-            Resource parentB = resourceB.getResourceResolver().getResource(resourceBSuperType);
-            resourceBSuperType = parentB.getResourceSuperType();
-            while (!"/".equals(parentB.getPath()) && StringUtils.isNotEmpty(resourceBSuperType)) {
-                if (resourceBSuperType.equals(parentResourceType)) {
+            Resource parentB = resolver.getResource(resourceBSuperType);
+            while (parentB != null && !"/".equals(parentB.getPath()) && StringUtils.isNotEmpty(resourceBSuperType)) {
+                if (parentB.getPath().equals(parentResourceType)) {
                     return true;
                 }
-                parentB = parentB.getParent();
                 resourceBSuperType = parentB.getResourceSuperType();
+                parentB = resolver.getResource(resourceBSuperType);
             }
         }
         return false;

Modified: sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json?rev=1672383&r1=1672382&r2=1672383&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json (original)
+++ sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json Thu Apr  9 15:01:41 2015
@@ -9,6 +9,6 @@
     },
     "child": {
         "jcr:primaryType": "sling:Folder",
-        "sling:resourceSuperType": "/apps/sightly/scripts/useinheritance/parent"
+        "sling:resourceSuperType": "sightly/scripts/useinheritance/parent"
     }
 }
\ No newline at end of file