Update Minion's Apache Karaf to 4.0.8
Description
Acceptance / Success Criteria
blocks
Lucidchart Diagrams
Activity

Seth Leger June 14, 2017 at 11:03 AM
Two other issues that had to be addressed to make this work:
The
KarafExtender
class was changed to install features in a separate thread because feature installation was changed to be single-threaded between Karaf 4.0.5 and 4.0.8. (commit 5cbfaf5b4f455225184950b238ccdea5e94f744b)The branding.properties file had to be duplicated as branding-ssh.properties since they are branded separately now. (commit 1e0462d35c55414e32f4383c65c168afc30ea22b)

Seth Leger June 14, 2017 at 10:35 AM
This upgrade has been performed. Because it complicates the startup process, I've removed the Import-Service
and Export-Service
headers from our bundles so that they are not evaluated by Karaf. Marking as fixed.

Seth Leger May 4, 2017 at 12:52 PM
You can also force Karaf to enforce Import-Package
restrictions in a particular way inside org.apache.karaf.features.cfg
:

Seth Leger May 4, 2017 at 12:50 PM
Slight correction: bnd might have been generating the Import-Service
and Export-Service
headers earlier but now Karaf (or the Felix resolver that it uses) has been changed to actually evaluate those headers during bundle resolution. This is a problem because the bundle resolution is synchronous but spawning the services is part of the async bundle startup. To be able to use this, we probably need to reorganize the Karaf startup into parenthetical phases and make sure that the ordering is correct. Because we don't do that right now, I'm just going to strip the Import-Service
headers from our bundles. Service resolution will still work like it did before: if services are missing, you'll get GracePeriod timeouts.
Because of several bugfixes and upgrades in Apache Karaf 4.0.8, it's not a drop-in replacement for 4.0.5 in our Minion system. There are several different issues:
bnd has been upgraded and now generates
Import-Service
andExport-Service
headers that cause problems during bundle resolutionKaraf changed feature installation to be single-threaded, which causes the KarafExtender to deadlock
The new karaf-maven-plugin behaves slightly differently when building repositories