Search code examples
jbossapache-camelibm-mqjbossfuse

Unresolved constraint in bundle com.ibm.msg.client.osgi.commonservices.j2se missing requirement


I am migrating from Fuse 6.2.1 to 6.3-310, I am getting an osgi wiring package error. it looks like it is related to the IBM WMQ libraries, possible one of these bundles exports this javax.jms requirement. I have searched but cannot find, in hope that this has been discovered already. thank you in advance.

#JBOSS ENV INFO    
        JBossFuse:karaf@root> info
        Karaf
          Karaf version               2.4.0.redhat-630310
          Karaf home                  /app/instances/jboss-fuse-6.3.0.redhat-310
          Karaf base                  /app/instances/jboss-fuse-6.3.0.redhat-310
          OSGi Framework              org.apache.felix.framework - 4.4.1

        JVM
          Java Virtual Machine        Java HotSpot(TM) 64-Bit Server VM version 25.162-b12
          Version                     1.8.0_162
          Vendor                      Oracle Corporation
          Pid                         23619
          Uptime                      1 hour 44 minutes
          Total compile time          1 minute
        Threads
          Live threads                85
          Daemon threads              67
          Peak                        94
          Total started               214
        Memory
          Current heap size           93,729 kbytes
          Maximum heap size           932,352 kbytes
          Committed heap size         686,080 kbytes
          Pending objects             0
          Garbage collector           Name = 'PS Scavenge', Collections = 48, Time = 1.019 seconds
          Garbage collector           Name = 'PS MarkSweep', Collections = 4, Time = 1.140 seconds
        Classes
          Current classes loaded      10,801
          Total classes loaded        10,867
          Total classes unloaded      66
        Operating system
          Name                        Linux version 2.6.32-696.6.3.el6.x86_64
          Architecture                amd64
          Processors                  6
    #FUSE JMS BUNDLES
        JBossFuse:karaf@root> list -t 0 -s | grep jms
        [ 241] [Active     ] [Created     ] [       ] [   80] org.apache.karaf.jms.core (2.4.0.redhat-630310)
        [ 242] [Active     ] [            ] [       ] [   30] org.apache.servicemix.bundles.spring-jms (3.2.18.RELEASE_1)
        [ 243] [Active     ] [            ] [       ] [   50] org.apache.camel.camel-jms (2.17.0.redhat-630310)
        [ 244] [Active     ] [Created     ] [       ] [   80] org.apache.karaf.jms.command (2.4.0.redhat-630310)
#EXPORTS
        JBossFuse:karaf@root> exports | grep jms
            78 org.apache.cxf.binding.soap.jms.interceptor; version=3.1.5
           218 org.apache.activemq.jms.pool; version=5.11.0.redhat-630310
           218 org.apache.activemq.network.jms; version=5.11.0.redhat-630310
           241 org.apache.karaf.jms; version=2.4.0
           242 org.springframework.jms.core.support; version=3.2.18.RELEASE
           242 org.springframework.jms.connection; version=3.2.18.RELEASE
           242 org.springframework.jms.listener.adapter; version=3.2.18.RELEASE
           242 org.springframework.jms.support; version=3.2.18.RELEASE
           242 org.springframework.jms; version=3.2.18.RELEASE
           242 org.springframework.jms.core; version=3.2.18.RELEASE
           242 org.springframework.jms.config; version=3.2.18.RELEASE
           242 org.springframework.jms.support.converter; version=3.2.18.RELEASE
           242 org.springframework.jms.listener; version=3.2.18.RELEASE
           242 org.springframework.jms.listener.endpoint; version=3.2.18.RELEASE
           242 org.springframework.jms.support.destination; version=3.2.18.RELEASE
           242 org.springframework.jms.remoting; version=3.2.18.RELEASE
           243 org.apache.camel.component.jms; version=2.17.0.redhat-630310
           243 org.apache.camel.component.jms.reply; version=2.17.0.redhat-630310
           244 org.apache.karaf.jms.command; version=2.4.0.redhat-630310
           244 org.apache.karaf.jms.command.completers; version=2.4.0.redhat-630310
#IMPORTS
        JBossFuse:karaf@root> imports | grep jms
        JMS API (198): javax.jms; version=2.0.0
        JMS API (198): javax.jms; version=2.0.0
        JMS API (198): javax.jms; version=2.0.0
        JMS API (198): javax.jms; version=2.0.0
        JMS API (198): javax.jms; version=2.0.0
        Apache ServiceMix :: Bundles :: spring-jms (242): org.springframework.jms.connection; version=3.2.18.RELEASE
        Apache ServiceMix :: Bundles :: spring-jms (242): org.springframework.jms.support; version=3.2.18.RELEASE
        Apache ServiceMix :: Bundles :: spring-jms (242): org.springframework.jms; version=3.2.18.RELEASE
        Apache ServiceMix :: Bundles :: spring-jms (242): org.springframework.jms.core; version=3.2.18.RELEASE
        Apache ServiceMix :: Bundles :: spring-jms (242): org.springframework.jms.support.converter; version=3.2.18.RELEASE
        Apache ServiceMix :: Bundles :: spring-jms (242): org.springframework.jms.listener; version=3.2.18.RELEASE
        Apache ServiceMix :: Bundles :: spring-jms (242): org.springframework.jms.support.destination; version=3.2.18.RELEASE
        JMS API (198): javax.jms; version=2.0.0
        Apache Karaf :: JMS :: Core (241): org.apache.karaf.jms; version=2.4.0
        JMS API (198): javax.jms; version=2.0.0
        Apache ServiceMix :: Bundles :: spring-jms (242): org.springframework.jms.connection; version=3.2.18.RELEASE
        camel-jms (243): org.apache.camel.component.jms; version=2.17.0.redhat-630310
        JMS API (198): javax.jms; version=2.0.0
        camel-jms (243): org.apache.camel.component.jms; version=2.17.0.redhat-630310
#FEATURES FILE
        <?xml version="1.0" encoding="UTF-8"?>
        <features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
            <feature name="fadec-application" version="1.0.0" description="Delta FADEC Route and dependencies">
                <feature>camel-core</feature>
                <feature>camel-blueprint</feature>
                <feature>camel-csv</feature>
                <feature>camel-sql</feature>
                <feature>camel-velocity</feature>
                <feature>camel-xmlbeans</feature>

                <bundle start-level="60">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5</bundle>
                <bundle start-level="61">wrap:mvn:org.apache.poi/poi-ooxml-schemas/3.9$DynamicImport-package=*</bundle>
                <bundle start-level="65">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi/3.9_2</bundle>

                <bundle start-level="60">mvn:com.ibm.msg.client.osgi/commonservices-j2se/7.5.0.2</bundle>
                <bundle start-level="60">mvn:com.ibm.msg.client.osgi/nls/7.5.0.2</bundle>
                <bundle start-level="60">mvn:com.ibm.msg.client.osgi/jms-prereq/7.5.0.2</bundle>
                <bundle start-level="60">mvn:com.ibm.msg.client.osgi/jms/7.5.0.2</bundle>
                <bundle start-level="60">mvn:com.ibm.msg.client.osgi/wmq-nls/7.5.0.2</bundle>
                <bundle start-level="60">mvn:com.ibm.msg.client.osgi/wmq-prereq/7.5.0.2</bundle>
                <bundle start-level="60">mvn:com.ibm.msg.client.osgi/wmq/7.5.0.2</bundle>
                <bundle start-level="60">mvn:com.ibm.mq.osgi/directip/7.5.0.2</bundle>
                <bundle start-level="80">wrap:mvn:mysql/mysql-connector-java/5.1.45</bundle>
                <bundle start-level="84">wrap:mvn:com.mchange/mchange-commons-java/0.2.11</bundle>
                <bundle start-level="85">wrap:mvn:com.mchange/c3p0/0.9.5.2$Bundle-SymbolicName=c3p0-0.9.5.2&amp;Import-package=*;resolution:=optional;version=0</bundle>
                <bundle start-level="85">wrap:mvn:org.springframework/spring-jdbc/5.0.3.RELEASE$Import-package=com.mysql.jdbc;resolution:=optional;version=0,javax.sql;resolution:=optional;version=0,org.apache.commons.logging;resolution:=optional;version=0,org.springframework.util;resolution:=0;version=0</bundle>
                <bundle start-level="90">mvn:com.ge.ip.infra/delta-fadec-prod/3.0.1-SNAPSHOT</bundle>
            </feature>
        </features>

    # POM.XML
               <properties>

                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

                <compiler.source.version>1.8</compiler.source.version>
                <compiler.target.version>1.8</compiler.target.version>

                <!-- JBoss Fuse Properties -->
                <jboss.fuse.bom.version>6.3.0.redhat-310</jboss.fuse.bom.version>
                <jboss.fuse.install>6.3.0.redhat-310</jboss.fuse.install>

                <!-- Versions pulled from JBoss Fuse BOM for Dependency Management. -->
                <cxf-version>2.17.0.redhat-630310</cxf-version>
                <camel-version>2.17.0.redhat-630310</camel-version>
                <activemq-version>5.11.0.redhat-630310</activemq-version>
                <karaf-version>2.4.0.redhat-630310</karaf-version>
                <hawtio-version>1.4.0.redhat-630310</hawtio-version>
                <fabric-version>1.2.0.redhat-630310</fabric-version>
                <junit-version>4.11</junit-version>
                <log4j-version>1.2.17</log4j-version>
                <velocity-bundle-version>2.17.0.redhat-630310</velocity-bundle-version> 
                <velocity-version>2.17.0.redhat-630310</velocity-version>
                <joda-time-version>2.9.2</joda-time-version>

                <!-- Versions of 3rd Party Dependencies -->
                <!-- <ibm-mq-version>7.0.1.6</ibm-mq-version> -->
                <ibm-mq-version>7.5.0.2</ibm-mq-version>

                <!-- Test Dependencies -->
                <ftpserver-version>1.0.6</ftpserver-version>
                <sshd-version>0.10.0</sshd-version>
                <greenmail-version>1.4.0</greenmail-version>

                <!-- Plugin Versions-->
                <version.maven-compiler-plugin>2.5.1</version.maven-compiler-plugin>
                <bundle-plugin-version>2.3.7</bundle-plugin-version>
                <build-helper-plugin-version>1.8</build-helper-plugin-version>
                <resources-plugin-version>2.4.3</resources-plugin-version>
                <felix-bundle-plugin-version>2.3.7</felix-bundle-plugin-version>
                <lifecycle-mapping-version>1.0.0</lifecycle-mapping-version>
                <maven-failsafe-plugin-version>2.8.1</maven-failsafe-plugin-version>
                <depends-maven-plugin-version>1.2</depends-maven-plugin-version>

              </properties>

              <dependencyManagement>
              <dependencies>
                  <!-- Import Fuse Dependency Management via BOM -->
                  <dependency>
                    <groupId>org.jboss.fuse.bom</groupId>
                    <artifactId>jboss-fuse-parent</artifactId>
                    <version>${jboss.fuse.bom.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                  </dependency>

                  <!-- IBM MQ Dependencies -->
                  <dependency>
                    <groupId>com.ibm.mq</groupId>
                    <artifactId>com.ibm.mq.dhbcore</artifactId>
                    <version>${ibm-mq-version}</version>
                  </dependency>
                  <dependency>
                    <groupId>com.ibm.mq</groupId>
                    <artifactId>com.ibm.mq.jmqi</artifactId>
                    <version>${ibm-mq-version}</version>
                  </dependency>
                  <dependency>
                    <groupId>com.ibm</groupId>
                    <artifactId>com.ibm.mq</artifactId>
                    <version>${ibm-mq-version}</version>
                  </dependency>
                  <dependency>
                    <groupId>com.ibm</groupId>
                    <artifactId>com.ibm.mqjms</artifactId>
                    <version>${ibm-mq-version}</version>
                  </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jdbc</artifactId>
                    <version>5.0.3.RELEASE</version>
                </dependency> 
            <dependency>
              <groupId>com.mchange</groupId>
              <artifactId>c3p0</artifactId>
              <version>0.9.5.2</version>
            </dependency>


                  <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.45</version>
                  </dependency>

                  <dependency>
                    <groupId>joda-time</groupId>
                    <artifactId>joda-time</artifactId>
                    <version>${joda-time-version}</version>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.servicemix.bundles</groupId>
                    <artifactId>org.apache.servicemix.bundles.dom4j</artifactId>
                    <version>1.6.1_5</version>
                  </dependency>
                  <dependency>
                      <groupId>org.apache.servicemix.bundles</groupId>
                      <artifactId>org.apache.servicemix.bundles.poi</artifactId>
                      <version>3.9_2</version>
                  </dependency>
                  <dependency>
                      <groupId>org.apache.poi</groupId>
                      <artifactId>poi-ooxml-schemas</artifactId>
                      <version>3.9</version>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.poi</groupId>
                    <artifactId>poi-ooxml</artifactId>
                    <version>3.9</version>
                  </dependency>
                </dependencies>
              </dependencyManagement>

              <dependencies>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-core</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-blueprint</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-mail</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-ftp</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.activemq</groupId>
                    <artifactId>activemq-camel</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-jaxb</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-quartz</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-bindy</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                  </dependency>
            </dependencies>

              <build>
                <defaultGoal>install</defaultGoal>
                <plugins>
                  <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${version.maven-compiler-plugin}</version>
                    <configuration>
                      <source>${compiler.source.version}</source>
                      <target>${compiler.target.version}</target>
                    </configuration>
                  </plugin>
                </plugins>
              </build>

              <distributionManagement>
                <repository>
                  <id>com.ge.ip.snapshot.local</id>
                  <name>GE IP Releases</name>
                  <url>http://10.0.0.12:8082/nexus/content/repositories/releases</url>
                  <!-- <url>http://10.84.143.123:8082/nexus/content/repositories/releases</url> -->
                </repository>
                <snapshotRepository>
                  <id>com.ge.ip.snapshot.local</id>
                  <name>GE IP Snapshots</name>
                  <url>http://10.0.0.12:8082/nexus/content/repositories/snapshots</url>
                  <!-- <url>http://10.84.143.123:8082/nexus/content/repositories/snapshots</url> -->
                </snapshotRepository>
              </distributionManagement>

            </project>

Solution

  • On Fuse 6.2, the supplied JMS version was 1.1. This aligns with IBM MQ 7.5. On Fuse 6.3, the supplied JMS version is 2.0. This aligns with IBM MQ 8 and later.

    For IBM MQ 8, the com.ibm.mq.osgi.allclientprereqs_8.0.0.8.jar bundle supplies the JMS API. You need to remove the jms.jar file from the bundle and edit the MANIFEST.MF file and remove the exports for javax.jms.