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]>.
