This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.resourceresolver-1.0.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git
commit 3c93301349cbcddc351df7ac55623eb580640fb6 Author: Carsten Ziegeler <cziege...@apache.org> AuthorDate: Thu Jul 19 11:41:48 2012 +0000 SLING-2530 : Implement CRUD based on resources git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/resourceresolver@1363304 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/resourceresolver/impl/tree/ProviderHandler.java | 14 ++++++++++++++ .../resourceresolver/impl/tree/ResourceProviderEntry.java | 9 +++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java b/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java index ed50acb..c1f25ae 100644 --- a/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java +++ b/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java @@ -46,6 +46,9 @@ public abstract class ProviderHandler implements Comparable<ProviderHandler> { /** Configured roots. */ private final String[] roots; + /** Owns roots? */ + private final boolean ownsRoots; + /** * Create a new handler */ @@ -75,6 +78,7 @@ public abstract class ProviderHandler implements Comparable<ProviderHandler> { Collections.sort(configuredRoots); this.roots = configuredRoots.toArray(new String[configuredRoots.size()]); } + this.ownsRoots = PropertiesUtil.toBoolean(properties.get(ResourceProvider.OWNS_ROOTS), false); } /** @@ -92,6 +96,13 @@ public abstract class ProviderHandler implements Comparable<ProviderHandler> { } /** + * Does this provider own the roots? + */ + public boolean ownsRoots() { + return this.ownsRoots; + } + + /** * Return a sorted array of roots for this provider. If no roots are configured, * this will return <code>null</code> * @return The array of roots or <code>null</code> @@ -142,6 +153,9 @@ public abstract class ProviderHandler implements Comparable<ProviderHandler> { */ public abstract Iterator<Resource> listChildren(final ResourceResolverContext ctx, final Resource parent); + /** + * Return the resource provider. + */ public abstract ResourceProvider getResourceProvider(final ResourceResolverContext ctx); /** diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntry.java b/src/main/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntry.java index 12b0295..39e8675 100644 --- a/src/main/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntry.java +++ b/src/main/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntry.java @@ -287,8 +287,11 @@ public class ResourceProviderEntry implements Comparable<ResourceProviderEntry> LOGGER.debug("Resolved Full {} using {} from {} ", new Object[] { fullPath, rp, Arrays.toString(rps) }); return resource; } + if ( rp.ownsRoots() ) { + LOGGER.debug("Resource null {} ", fullPath); + return null; + } } - // TODO stop handling if provider claims subtree! } // resolve against this one @@ -343,8 +346,10 @@ public class ResourceProviderEntry implements Comparable<ResourceProviderEntry> if ( provider instanceof ModifyingResourceProvider ) { return (ModifyingResourceProvider) provider; } + if ( rp.ownsRoots() ) { + throw new UnsupportedOperationException(); + } } - // TODO stop handling if provider claims subtree! } throw new UnsupportedOperationException(); } -- To stop receiving notification emails like this one, please contact "commits@sling.apache.org" <commits@sling.apache.org>.