Author: sseifert
Date: Tue Oct 11 16:39:43 2016
New Revision: 1764295

URL: http://svn.apache.org/viewvc?rev=1764295&view=rev
Log:
SLING-6132 ResourceBuilder: Use absolute resource path should switch to 
hierachy mode

Modified:
    
sling/trunk/bundles/extensions/resourcebuilder/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java
    
sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java
    
sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java

Modified: 
sling/trunk/bundles/extensions/resourcebuilder/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/resourcebuilder/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java?rev=1764295&r1=1764294&r2=1764295&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/resourcebuilder/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java
 (original)
+++ 
sling/trunk/bundles/extensions/resourcebuilder/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java
 Tue Oct 11 16:39:43 2016
@@ -112,7 +112,8 @@ public class ResourceBuilderImpl impleme
         
         final String parentPath;
         final String fullPath;
-        if (isAbsolutePath(path)) {
+        boolean absolutePath = isAbsolutePath(path);
+        if (absolutePath) {
             parentPath = ResourceUtil.getParent(path);
             fullPath = path;
         }
@@ -145,8 +146,8 @@ public class ResourceBuilderImpl impleme
         
         if (r == null) {
             throw new RuntimeException("Failed to get or create resource " + 
fullPath);
-        } else if(hierarchyMode) {
-            return cloneResourceBuilder(r, this.intermediatePrimaryType, 
this.hierarchyMode);
+        } else if (hierarchyMode || absolutePath) {
+            return cloneResourceBuilder(r, this.intermediatePrimaryType, true);
         }
         return this;
     }

Modified: 
sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java?rev=1764295&r1=1764294&r2=1764295&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java
 (original)
+++ 
sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java
 Tue Oct 11 16:39:43 2016
@@ -367,6 +367,26 @@ public class ResourceBuilderImplTest {
     }
 
     @Test
+    public void absolutePathSwitchBackToSiblingMode() throws Exception {
+        new ResourceBuilderFactoryService()
+            .forResolver(resourceResolver)
+            .resource("/a").siblingsMode().resource("a1").resource("a2")
+            .resource("/b").siblingsMode().resource("b1").resource("b2")
+            .resource("/c").resource("c1").resource("c11");
+        
+        // make sure sibling mode is switched back to hierarchy mode when 
absolute resources is used
+        A.assertResource("/a");
+        A.assertResource("/a/a1");
+        A.assertResource("/a/a2");
+        A.assertResource("/b");
+        A.assertResource("/b/b1");
+        A.assertResource("/b/b2");
+        A.assertResource("/c");
+        A.assertResource("/c/c1");
+        A.assertResource("/c/c1/c11");
+    }
+
+    @Test
     public void reuseInstance() throws Exception {
         ResourceBuilder content = new ResourceBuilderFactoryService()
                 .forResolver(resourceResolver)

Modified: 
sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java?rev=1764295&r1=1764294&r2=1764295&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java
 (original)
+++ 
sling/trunk/bundles/extensions/resourcebuilder/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java
 Tue Oct 11 16:39:43 2016
@@ -52,7 +52,7 @@ public class ResourceAssertions {
     }
     
     public Resource assertResource(String path) {
-        final Resource result =  resourceResolver.resolve(fullPath(path));
+        final Resource result = resourceResolver.getResource(fullPath(path));
         assertNotNull("Expecting resource to exist:" + path, result);
         return result;
     }


Reply via email to