[ 
https://issues.apache.org/jira/browse/SLING-7593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16602105#comment-16602105
 ] 

Carsten Ziegeler commented on SLING-7593:
-----------------------------------------

[~joannajasnowska] Thanks for following up here. In the initial description you 
wrote:
"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"
But actually the listChildren method of the resource resolver implementation is 
the central method applying the resource decorators to resources.
Therefore if the problem still exists for you, I suggest to open a new issue 
with a detailed description of what you're trying to do and the outcome of it. 
Best would be a test case demonstrating your problem.

> ResourceTraversor doesn't support ResourceDecorator pattern
> -----------------------------------------------------------
>
>                 Key: SLING-7593
>                 URL: https://issues.apache.org/jira/browse/SLING-7593
>             Project: Sling
>          Issue Type: Bug
>          Components: API, Servlets
>            Reporter: Joanna Jasnowska
>            Assignee: Carsten Ziegeler
>            Priority: Blocker
>             Fix For: API 2.18.2, Servlets Get 2.1.32
>
>         Attachments: 
> calling_deprecated_ResourceUtil_listChildren(resource)_replaced_with_resource_listChildren.patch,
>  listChildren_method_fixed.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)

Reply via email to