In addition, dosgi-multi-bundle-distribution page[1] is also needed to be updated once 1.4 is released, because in 1.4's multi bundle distribution, the number of bundles has reached into 105 rather than 95.
[1]: http://cxf.apache.org/dosgi-multi-bundle-distribution.html Thanks --Tang Tang Yong wrote: > Deeply, > > Firstly, "Import-Package" section of cxf-api-2.7.1.jar's MANIFEST.MF > needs to be modified in order to use javax.xml.stream package from > org.apache.servicemix.specs.stax-api-1.0-2.1.0.jar rather than system > package, > > [Before modification] > Import-Package: ...,javax.xml.stream;version="[0.0,2)",... > > [After modification] > Import-Package: ...,javax.xml.stream;version="[1.0.1,2)",... > > Secondly, once finishing the above modification and re-launching felix > 4.0.3, another similar error happened: > > ERROR: Bundle org.apache.cxf.cxf-api [53] Error starting > file:/E:/gfv4/apachedcxf/distribution/multi-bundle/target/cxf-dosgi-ri-multibundle-distribution-1.4-SNAPSHOT-dir/apache-cxf-dosgi-ri-1.4-SNAPSHOT/dosgi_bundles/cxf-api-2.7.1.jar > (org.osgi.framework.BundleException: Uses constraint violation. Unable > to resolve bundle revision org.apache.cxf.cxf-api [53.0] because it is > exposed to package 'javax.xml.stream' from bundle revisions > org.apache.servicemix.specs.stax-api-1.0 [22.0] and > org.apache.felix.framework [0] via two dependency chains. > > Chain 1: > org.apache.cxf.cxf-api [53.0] > import: > (&(osgi.wiring.package=javax.xml.stream)(version>=1.0.1)(!(version>=2.0.0))) > | > export: osgi.wiring.package=javax.xml.stream > org.apache.servicemix.specs.stax-api-1.0 [22.0] > > Chain 2: > org.apache.cxf.cxf-api [53.0] > import: (osgi.wiring.package=javax.xml.transform.stax) > | > export: osgi.wiring.package=javax.xml.transform.stax; > uses:=javax.xml.stream > export: osgi.wiring.package=javax.xml.stream > org.apache.felix.framework [0]) > > For such a problem, I made a *temp* confirmation/fixing: modify > felix.jar/default.properties > > (Because I used jre 1.6) > [Before modification] > jre-1.6=, \ > ... > > javax.xml.transform.stax;uses:="javax.xml.stream,javax.xml.transform,javax.xml.stream.events";version="0.0.0.1_006_JavaSE", > \ > ... > > [After modification] > jre-1.6=, \ > ... > javax.xml.transform.stax;version="0.0.0.1_006_JavaSE", \ > ... > > Then, re-launching felix 4.0.3, anything is OK. > > A point to notice is that before felix 4.0.2, in the above > section(jre-xxx), javax.xml.transform.stax does not use "uses" clause. > > In addition, I think that we should tell user to add some contents into > conf/config.properties file of the Felix distribution(from 4.0.2) > rather than modifying felix.jar/default.properties because this is an > inner file. > > Please confirm what I said above, thanks. > > --Tang > > Tang Yong wrote: >> Hi Sergey, Christian >> >> About dcxf multi-bundle distro(my local 1.4 SnapShot) launching, I met a >> big problem as following, >> >> While launching multi-bundle distro(java -jar bin\felix.jar) using felix >> 4.0.3, the following exception happened on shell, >> >> ERROR: Bundle org.apache.cxf.cxf-api [53] Error starting >> file:/E:/gfv4/apachedcxf/distribution/multi-bundle/target/cxf-dosgi-ri-multibundle-distribution-1.4-SNAPSHOT-dir/apache-cxf-dosgi-ri-1.4-SNAPSHOT/dosgi_bundles/cxf-api-2.7.1.jar >> (org.osgi.framework.BundleException: Uses constraint violation. Unable >> to resolve bundle revision org.apache.cxf.cxf-api [53.0] because it is >> exposed to package 'javax.xml.stream' from bundle revisions >> org.apache.felix.framework [0] and >> org.apache.servicemix.specs.stax-api-1.0 [22.0] via two dependency chains. >> >> Chain 1: >> org.apache.cxf.cxf-api [53.0] >> import: >> (&(osgi.wiring.package=javax.xml.stream)(version>=0.0.0)(!(version>=2.0.0))) >> | >> export: osgi.wiring.package=javax.xml.stream >> org.apache.felix.framework [0] >> >> Chain 2: >> org.apache.cxf.cxf-api [53.0] >> import: (osgi.wiring.package=com.sun.xml.bind.api) >> | >> export: osgi.wiring.package=com.sun.xml.bind.api; uses:=javax.xml.stream >> org.apache.servicemix.bundles.jaxb-impl [34.0] >> import: >> (&(osgi.wiring.package=javax.xml.stream)(version>=1.0.0)(!(version>=2.0.0))) >> | >> export: osgi.wiring.package=javax.xml.stream >> org.apache.servicemix.specs.stax-api-1.0 [22.0]) >> >> 【My Analyse】 >> I made two confirmations : >> >> 1 there are two bundles which all exported javax.xml.stream, >> 1) felix.jar >> using org.osgi.framework.system.packages to export javax.xml.stream and >> not specifying concrete package version, so defaultly starting from 0.0 >> >> 2) org.apache.servicemix.specs.stax-api-1.0-2.1.0.jar >> explictly exporting javax.xml.stream and specifying package version >> (version="1.0.1") >> >> 2 cxf-api-2.7.1.jar imports javax.xml.stream;version="[0.0,2)", and 1) >> and 2) all meet the requirement, so conflict happened. >> >> In addition, cxf-api-2.7.1.jar is added into multi-bundle distro from >> 1.4, in 1.3 multi-bundle distro, the jar does not exist. >> >> So, please confirm whether having the same problem or not? If yes, I >> think that the issue should be fixed as soon as possiblie before >> releasing 1.4. >> >> Thanks >> --Tang >> > > > >
