[
https://issues.apache.org/jira/browse/SLING-1888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carsten Ziegeler resolved SLING-1888.
-------------------------------------
Resolution: Won't Fix
> Generalize support for framework restart and update
> ---------------------------------------------------
>
> Key: SLING-1888
> URL: https://issues.apache.org/jira/browse/SLING-1888
> Project: Sling
> Issue Type: Improvement
> Components: Launchpad
> Affects Versions: Launchpad Base 2.2.0
> Reporter: Felix Meschberger
> Priority: Major
>
> Currently, the Sling launchpad implements controlled framework restart and
> update by extending the Felix framework implementation class overwriting the
> update() and update(InputStream) methods. This works fine with Apache Felix.
> But it fails supporting other frameworks like Equinox where overwriting the
> system bundle implementation is not as easy as in Apache Felix.
> The solution might be to leverage the Bundle FindHook interface proposed for
> OSGi R4.3:
> find(org.osgi.framework.BundleContext context,
> Collection<org.osgi.framework.Bundle> bundles)
> This hook is called whenever the BundleContext.getBundles() or
> BundleContext.getBundle(long) method is called. It allows the hook
> implementor to limit the returned bundles or otherwise modify the collection
> of bundles returned.
> Our implementation would check whether the system bundle (bundle ID 0) is
> amongst the returned bundles. If so, a wrapper is created which overwrites
> the update() and update(InputStream) methods to actually implement Sling's
> Launchpad functionality:
> * Restart the framework in new class loader upon update()
> * Update the framework and restart it in a new class loader upon
> update(InputStream)
> This would allow us to also fully support Equinox as a framework to launch.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)