<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--

    Copyright 2021 OPS4J.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<features name="pax-jms-1.1.0" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">

    <repository>
        mvn:org.ops4j.pax.transx/pax-transx-features/0.5.0/xml/features
    </repository>

    <feature name="pax-jms-core" version="1.1.0">
        <details>Core dependencies for pax-jms features</details>

        <bundle dependency="true">mvn:javax.jms/javax.jms-api/2.0.1</bundle>
        <!-- it should be Karaf that installs "transaction-api" feature, that's why these bundles have dependency="true" -->
        <bundle dependency="true">mvn:javax.transaction/javax.transaction-api/1.2</bundle>
        <bundle dependency="true">mvn:javax.interceptor/javax.interceptor-api/1.2.2</bundle>
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/1_3</bundle>
        <bundle dependency="true">mvn:javax.el/javax.el-api/3.0.0</bundle>
        <bundle dependency="true">mvn:javax.enterprise/cdi-api/2.0.SP1</bundle>
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/1.9.3_1</bundle>
        <bundle>mvn:org.ops4j.pax.jms/pax-jms-api/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-config" version="1.1.0">
        <details>Configuration Admin based registration of ConnectionFactory factories</details>
        <feature>pax-jms-core</feature>

        <bundle>mvn:org.ops4j.pax.jms/pax-jms-config/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-activemq" version="1.1.0">
        <feature>pax-jms-core</feature>
        <feature>aries-blueprint</feature>

        <!-- javax.management.j2ee/javax.management.j2ee-api/1.1.2 has non-optional import of javax.ejb package -->
        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle>
        <bundle dependency="true">mvn:org.fusesource.hawtbuf/hawtbuf/1.11</bundle>
        <bundle dependency="true">mvn:org.apache.activemq/activemq-osgi/5.16.1</bundle>
        <bundle>mvn:org.ops4j.pax.jms/pax-jms-activemq/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-artemis" version="1.1.0">
        <feature>pax-jms-core</feature>
        <!-- features from mvn:org.apache.activemq/artemis-features/2.17.0/xml/features -->
        <!-- artemis-core-client: mvn:org.apache.activemq/artemis-core-client-osgi -->
        <feature dependency="true">artemis-core-client</feature>
        <!-- artemis-jms-client: mvn:org.apache.activemq/artemis-jms-client-osgi -->
        <feature dependency="true">artemis-jms-client</feature>
        <feature>artemis-amqp-client</feature>

        <bundle>mvn:org.ops4j.pax.jms/pax-jms-artemis/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-ibmmq" version="1.1.0">
        <details>Support for IBM MQ - requires IBM MQ drivers from https://developer.ibm.com/messaging/mq-downloads</details>
        <feature>pax-jms-core</feature>

        <bundle>mvn:org.ops4j.pax.jms/pax-jms-ibmmq/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-oracleaq" version="1.1.0">
        <details>Support for Oracle AQ - requires Oracle AQ and database drivers</details>
        <feature>pax-jms-core</feature>

        <bundle>mvn:org.ops4j.pax.jms/pax-jms-oracleaq/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-pool-pooledjms" version="1.1.0">
        <details>JMS connection/session pooling using org.messaginghub:pooled-jms library</details>
        <feature>pax-jms-core</feature>

        <bundle dependency="true">mvn:org.apache.commons/commons-pool2/2.9.0</bundle>
        <bundle dependency="true">mvn:org.messaginghub/pooled-jms/1.2.1</bundle>
        <bundle>mvn:org.ops4j.pax.jms/pax-jms-pool-pooledjms/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-pool-narayana" version="1.1.0">
        <details>JMS connection/session pooling using org.messaginghub:pooled-jms library and Narayana TX Manager Recovery service</details>
        <feature>pax-jms-core</feature>

        <bundle dependency="true">mvn:org.jboss.narayana.osgi/narayana-osgi-jta/5.10.6.Final</bundle>
        <bundle dependency="true">mvn:org.apache.commons/commons-pool2/2.9.0</bundle>
        <bundle dependency="true">mvn:org.messaginghub/pooled-jms/1.2.1</bundle>
        <bundle>mvn:org.ops4j.pax.jms/pax-jms-pool-narayana/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-pool-transx" version="1.1.0">
        <details>JMS connection/session pooling JCA based pax-transx-jms</details>
        <feature>pax-jms-core</feature>
        <feature>pax-transx-jms</feature>
        <feature>pax-transx-tm</feature>

        <bundle>mvn:org.ops4j.pax.jms/pax-jms-pool-transx/1.1.0</bundle>
    </feature>

    <feature name="pax-jms-pool" version="1.1.0">
        <details>Default JMS pool using org.messaginghub:pooled-jms library</details>
        <feature>pax-jms-pool-pooledjms</feature>
    </feature>

</features>
