Hi there,
I’m using Karaf 3.0.2 (on CentOS Linux 7 with Java 1.7.0_75) and a kar archive,
my feature file includes the following:
...
<feature version="2.14.0">camel-spring-ws</feature>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5</bundle>
...
When I deploy (i.e. place my archive into the deploy directory) on a clean
Karaf the installation works fine. However, once I redeploy I get a dependency
chain issue because the bundle org.springframework.ws which was installed
through the feature camel-spring-ws is still wiring to the previously available
dom4j which now doesn’t exist anymore as it was removed when my kar was
uninstalled.
(before redeploy: dom4j exists with ID 151)
karaf@root()> bundle:list | grep dom4j
151 | Active | 80 | 1.6.1.5 | Apache ServiceMix :: Bundles :: dom4j
(after redeploy: dom4j with ID 151 does’t exist anymore but
org.springframework.ws is still wiring it)
Chain 1:
ch.vivates.hpd.providerdir-ws [154.0]
import:
(&(osgi.wiring.package=org.dom4j)(version>=1.6.0)(!(version>=2.0.0)))
|
export: osgi.wiring.package=org.dom4j
org.apache.servicemix.bundles.dom4j [170.0]
Chain 2:
ch.vivates.hpd.providerdir-ws [154.0]
import:
(&(osgi.wiring.package=org.springframework.ws.server.endpoint.adapter)(version>=2.1.4.RELEASE))
|
export: osgi.wiring.package=org.springframework.ws.server.endpoint.adapter;
uses:=org.dom4j
org.springframework.ws [119.0]
import:
(&(osgi.wiring.package=org.dom4j)(version>=1.6.1)(!(version>=2.0.0)))
|
export: osgi.wiring.package=org.dom4j
org.apache.servicemix.bundles.dom4j [151.0]
It seems that features installed with my kar archive and it’s bundles won’t get
refreshed (reinstalled/rewired) when I redeploy my kar, is this behaviour to be
expected?
Of course I could manually install/uninstall in an order that ensures correct
wiring but that would miss the point of using a kar archive. Am I missing
something? How does such a case need to be implemented to ensure that the
redeployment of the kar archive works?
Thanks for your help!
Clauds