Karaf 4.4.3 from a fresh install
Aries CDI 1.1.5

I am early in the process of getting an OpenWebBeans implementation of CDI 
working with war bundle.  Currently the feature osgi-cdi-owb is failing to 
install because of the error below:

 Uses constraint violation. Unable to resolve resource 
org.apache.aries.cdi.extension.servlet.owb 
[org.apache.aries.cdi.extension.servlet.owb [109](R 109.0)]
 because it is exposed to package 'javax.annotation' from resources 
org.apache.servicemix.specs.annotation-api-1.3 
[org.apache.servicemix.specs.annotation-api-1.3 [97](R 97.0)]
 and org.apache.felix.framework [org.apache.felix.framework [0](R 0)] via two 
dependency chains.

What is curious is that javax.annotation is v1.3.5 is replaced by version 1.3.0 
during the installation of feature osgi-cdi-owb even though v1.3.0 already 
exist in bundle #0 from org.apache.felix.framework.  

What am I doing wrong? 

***
* Commands to recreate
***
bin/karaf clean
feature:install pax-web-http
feature:install pax-web-war
feature:install pax-web-jsp
feature:repo-add mvn:org.apache.aries.cdi/aries-cdi-feature/1.1.5/xml/features
shell:echo "Before installing osgi-cdi-owb"
package:exports | grep javax.annotation
bundle:list -s -t 0 | grep annotation 
bundle:headers 73
feature:install osgi-cdi-owb
shell:echo "After installing osgi-cdi-owb"
package:exports | grep javax.annotation
bundle:list -s -t 0 | grep annotation 
bundle:headers 97
feature:install osgi-cdi-owb-web
bundle:install --start 
mvn:org.apache.aries.cdi/org.apache.aries.cdi.extension.servlet.common/1.1.5
bundle:install --start 
mvn:org.apache.aries.cdi/org.apache.aries.cdi.extension.servlet.owb/1.1.5

***
* Log of activity
***
paul@hummingbird apache-karaf-4.4.3 % bin/karaf clean
        __ __                  ____              / //_/____ __________ _/ __/   
          / ,<  / __ `/ ___/ __ `/ /_              / /| |/ /_/ / /  / /_/ / __/ 
            /_/ |_|\__,_/_/   \__,_/_/          
  Apache Karaf (4.4.3)

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown Karaf.

karaf@root()> feature:install pax-web-http                                      
                                                               
> feature:install pax-web-war
> feature:install pax-web-jsp
> feature:repo-add mvn:org.apache.aries.cdi/aries-cdi-feature/1.1.5/xml/features
> shell:echo "Before installing osgi-cdi-owb"
> package:exports | grep javax.annotation
> bundle:list -s -t 0 | grep annotation  > bundle:headers 73
> feature:install osgi-cdi-owb
> shell:echo "After installing osgi-cdi-owb"
> package:exports | grep javax.annotation
> bundle:list -s -t 0 | grep annotation  > bundle:headers 97
> feature:install osgi-cdi-owb-web
> bundle:install --start 
> mvn:org.apache.aries.cdi/org.apache.aries.cdi.extension.servlet.common/1.1.5
> bundle:install --start 
> mvn:org.apache.aries.cdi/org.apache.aries.cdi.extension.servlet.owb/1.1.5
>  Adding feature url 
> mvn:org.apache.aries.cdi/aries-cdi-feature/1.1.5/xml/features
Before installing osgi-cdi-owb
javax.annotation.processing                            │ 1.0.0       │ 0  │ 
org.apache.felix.framework
javax.annotation.security                              │ 1.3.5       │ 73 │ 
jakarta.annotation-api
javax.annotation.sql                                   │ 1.3.5       │ 73 │ 
jakarta.annotation-api
javax.annotation                                       │ 1.3.0       │ 0  │ 
org.apache.felix.framework
javax.annotation                                       │ 1.3.5       │ 73 │ 
jakarta.annotation-api
73 │ Active   │  30 │ 1.3.5                 │ jakarta.annotation-api

Jakarta Annotations API (73)
----------------------------
Automatic-Module-Name = java.annotation
Bnd-LastModified = 1564744140223
Build-Jdk = 1.8.0_202
Built-By = default
Created-By = Apache Maven Bundle Plugin
Extension-Name = jakarta.annotation
Implementation-Vendor = Eclipse Foundation
Implementation-Vendor-Id = org.glassfish
Implementation-Version = 1.3.5
Manifest-Version = 1.0
Specification-Vendor = Eclipse Foundation
Specification-Version = 1.3
Tool = Bnd-4.2.0.201903051501

Bundle-Description = Jakarta Annotations API
Bundle-DocURL = https://www.eclipse.org
Bundle-License = http://www.eclipse.org/legal/epl-2.0, 
https://www.gnu.org/software/classpath/license.html
Bundle-ManifestVersion = 2
Bundle-Name = Jakarta Annotations API
Bundle-SymbolicName = jakarta.annotation-api
Bundle-Vendor = Eclipse Foundation
Bundle-Version = 1.3.5

Require-Capability =  osgi.ee;filter:=(&(osgi.ee=JavaSE)(version=1.8))

Export-Package =  javax.annotation.security;version=1.3.5,
javax.annotation.sql;version=1.3.5,
javax.annotation;version=1.3.5


After installing osgi-cdi-owb
javax.annotation.processing                            │ 1.0.0       │ 0   │ 
org.apache.felix.framework
javax.annotation.security                              │ 1.3.0       │ 97  │ 
org.apache.servicemix.specs.annotation-api-1.3
javax.annotation.sql                                   │ 1.3.0       │ 97  │ 
org.apache.servicemix.specs.annotation-api-1.3
javax.annotation                                       │ 1.3.0       │ 0   │ 
org.apache.felix.framework
javax.annotation                                       │ 1.3.0       │ 97  │ 
org.apache.servicemix.specs.annotation-api-1.3
 97 │ Active   │  80 │ 1.3.0.3               │ 
org.apache.servicemix.specs.annotation-api-1.3

Apache ServiceMix :: Specs :: Annotation API 1.3 (97)
-----------------------------------------------------
Bnd-LastModified = 1584974695696
Build-Jdk = 1.8.0_172
Built-By = jbonofre
Created-By = Apache Maven Bundle Plugin
Implementation-Title = Apache ServiceMix
Implementation-Version = 1.3_3
Manifest-Version = 1.0
Tool = Bnd-3.4.0.201707252008

Bundle-Description = This pom provides project information that is common to 
all ServiceMix branches.
Bundle-DocURL = http://www.apache.org/
Bundle-License = http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-ManifestVersion = 2
Bundle-Name = Apache ServiceMix :: Specs :: Annotation API 1.3
Bundle-SymbolicName = org.apache.servicemix.specs.annotation-api-1.3
Bundle-Vendor = The Apache Software Foundation
Bundle-Version = 1.3.0.3

Provide-Capability =  osgi.contract;
uses:="javax.annotation.sql,
javax.annotation,
javax.annotation.security";
osgi.contract=JavaAnnotation;
version:List<Version>="1.3,1.2,1.1,1"
Require-Capability =  osgi.ee;filter:=(&(osgi.ee=JavaSE)(version=1.8))

Export-Package =  javax.annotation;version=1.3,
javax.annotation.security;version=1.3,
javax.annotation.sql;version=1.3


Bundle ID: 108
Bundle ID: 109
Error executing command: Error installing bundles:
Unable to start bundle 
mvn:org.apache.aries.cdi/org.apache.aries.cdi.extension.servlet.owb/1.1.5: 
org.osgi.framework.BundleException: Uses constraint violation. Unable to 
resolve resource org.apache.aries.cdi.extension.servlet.owb 
[org.apache.aries.cdi.extension.servlet.owb [109](R 109.0)] because it is 
exposed to package 'javax.annotation' from resources 
org.apache.servicemix.specs.annotation-api-1.3 
[org.apache.servicemix.specs.annotation-api-1.3 [97](R 97.0)] and 
org.apache.felix.framework [org.apache.felix.framework [0](R 0)] via two 
dependency chains.

Chain 1:
  org.apache.aries.cdi.extension.servlet.owb 
[org.apache.aries.cdi.extension.servlet.owb [109](R 109.0)]
    import: (osgi.wiring.package=javax.annotation)
     |
    export: osgi.wiring.package: javax.annotation
  org.apache.servicemix.specs.annotation-api-1.3 
[org.apache.servicemix.specs.annotation-api-1.3 [97](R 97.0)]

Chain 2:
  org.apache.aries.cdi.extension.servlet.owb 
[org.apache.aries.cdi.extension.servlet.owb [109](R 109.0)]
    import: 
(&(osgi.wiring.package=org.apache.webbeans.config)(version>=2.0.0)(!(version>=3.0.0)))
     |
    export: osgi.wiring.package=org.apache.webbeans.config; 
uses:=javax.annotation
  openwebbeans-impl [openwebbeans-impl [86](R 86.0)]
    import: 
(&(osgi.wiring.package=javax.annotation)(version>=1.2.0)(!(version>=2.0.0)))
     |
    export: osgi.wiring.package: javax.annotation
  org.apache.felix.framework [org.apache.felix.framework [0](R 0)] Unresolved 
requirements: [[org.apache.aries.cdi.extension.servlet.owb [109](R 109.0)] 
osgi.wiring.package; 
(&(osgi.wiring.package=org.apache.webbeans.config)(version>=2.0.0)(!(version>=3.0.0)))]
karaf@root()>  


Paul Spencer                                                                    
                                                           

Reply via email to