Bertrand Delacretaz created SLING-3267:
------------------------------------------
Summary: ResourceDecorator returning null should cause Resources
to be ignored
Key: SLING-3267
URL: https://issues.apache.org/jira/browse/SLING-3267
Project: Sling
Issue Type: Improvement
Components: ResourceResolver
Affects Versions: Resource Resolver 1.0.6
Reporter: Bertrand Delacretaz
Assignee: Bertrand Delacretaz
Priority: Minor
The ResourceDecorator API's decorate(...) method javadocs currently specify
that it can return null, but I don't think that's supported in a consistent way
in the resource resolving process - returning null causes the resource resolver
to supply a null Resource in some cases, which will probably cause NPEs
downstream.
The javadocs also say "If the service does not want to decorate the resource,
it should return the original resource" which is consistent with how the
resource resolver currently operates: returning null is clearly not a way of
saying "do not decorate this resource".
As we're discussing feature flags in Sling, we could clarify this behavior by
specifying that a ResourceDecorator returning null causes the resource to be
considered as non-existent, and making the corresponding (rather small) changes
in the resource resolver code.
As every Resource needs to go through the available ResourceDecorators, this is
a simple way of making resources hideable based on feature flags. One then just
needs to implement a ResourceDecorator that returns null when a Resource must
be ignored.
--
This message was sent by Atlassian JIRA
(v6.1#6144)