@ConsumerType
public interface ResourceProvider
ResourceResolver
to
transparently access resources from different locations such as a JCR
repository (the default) or OSGi bundles.
This interface is intended to be implemented by providers of resource
instances on behalf of the ResourceResolver
. It
is not intended to be used by client applications directly. A resource
provider can either directly implement this service interface, e.g.
when no user authentication is provided (like for bundle resources)
or a ResourceProviderFactory
service can be implemented which
upon successful authentication returns a resource provider with the
given user credentials.
Modifier and Type | Field and Description |
---|---|
static String |
OWNS_ROOTS
The name of the service registration property containing the a boolean
flag whether this provider owns the tree registered by the roots.
|
static String |
RESOURCE_TYPE_SYNTHETIC
The resource type be set on resources returned by the
listChildren(Resource) method to enable traversing the
resource
tree down to a deeply nested provided resource which has no concrete
parent hierarchy (value is"sling:syntheticResourceProviderResource"). |
static String |
ROOTS
The name of the service registration property containing the root paths
of the resources provided by this provider (value is "provider.roots").
|
static String |
SERVICE_NAME
The service name to use when registering implementations of this
interface as services (value is
"org.apache.sling.api.resource.ResourceProvider").
|
static String |
USE_RESOURCE_ACCESS_SECURITY
The name of the service registration property containing the a boolean
flag indicating if the ResourceAccessSecurity service should be used for
this provider or not.
|
Modifier and Type | Method and Description |
---|---|
Resource |
getResource(ResourceResolver resourceResolver,
javax.servlet.http.HttpServletRequest request,
String path)
Deprecated.
since 2.2.0 (and JCR Resource 2.1.0), this method will not be invoked.
|
Resource |
getResource(ResourceResolver resourceResolver,
String path)
Returns a resource from this resource provider or
null if
the resource provider cannot find it. |
Iterator<Resource> |
listChildren(Resource parent)
|
static final String SERVICE_NAME
static final String ROOTS
static final String OWNS_ROOTS
false
. If a provider owns a root
no other providers are asked for resources under this root if this
provider does not have a resource. (value is "provider.ownsRoots").static final String USE_RESOURCE_ACCESS_SECURITY
false
.
(value is "provider.useResourceAccessSecurity")static final String RESOURCE_TYPE_SYNTHETIC
listChildren(Resource)
method to enable traversing the
resource
tree down to a deeply nested provided resource which has no concrete
parent hierarchy (value is"sling:syntheticResourceProviderResource").listChildren(Resource)
,
Constant Field Values@Deprecated Resource getResource(ResourceResolver resourceResolver, javax.servlet.http.HttpServletRequest request, String path)
null
if
the resource provider cannot find it. The path should have one of the
ROOTS
strings as its prefix.
This method is called to resolve a resource for the given request. The properties of the request, such as request parameters, may be use to parameterize the resource resolution. An example of such parameterization is support for a JSR-311 style resource provider to support the parameterized URL patterns.
resourceResolver
- The ResourceResolver
to which the returned
Resource
is attached.null
If this provider does not have a resource for
the path.SlingException
- may be thrown in case of any problem creating the Resource
instance.Resource getResource(ResourceResolver resourceResolver, String path)
null
if
the resource provider cannot find it. The path should have one of the ROOTS
strings as its prefix.
The resource provider must not return cached instances for a resource as
the resource resolver will update the resource metadata of the resource
at the end of the resolution process and this metadata might be different
depending on the full path of resource resolution passed into the
resource resolver.resourceResolver
- The ResourceResolver
to which the returned Resource
is attached.null
If this provider does not have a resource for
the path.SlingException
- may be thrown in case of any problem creating the Resource
instance.Iterator<Resource> listChildren(Resource parent)
Iterator
of Resource
objects loaded from
the children of the given Resource
. The returned Resource
instances
are attached to the same
ResourceResolver
as the given parent
resource.
This method may be called for resource providers whose root path list contains a path such that the resource path is a prefix of the list entry. This allows for the enumeration of deeply nested provided resources for which no actual parent hierarchy exists.
The returned iterator may in turn contain resources which do not actually exist but are required
to traverse the resource
tree. Such resources SHOULD be SyntheticResource
objects whose resource type MUST be set to
RESOURCE_TYPE_SYNTHETIC
.
As with getResource(ResourceResolver, String)
the returned Resource objects must
not be cached objects.
parent
- The Resource
whose children are requested.Iterator
of Resource
objects or null
if the resource
provider has no children for the given resource.NullPointerException
- If parent
is null
.SlingException
- If any error occurs acquiring the child resource iterator.Copyright © 2014 The Apache Software Foundation. All rights reserved.