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

rombert pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcebuilder.git

commit fcc410761f299058bf9b01963462f40532d46eec
Author: Stefan Seifert <[email protected]>
AuthorDate: Tue Oct 11 16:39:43 2016 +0000

    SLING-6132 ResourceBuilder: Use absolute resource path should switch to 
hierachy mode
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1764295 
13f79535-47bb-0310-9956-ffa450edef68
---
 .../resourcebuilder/impl/ResourceBuilderImpl.java    |  7 ++++---
 .../impl/ResourceBuilderImplTest.java                | 20 ++++++++++++++++++++
 .../resourcebuilder/test/ResourceAssertions.java     |  2 +-
 3 files changed, 25 insertions(+), 4 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java 
b/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java
index fcc4cae..d95d35a 100644
--- 
a/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java
+++ 
b/src/main/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImpl.java
@@ -112,7 +112,8 @@ public class ResourceBuilderImpl implements ResourceBuilder 
{
         
         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 implements ResourceBuilder 
{
         
         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;
     }
diff --git 
a/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java
 
b/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java
index e025c16..4289489 100644
--- 
a/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java
+++ 
b/src/test/java/org/apache/sling/resourcebuilder/impl/ResourceBuilderImplTest.java
@@ -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)
diff --git 
a/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java 
b/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java
index cea2069..787c66d 100644
--- 
a/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java
+++ 
b/src/test/java/org/apache/sling/resourcebuilder/test/ResourceAssertions.java
@@ -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;
     }

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to