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

Reply via email to