[
https://issues.apache.org/jira/browse/SLING-3747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chetan Mehrotra updated SLING-3747:
-----------------------------------
Attachment: SLING-3747-2.patch
Updated [patch|^SLING-3747-2.patch] which does not rely on observation. Instead
a check for property value is made if any of the watched folder needs scan as
per [~fmeschbe] suggestion
bq. What about - as Felix suggest - simply check the value of the property
before runOneCycle() is invoked instead of relying on observation to be
deliverd in the correct order?
Well that becomes polling and making JCR call every 500 msec. Might be better
to check for property value only if any of the WatchedFolder.needsScan returns
true. Then we would not be making too frequent JCR calls.
Updated patch to use that approach
bq. but maybe a session.refresh() needs to be added as well.
When session with which ObservationListener is registerd is used to read a
value post event delivery then as per spec its ensured that session is upto
date.
> Provide a way to signal Jcr Installer to pause and resume scanning
> ------------------------------------------------------------------
>
> Key: SLING-3747
> URL: https://issues.apache.org/jira/browse/SLING-3747
> Project: Sling
> Issue Type: New Feature
> Components: Installer
> Reporter: Chetan Mehrotra
> Attachments: SLING-3747-1.patch, SLING-3747-2.patch, SLING-3747.patch
>
>
> Currently Sling Installer JCR Provider would listen for observation event and
> would perform a rescan every 500 msec upon receiving any observation event.
> This at times cause issue when large number of bundles get updated in
> repository say via installation of bug fixing content package. Further if
> same content package also updates the repository bundle then it causes issues
> as repository bundle might get updated midway while content package is still
> being deployed
> Based on [~fmeschbe] suggestion this can be done via introducing a signalling
> mechanism between component which installs package and JCR Installer. It
> would work something like this
> # JCR Installer would listen to changes done to property
> {{/system/sling/installer/jcr/pauseInstallation}}
> # Package installer would set the above flag to true before installing the
> package and reset it back to false post installation
> # If JCR Installer detects that flag is set to true it would not scan the
> watch folders untill it get reset back to false
> This should also address the issue in cluster deployment
--
This message was sent by Atlassian JIRA
(v6.2#6252)