Joanna Jasnowska created SLING-7593:
---------------------------------------
Summary: ResourceTraversor doesn't support ResourceDecorator
pattern
Key: SLING-7593
URL: https://issues.apache.org/jira/browse/SLING-7593
Project: Sling
Issue Type: Bug
Reporter: Joanna Jasnowska
Attachments:
calling_deprecated_ResourceUtil_listChildren(resource)_replaced_with_resource_listChildren.patch
In my current project, we are using ResourceDecorator pattern. In one case we
would like to decorate a resource with additional children. Unfortunately
ResourceTraversor object doesn't accept information about children from
ResourceDecorator. It is caused by usage of ResourceUtil.listChildren(resource)
method (inside ResourceTraversor class) which is deprecated. Under the hood the
method invokes resource.getResourceResolver.listChildren(resource) method which
reads data directly from repo. In result our additional children are not
returned. Moreover, we don't have a place to add them to the list returned from
resourceResolver.listChildren method.
When we change the approach and we invoke resource.listChildren() method
instead of ResourceUtil.listChildren(resource) then we get solution which is
compatible with ResourceDecorator pattern and on the other hand when resources
are not decorated then no changes should be observed.
Additionally I have one additional question about org.apache.sling.servlets.get
bundle imported packages. Why do we have the following dependency
org.apache.sling.api.resource.external;version="[1.0,2)" in the latest released
version? On the other hand the same bundle has dependency on
org.apache.sling.api.resource; version="[2.10,3)". Is it expected? If yes then
how to provide org.apache.sling.api.resource.external;version="[1.0,2)" on my
environment, because now I don't have it.
In the attachment section, you could find patch containing fix for the
described scenario.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)