[ https://issues.apache.org/jira/browse/KARAF-4811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15714593#comment-15714593 ]
Guillaume Nodet commented on KARAF-4811: ---------------------------------------- When installing features, karaf FeaturesService will consider all bundles. Those flagged with {{dependency="true"}} are considered as possible solutions to solve requirements of bundles not flagged as dependencies. So if you have 2 different features that have javax.mail as a dependency with different versions, only one will be installed if they both can use it. This seems to be the case here. > The javax.mail is updated from 1.4.4 to 1.4.5 when install camel-jetty9 > feature > ------------------------------------------------------------------------------- > > Key: KARAF-4811 > URL: https://issues.apache.org/jira/browse/KARAF-4811 > Project: Karaf > Issue Type: Bug > Components: karaf-feature > Affects Versions: 4.0.5 > Environment: Java 8 > Reporter: Xilai Dai > > Start karaf 4.0.5 console, execute the command: feature:install webconsole > Then the Jetty 9 bundles got installed. > Then try to install camel-jetty9 feature: > feature:repo-add mvn:org.apache.camel.karaf/apache-camel/2.16.3/xml/features > feature:install camel-core > feature:install -v camel-jetty9 > {code} > karaf@root()> feature:install -v camel-jetty9 > Adding features: camel-jetty9/[2.16.3,2.16.3] > Changes to perform: > Region: root > Bundles to update: > javax.mail/1.4.4 with mvn:javax.mail/mail/1.4.5 > Bundles to install: > mvn:org.apache.camel/camel-http-common/2.16.3 > mvn:org.apache.camel/camel-jetty-common/2.16.3 > mvn:org.apache.camel/camel-jetty9/2.16.3 > Stopping bundles: > javax.mail/1.4.4 > Updating bundles: > mvn:javax.mail/mail/1.4.5 > Installing bundles: > mvn:org.apache.camel/camel-http-common/2.16.3 > mvn:org.apache.camel/camel-jetty-common/2.16.3 > mvn:org.apache.camel/camel-jetty9/2.16.3 > Stopping bundles: > javax.mail/1.4.5 > org.eclipse.jetty.plus/9.2.15.v20160210 > org.eclipse.jetty.jndi/9.2.15.v20160210 > org.ops4j.pax.logging.pax-logging-service/1.8.5 > Refreshing bundles: > javax.mail/1.4.5 (Bundle will be updated) > org.eclipse.jetty.jndi/9.2.15.v20160210 (Wired to javax.mail/1.4.4 which > is being refreshed) > org.eclipse.jetty.plus/9.2.15.v20160210 (Wired to > org.eclipse.jetty.jndi/9.2.15.v20160210 which is being refreshed) > org.ops4j.pax.logging.pax-logging-service/1.8.5 (Wired to > javax.mail/1.4.4 which is being refreshed) > Starting bundles: > org.ops4j.pax.logging.pax-logging-service/1.8.5 > org.eclipse.jetty.jndi/9.2.15.v20160210 > org.eclipse.jetty.plus/9.2.15.v20160210 > javax.mail/1.4.5 > org.apache.camel.camel-http-common/2.16.3 > org.apache.camel.camel-jetty-common/2.16.3 > org.apache.camel.camel-jetty9/2.16.3 > Done. > karaf@root()> > {code} > The javax.mail is updated from 1.4.4 to 1.4.5 unexpectedly. > the camel-jetty9 feature: > {code} > <feature name='camel-jetty9' version='2.16.3' resolver='(obr)' > start-level='50'> > <details>camel-jetty9 intend to work with jetty9, so this feature only > works in the karaf container which support jetty9, e.g. karaf 4.x</details> > <feature>jetty</feature> > <feature version='2.16.3'>camel-core</feature> > <bundle>mvn:org.apache.camel/camel-http-common/2.16.3</bundle> > <bundle>mvn:org.apache.camel/camel-jetty-common/2.16.3</bundle> > <bundle>mvn:org.apache.camel/camel-jetty9/2.16.3</bundle> > </feature> > {code} > the jetty 8 feature: > {code} > <feature name="jetty" version="8.1.14.v20131031"> > <bundle start-level="30" > dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/2.7.0</bundle> > <bundle start-level="30" > dependency="true">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle> > <bundle start-level="30" > dependency="true">mvn:javax.mail/mail/1.4.5</bundle> > <bundle start-level="30" > dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle> > <bundle start-level="30" > dependency="true">mvn:org.apache.geronimo.specs/geronimo-annotation_1.1_spec/1.0.1</bundle> > <bundle start-level="30" > dependency="true">mvn:org.apache.geronimo.specs/geronimo-jaspic_1.0_spec/1.1</bundle> > <bundle > start-level="30">mvn:org.eclipse.jetty.aggregate/jetty-all-server/8.1.14.v20131031</bundle> > </feature> > {code} > Only the jetty/8.1.14.v20131031 feature has javax.mail/1.4.5 as dependency. > If I remove the jetty/8.1.14.v20131031 feature from the > standard-4.0.5-features.xml, or claim require jetty 9 explicitly ( > {code}<feature version='[9.2,10)'>jetty</feature>{code}), then the javax.mail > bundle never got updated to 1.4.5. -- This message was sent by Atlassian JIRA (v6.3.4#6332)