You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Igor Raizin <ig...@gmail.com> on 2020/10/29 14:55:54 UTC

Karaf 4.1.4 race condition with javax.annotation and guava

Hello all,

Can you, please, advise how to resolve this kind of reca conditions during
the startup of the karaf?
We're using cxf 3.1.9 and guava 19.0, karaf 4.1.4, jdk8
CXF is installing the <bundle start-level="10">
mvn:javax.annotation/javax.annotation-api/1.2</bundle>
And guava 19.0 bundle headers are:

Export-Package =

com.google.common.net
;uses:="javax.annotation,com.google.common.base,com.google.common.hash,
com.google.common.io
,com.google.common.primitives,com.google.common.collect,com.google.common.escape";version=19.0.0,

com.google.common.html;uses:="com.google.common.escape,javax.annotation";version=19.0.0,

com.google.common.collect;uses:="com.google.common.base,javax.annotation,com.google.common.primitives,com.google.common.math";version=19.0.0,

com.google.common.primitives;uses:="javax.annotation,com.google.common.base,sun.misc";version=19.0.0,

com.google.common.base;uses:=javax.annotation;version=19.0.0,

com.google.common.escape;uses:="com.google.common.base,javax.annotation";version=19.0.0,

com.google.common.cache;uses:="com.google.common.collect,com.google.common.util.concurrent,javax.annotation,com.google.common.base,com.google.common.primitives,sun.misc";version=19.0.0,

com.google.common.eventbus;uses:="com.google.common.base,com.google.common.collect,com.google.common.util.concurrent,javax.annotation,com.google.common.cache,com.google.common.reflect";version=19.0.0,

com.google.common.util.concurrent;uses:="com.google.common.base,javax.annotation,sun.misc,com.google.common.collect,com.google.common.math,com.google.common.primitives";version=19.0.0,

com.google.common.hash;uses:="com.google.common.primitives,com.google.common.base,javax.annotation,com.google.common.math";version=19.0.0,

com.google.common.io
;uses:="javax.annotation,com.google.common.base,com.google.common.math,com.google.common.hash,com.google.common.collect,com.google.common.primitives";version=19.0.0,

com.google.common.xml;uses:="com.google.common.escape,javax.annotation";version=19.0.0,

com.google.common.reflect;uses:="javax.annotation,com.google.common.base,com.google.common.collect,com.google.common.primitives";version=19.0.0,

com.google.common.math;uses:="com.google.common.base,com.google.common.primitives,javax.annotation";version=19.0.0,

com.google.common.annotations;version=19.0.0

Import-Package =

javax.annotation;resolution:=optional,

sun.misc;resolution:=optional

*The error on feature install: *


*Chain 1:*  com.test.example.rest.core [com.test.example.rest.core [446](R
446.0)]
    import:
(&(osgi.wiring.package=javax.annotation)(version>=1.2.0)(!(version>=2.0.0)))
     |
    export: osgi.wiring.package: javax.annotation
  javax.annotation-api [javax.annotation-api [168](R 168.0)]

*Chain 2:*  com.test.example.rest.core [com.test.example.rest.core [446](R
446.0)]
    import:
(&(osgi.wiring.package=com.test.example.exec.api)(version>=7.0.0)(!(version>=8.0.0)))
     |
    export: osgi.wiring.package=com.test.example.exec.api;
uses:=com.test.example.context.api
  com.test.example.exec.api [com.test.example.exec.api [443](R 443.0)]
    import:
(&(osgi.wiring.package=com.test.example.context.api)(version>=7.0.0)(!(version>=8.0.0)))
     |
    export: osgi.wiring.package=com.test.example.context.api;
uses:=com.test.example.common.entity
  com.test.example.context.api [com.test.example.context.api [441](R 441.0)]
    import:
(&(osgi.wiring.package=com.test.example.common.entity)(version>=6.0.0)(!(version>=7.0.0)))
     |
    export: osgi.wiring.package=com.test.example.common.entity;
uses:=com.google.common.base
  com.test.example.common [com.test.example.common [398](R 398.0)]
    import:
(&(osgi.wiring.package=com.google.common.base)(version>=19.0.0)(!(version>=20.0.0)))
     |
    export: osgi.wiring.package=com.google.common.base;
uses:=javax.annotation
  com.google.guava [com.google.guava [157](R 157.0)]
    import: (osgi.wiring.package=javax.annotation)


Thanks for the help!

Regards,
Igor

Re: Karaf 4.1.4 race condition with javax.annotation and guava

Posted by Jean-Baptiste Onofre <jb...@nanthrax.net>.
Hi,

Your feature needs javax.annotation at two levels (for cxf and guava).

Did you try to create a "my-common" feature just containing guava and javax.anntotation as prerequisite ?

Regards
JB

> Le 29 oct. 2020 à 15:55, Igor Raizin <ig...@gmail.com> a écrit :
> 
> Hello all, 
> 
> Can you, please, advise how to resolve this kind of reca conditions during the startup of the karaf? 
> We're using cxf 3.1.9 and guava 19.0, karaf 4.1.4, jdk8
> CXF is installing the <bundle start-level="10">mvn:javax.annotation/javax.annotation-api/1.2</bundle>
> And guava 19.0 bundle headers are: 
> Export-Package = 
> 	com.google.common.net <http://com.google.common.net/>;uses:="javax.annotation,com.google.common.base,com.google.common.hash,com.google.common.io <http://com.google.common.io/>,com.google.common.primitives,com.google.common.collect,com.google.common.escape";version=19.0.0,
> 	com.google.common.html;uses:="com.google.common.escape,javax.annotation";version=19.0.0,
> 	com.google.common.collect;uses:="com.google.common.base,javax.annotation,com.google.common.primitives,com.google.common.math";version=19.0.0,
> 	com.google.common.primitives;uses:="javax.annotation,com.google.common.base,sun.misc";version=19.0.0,
> 	com.google.common.base;uses:=javax.annotation;version=19.0.0,
> 	com.google.common.escape;uses:="com.google.common.base,javax.annotation";version=19.0.0,
> 	com.google.common.cache;uses:="com.google.common.collect,com.google.common.util.concurrent,javax.annotation,com.google.common.base,com.google.common.primitives,sun.misc";version=19.0.0,
> 	com.google.common.eventbus;uses:="com.google.common.base,com.google.common.collect,com.google.common.util.concurrent,javax.annotation,com.google.common.cache,com.google.common.reflect";version=19.0.0,
> 	com.google.common.util.concurrent;uses:="com.google.common.base,javax.annotation,sun.misc,com.google.common.collect,com.google.common.math,com.google.common.primitives";version=19.0.0,
> 	com.google.common.hash;uses:="com.google.common.primitives,com.google.common.base,javax.annotation,com.google.common.math";version=19.0.0,
> 	com.google.common.io <http://com.google.common.io/>;uses:="javax.annotation,com.google.common.base,com.google.common.math,com.google.common.hash,com.google.common.collect,com.google.common.primitives";version=19.0.0,
> 	com.google.common.xml;uses:="com.google.common.escape,javax.annotation";version=19.0.0,
> 	com.google.common.reflect;uses:="javax.annotation,com.google.common.base,com.google.common.collect,com.google.common.primitives";version=19.0.0,
> 	com.google.common.math;uses:="com.google.common.base,com.google.common.primitives,javax.annotation";version=19.0.0,
> 	com.google.common.annotations;version=19.0.0
> Import-Package = 
> 	javax.annotation;resolution:=optional,
> 	sun.misc;resolution:=optional
> 
> The error on feature install: 
> 
> Chain 1:
>   com.test.example.rest.core [com.test.example.rest.core [446](R 446.0)]
>     import: (&(osgi.wiring.package=javax.annotation)(version>=1.2.0)(!(version>=2.0.0)))
>      |
>     export: osgi.wiring.package: javax.annotation
>   javax.annotation-api [javax.annotation-api [168](R 168.0)]
> Chain 2:
>   com.test.example.rest.core [com.test.example.rest.core [446](R 446.0)]
>     import: (&(osgi.wiring.package=com.test.example.exec.api)(version>=7.0.0)(!(version>=8.0.0)))
>      |
>     export: osgi.wiring.package=com.test.example.exec.api; uses:=com.test.example.context.api
>   com.test.example.exec.api [com.test.example.exec.api [443](R 443.0)]
>     import: (&(osgi.wiring.package=com.test.example.context.api)(version>=7.0.0)(!(version>=8.0.0)))
>      |
>     export: osgi.wiring.package=com.test.example.context.api; uses:=com.test.example.common.entity
>   com.test.example.context.api [com.test.example.context.api [441](R 441.0)]
>     import: (&(osgi.wiring.package=com.test.example.common.entity)(version>=6.0.0)(!(version>=7.0.0)))
>      |
>     export: osgi.wiring.package=com.test.example.common.entity; uses:=com.google.common.base
>   com.test.example.common [com.test.example.common [398](R 398.0)]
>     import: (&(osgi.wiring.package=com.google.common.base)(version>=19.0.0)(!(version>=20.0.0)))
>      |
>     export: osgi.wiring.package=com.google.common.base; uses:=javax.annotation
>   com.google.guava [com.google.guava [157](R 157.0)]
>     import: (osgi.wiring.package=javax.annotation)
> 
> 
> Thanks for the help! 
> 
> Regards,
> Igor