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


Reply via email to