[ 
https://issues.apache.org/jira/browse/SLING-3973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Carsten Ziegeler closed SLING-3973.
-----------------------------------

> ResourceProviderEntry Should Poll All Viable ModifyingResourceProviders 
> During creation and deletion
> ----------------------------------------------------------------------------------------------------
>
>                 Key: SLING-3973
>                 URL: https://issues.apache.org/jira/browse/SLING-3973
>             Project: Sling
>          Issue Type: Improvement
>          Components: ResourceResolver
>            Reporter: Paul Michelotti
>            Assignee: Carsten Ziegeler
>              Labels: patch
>             Fix For: Resource Resolver 1.2.2
>
>         Attachments: traverse-all-viable-modifying-resource-providers.diff
>
>
> Currently the ResourceProviderEntry, during creation or deletion of a 
> resource, will send the creation or deletion request to the first viable 
> ModifyingResourceProvider.  This is problematic if multiple 
> ModifyingResourceProviders may be viable for a particular path.  Consider the 
> following situation:
> I create a Resource Provider which listens to /content such that it can 
> participate in resource listing calls on that path.  It however does not 
> necessarily handle all resources under /content, the root JcrResourceProvider 
> is also expected to handle some resources under that path.  This works fine 
> for the various get methods, however for modification, the custom Resource 
> Provider always gets chosen first and, if it is not able to create a 
> resource, the creation request does not fall back to less specific providers 
> or the root provider even though those provider might well be able to create 
> the resource. 
> The common pattern across many of the ResourceResolver operations is to poll 
> all viable Resource Providers.  For example, getResource will iterate over 
> all viable Resource Providers in order of path specificity, stopping only if 
> one of them is able to return a resource.  The attached patch implements a 
> similar mechanism for the create and delete commands.  
> Create will iterate over all viable ModifyingResourceProviders in order of 
> specificity, stopping if one of them actually produces a Resource.  Delete 
> will iterate over all viable ModifyingResourceProviders giving each a crack 
> at deleting the resource.  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to