[
https://issues.apache.org/jira/browse/SLING-7790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16570041#comment-16570041
]
Konrad Windszus commented on SLING-7790:
----------------------------------------
bq. I'd like to not have to do that because it's not that nice from a
maintenance perspective (refactorings might break packages if people forget to
update that property). Sling models is an example where java packages had to be
first listed explicitly and now we are happy to not have to do that anymore
(with the bnd plugin).
You can easily throw an exception in the hook if a non-existing path is
referenced there. So you immediately notice if some path needs to be adjusted.
For me it is just the other way around: If you add more bundles to the package,
it will get installed eagerly automatically although in most of the cases this
is not necessary and might be even not intended.
bq. I would update the code to propertly check for
sling.jcrinstall.folder.name.regexp and sling.jcrinstall.folder.max.depth in
PID org.apache.sling.installer.provider.jcr.impl.JcrInstaller to fix that,
would that approach be ok for you?
For me this is not a good separation of concerns and this might easily break in
the future if the JCR Installer evolves.
> Allow for synchronous installation of bundles and configurations via install
> hook
> ---------------------------------------------------------------------------------
>
> Key: SLING-7790
> URL: https://issues.apache.org/jira/browse/SLING-7790
> Project: Sling
> Issue Type: New Feature
> Components: Installer
> Reporter: Georg Henzler
> Assignee: Georg Henzler
> Priority: Major
>
> Normally bundles configurations are installed asynchronously after a bundle
> is saved to the JCR during package installation (vault packages). This is due
> to the backgroundThread that the OsgiInstallerImpl is using. Since the
> introduction of the pauseInstallation signal node via SLING-3747, the
> installation of bundles and configurations is even forced to after the
> completed vault package installation. This behaviour also means that the
> package dependency can be declared, but it is not effective on "contained
> bundle level" but only on JCR content level. The following is not possible
> today:
> Complete Package with sub packages:
> * Package A (containing Bundle A)
> * Package B (containing Bundle B) with dependency to Bundle A
> If it is just a OSGi package dependency from Bundle B to Bundle A the
> installation order does not matter (the OSGi framework will sort it out).
> However if the content of Package B has a dependency to bundle A (think
> custom oak restrictions [1] or install hooks referenced) there will be an
> error.
> To allow for those cases and to avoid manual steps (not providing a complete
> package often means exactly that), it would be good to have a means to
> install contained bundles of a package synchronously. This can be achieved by
> a fairly simple install hook that "pre-installs" the contained
> InstallableResources with the correct digest to the OsgiInstaller. The
> subsequent call of sling-org-apache-sling-installer-provider-jcr will just
> update the already installed resource again with the same digest (which will
> not cause any action in the system).
> Obviously this mechanism should only be used where needed and only for
> configurations and bundles that are safe to install (bundles/configs that
> will never restart any of the base services). Using the install hook makes
> the mechanism "opt-in".
> [1]
> https://sling.apache.org/documentation/bundles/sling-oak-restrictions.html
> https://jackrabbit.apache.org/oak/docs/security/authorization/restriction.html#pluggability
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)