Case 1 should be working in trunk now. What's the
<Sling-Bundle-Resources> header look like?

In terms of case 2, if this was to be implemented, I don't think it
should be up to the ResourceProvider implementation to create the
SyntheticResource. If a ResourceProvider has a root of /foo/bar, then it
shouldn't be expected to return resources for anything not starting with
/foo/bar.

Even though this is easy to workaround, if we're serious about
supporting WebDAV over the resource tree, supporting this is probably
necessary.

Justin

On 8/23/10 4:17 AM, Mike Müller wrote:
> Hi
> 
> When getting a resource the case seems to be clear:
> The first resource provider which returns a resource
> *wins*. And the resource providers are called in order
> starting with the provider which is registered for the
> longest part of the requested path.
> With ResourceResolver#listChildren it's a bit trickier.
> Assume the following:
> 
> structure in the JCR:
> 
> /foo
> /foo/bar
> /foo/bar/test
> 
> and in another resource provider:
> 
> /foo/bar
> /foo/bar/myresource
> 
> case 1)
> ResourceResolver#listChildren( "/foo/bar" ) should now
> list the following
> 
> test
> myresource
> 
> case 2)
> Assume another provider:
> /some/path/resource
> /some/path/resource2
> 
> What should ResourceResolver#listChildren( "/" ) list?
> From my understanding it should list:
> 
> foo
> some
> 
> where may be a SyntheticResource.
> 
> case 1) and case 2) are not returning the expected result, at least
> not if you use a bundle resource provider. I haven't looked into the
> details so I can't say if it's a problem of the bundle resource
> provider or a more general problem with the resource resolver
> implementation.
> 
> Maybe security could be a problem. But a resource provider at least
> can access the user id via ResourceResolver#getUserID, and list children
> only if access is allowed. I don't know if this behavour of a
> resource provider is intended.
> 
> WDYT?
> 
> best regards
> mike

Reply via email to