You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:59:46 UTC
[sling-org-apache-sling-resourceresolver] 16/47: SLING-2530 :
Implement CRUD based on resources
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 84d0fb08d4e70e5910fefd43cb7aa44c6dec39be
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Jul 25 15:57:05 2012 +0000
SLING-2530 : Implement CRUD based on resources
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/resourceresolver@1365645 13f79535-47bb-0310-9956-ffa450edef68
---
.../sling/resourceresolver/impl/ResourceResolverImpl.java | 13 ++++++++++++-
.../resourceresolver/impl/tree/ResourceProviderEntry.java | 11 +++++++++--
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
index b11a8c6..5064da7 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
@@ -1007,6 +1007,9 @@ public class ResourceResolverImpl extends SlingAdaptable implements ResourceReso
final ModifyingResourceProvider mrp = this.factory.getRootProviderEntry().getModifyingProvider(this.context,
this,
path);
+ if ( mrp == null ) {
+ throw new UnsupportedOperationException("delete at '" + path + "'");
+ }
mrp.delete(this, path);
}
@@ -1019,10 +1022,18 @@ public class ResourceResolverImpl extends SlingAdaptable implements ResourceReso
if ( name == null ) {
throw new NullPointerException("name");
}
- final String path = parent.getPath() + '/' + name;
+ final String path;
+ if ( parent.getPath().equals("/") ) {
+ path = parent.getPath() + name;
+ } else {
+ path = parent.getPath() + "/" + name;
+ }
final ModifyingResourceProvider mrp = this.factory.getRootProviderEntry().getModifyingProvider(this.context,
this,
path);
+ if ( mrp == null ) {
+ throw new UnsupportedOperationException("addChild '" + name + "' at " + parent.getPath());
+ }
return mrp.create(this, path, properties);
}
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 39e8675..b030cd6 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
@@ -347,11 +347,18 @@ public class ResourceProviderEntry implements Comparable<ResourceProviderEntry>
return (ModifyingResourceProvider) provider;
}
if ( rp.ownsRoots() ) {
- throw new UnsupportedOperationException();
+ return null;
}
}
}
- throw new UnsupportedOperationException();
+ // try this one
+ for(final ProviderHandler rp : this.providers) {
+ final ResourceProvider provider = rp.getResourceProvider(ctx);
+ if ( provider instanceof ModifyingResourceProvider) {
+ return (ModifyingResourceProvider) provider;
+ }
+ }
+ return null;
}
private static final char SPLIT_SEP = '/';
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.