No problem. Glad to help. Hopefully I saved you some of the time it took me! :-)
Sent from tablet device. Please excuse typos and brevity. On May 21, 2012 5:14 AM, "Andrew Thorburn" <[email protected]> wrote: > Thanks for that - I've managed to get something up and running now (it's > quite a major hack-job, but it works). Two things to note: I didn't need > the rmm jar, and I had to add "!oracle.jdbc.*" to the Import-Packages > statement, otherwise it went looking for some oracle.jdbc.xa stuff, which > I'm not using, and not even sure what it is or where the hell I would find > the JAR files. Also had to install the 'connector' feature for the > javax.resource package (amongst others). The only other issue was that I > didn't realise you had to set the packaging to 'bundle'. Oh, and I renamed > -osgi.bnd to osgi.bnd, but that's a minor thing. > > I also noticed that the MQ client came with a bunch of OSGi JARs, but they > didn't really work very well - would have required adding too much stuff > that SMX already provides (e.g. a lot of javax.* packages), so I was a bit > worried about what that might do. > > Now I just have to get it working with Ant or Gradle, since we're not a > Maven shop here... > > Many, many thanks, > > - Andrew Thorburn > > On Fri, May 18, 2012 at 1:16 PM, James Carman <[email protected] > >wrote: > > > We did have to add javax.resource in as a bundle, too with this set > > up. Hope this helps! > > > > On Thu, May 17, 2012 at 11:50 AM, James Carman > > <[email protected]> wrote: > > > We created our own bundle that included everything we needed for IBM > MQ: > > > > > > <properties> > > > <ibm.mq.version>7.1.0.0</ibm.mq.version> > > > </properties> > > > > > > <dependencies> > > > > > > <dependency> > > > <groupId>com.ibm.mq</groupId> > > > <artifactId>com.ibm.mq</artifactId> > > > <version>${ibm.mq.version}</version> > > > </dependency> > > > <dependency> > > > <groupId>com.ibm.mq</groupId> > > > <artifactId>com.ibm.mq.commonservices</artifactId> > > > <version>${ibm.mq.version}</version> > > > </dependency> > > > <dependency> > > > <groupId>com.ibm.mq</groupId> > > > <artifactId>com.ibm.mq.headers</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.mq</groupId> > > > <artifactId>com.ibm.mq.pcf</artifactId> > > > <version>${ibm.mq.version}</version> > > > </dependency> > > > <dependency> > > > <groupId>com.ibm.mq</groupId> > > > <artifactId>com.ibm.mqjms</artifactId> > > > <version>${ibm.mq.version}</version> > > > </dependency> > > > <dependency> > > > <groupId>com.ibm.mq</groupId> > > > <artifactId>dhbcore</artifactId> > > > <version>${ibm.mq.version}</version> > > > </dependency> > > > <dependency> > > > <groupId>com.ibm.mq</groupId> > > > <artifactId>rmm</artifactId> > > > <version>${ibm.mq.version}</version> > > > </dependency> > > > <dependency> > > > <groupId>com.ibm.mq</groupId> > > > <artifactId>cl3-export</artifactId> > > > <version>${ibm.mq.version}</version> > > > </dependency> > > > </dependencies> > > > > > > <build> > > > <plugins> > > > <!-- Plugins for creating bundles for WMQ libraries --> > > > <plugin> > > > <groupId>org.ops4j</groupId> > > > <artifactId>maven-pax-plugin</artifactId> > > > <version>1.5</version> > > > <extensions>true</extensions> > > > </plugin> > > > <plugin> > > > <groupId>org.apache.felix</groupId> > > > <artifactId>maven-bundle-plugin</artifactId> > > > <version>2.3.7</version> > > > <configuration> > > > <instructions> > > > > > > <Bundle-SymbolicName>ibm-wmq-bundle</Bundle-SymbolicName> > > > <Bundle-Version>7.1.0.0</Bundle-Version> > > > <!-- > > > | export wrapped contents: don't use > > > Export-Package:* as this bundles everything on the classpath > > > --> > > > <_exportcontents>*</_exportcontents> > > > <Private-Package>!*</Private-Package> > > > <!-- > > > | each module can override these defaults in > > > their osgi.bnd file > > > --> > > > <_include>-osgi.bnd</_include> > > > <Import-Package>!com.ibm.*,*</Import-Package> > > > <DynamicImport-Package>*</DynamicImport-Package> > > > </instructions> > > > </configuration> > > > </plugin> > > > </plugins> > > > </build> > > > > > > > > > The osgi.bnd file just contains: > > > > > > Embed-Dependency: *;scope=compile|runtime;type=!pom;inline=true > > > > > > So, you can actually do that in your pom. > > > > > > On Thu, May 17, 2012 at 6:52 AM, Andrew Thorburn <[email protected]> > > wrote: > > >> And a quick Google search turns up the following: > > >> > > > http://gnodet.blogspot.co.nz/2008/09/id-like-to-talk-bit-about-third-party.html > > >> > > >> That seems to apply to my situation, so presumably that's what I > should > > do, > > >> then? That is, one of: Include each JAR inside the component JAR, > > extract > > >> the classes from the MQ JARs and add them to the component JAR, or > > >> re-bundle the MQ JARs so that they're OSGi-compliant. > > >> > > >> Thanks, > > >> > > >> - Andrew > > >> > > >> On Thu, May 17, 2012 at 10:36 PM, Andrew Thorburn <[email protected]> > > wrote: > > >>> So, I would like to add some libraries to ServiceMix in order to have > > >>> a custom component make use of them. In particular, these are free > > >>> (but not open) Java MQI jars from IBM Websphere MQ. As far as I can > > >>> tell, they are not OSGi-ified, so do I need to - somehow - apply OSGi > > >>> to them to make my component see them in SMX? Or can I get away with > > >>> just making my component OSGi-ified? Alternatively, is there a way to > > >>> bundle them all up inside a single archive (like a WAR)? > > >>> > > >>> Unfortunately, my knowledge of OSGi is basically non-existent, so I'm > > >>> not sure what I should be doing here... > > >>> > > >>> - Andrew > > >
