[ 
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)

Reply via email to