[
https://issues.apache.org/jira/browse/SLING-12245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17815578#comment-17815578
]
Konrad Windszus edited comment on SLING-12245 at 2/8/24 8:50 AM:
-----------------------------------------------------------------
Just to clarify: The ResourceChangeListener in
https://github.com/apache/sling-org-apache-sling-rewriter/blob/4d1952648e35e7001236f282040a78479f7726d4/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java#L134
is notified both about REMOVED and ADDED *outside* the path (i.e. for the
ancestor node) as the filter method in
https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/6cfe4c3cb3a532ebfcabe13ae0028b71fb20996e/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java#L205C39-L205C52
doesn't consider the path restriction at all!
The only difference is that for REMOVED it is also notified about sub resources.
I don't think there is a reasonable fix inside the Sling Rewriter, but rather
this requires a better approach in
https://github.com/apache/sling-org-apache-sling-jcr-resource/blob/master/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
or
https://github.com/apache/sling-org-apache-sling-jcr-resource/blob/master/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java
to tackle node moves. Any other idea for fixing this except for another flag
for Oak to also emit "NODE_ADDED" events for all moved child nodes?
was (Author: kwin):
Just to clarify: The ResourceChangeListener in
https://github.com/apache/sling-org-apache-sling-rewriter/blob/4d1952648e35e7001236f282040a78479f7726d4/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java#L134
is notified both about REMOVED and ADDED *outside* the path (i.e. for the
ancestor node) as the filter method in
https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/6cfe4c3cb3a532ebfcabe13ae0028b71fb20996e/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java#L205C39-L205C52
doesn't consider the path restriction at all!
The only difference is that for REMOVED it is also notified about sub resources.
I don't think there is a reasonable fix inside the Sling Rewriter, but rather
this requires a better approach in
https://github.com/apache/sling-org-apache-sling-jcr-resource/blob/master/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
to tackle node moves. Any other idea for fixing this except for another flag
for Oak to also emit "NODE_ADDED" events for all moved child nodes?
> Sling Rewriter does not detect configuration changes coming in via move
> -----------------------------------------------------------------------
>
> Key: SLING-12245
> URL: https://issues.apache.org/jira/browse/SLING-12245
> Project: Sling
> Issue Type: Improvement
> Affects Versions: Rewriter 1.3.10
> Reporter: Konrad Windszus
> Priority: Major
>
> If one renames/moves a JCR node from {{/apps/my/config/invalid-rewriter}} to
> {{/apps/my/config/rewriter}} the new rewriter configuration is not being
> detected by the {{ProcessorManagerImpl}} due to the
> {{ResourceChangeListener}} only being configured to listen for changes below
> the {{rewriter}} resource
> (https://github.com/apache/sling-org-apache-sling-rewriter/blob/4d1952648e35e7001236f282040a78479f7726d4/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java#L69).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)