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

<!--
  ~ Copyright The WildFly Authors
  ~ SPDX-License-Identifier: Apache-2.0
  -->

<module xmlns="urn:jboss:module:1.9" name="org.wildfly.extension.messaging-activemq">

    <properties>
        <property name="jboss.api" value="private"/>
    </properties>

    <resources>
        <artifact name="${org.wildfly:wildfly-messaging-activemq-subsystem}"/>
        <artifact name="${org.jboss.activemq.artemis.integration:artemis-wildfly-integration}"/>
    </resources>

     <provides>
        <service name="org.apache.activemq.artemis.spi.core.remoting.ssl.SSLContextFactory">
          <with-class name="org.jboss.activemq.artemis.wildfly.integration.WildFlySSLContextFactory"/>
        </service>
    </provides>

    <dependencies>
        <module name="org.wildfly.extension.messaging-activemq.injection"/>
        <module name="java.logging"/>
        <module name="java.management"/>
        <module name="java.naming"/>
        <module name="java.sql"/>
        <module name="java.transaction.xa"/>
        <module name="java.xml"/>

        <!-- io.undertow.core is required only if http-acceptor are used -->
        <module name="io.undertow.core" optional="true" />
        <!--<module name="io.netty"/>-->
        <module name="io.netty.netty-buffer"/>
        <module name="io.netty.netty-transport"/>
        <module name="io.netty.netty-handler"/>
        <module name="io.netty.netty-handler-proxy"/>
        <module name="io.netty.netty-codec"/>
        <module name="io.netty.netty-codec-socks"/>
        <module name="io.netty.netty-common"/>
        <module name="io.netty.netty-resolver"/>
        <module name="io.netty.netty-transport-native-epoll"/>
        <module name="io.netty.netty-transport-native-kqueue"/>
        <module name="io.netty.netty-codec-http"/>
        <module name="jakarta.enterprise.api"/>
        <module name="jakarta.jms.api"/>
        <module name="jakarta.json.api"/>
        <module name="jakarta.resource.api"/>
        <module name="jakarta.transaction.api"/>
        <module name="org.apache.activemq.artemis" services="import" optional="true"/>
        <module name="org.apache.activemq.artemis.client" services="import" export="true"/>
        <module name="org.apache.activemq.artemis.ra" export="true"/>
        <module name="org.jboss.common-beans"/>
        <module name="org.jboss.staxmapper"/>
        <!-- required to provide high-level Jakarta Messaging CLI commands loaded by the extension -->
        <module name="org.jboss.as.cli" optional="true"/>
        <module name="org.jboss.as.controller"/>
        <module name="org.jboss.as.ee"/>
        <module name="org.jboss.as.naming"/>
        <module name="org.jboss.as.network"/>
        <module name="org.wildfly.security.elytron-private"/>
        <module name="org.wildfly.common"/>
        <module name="org.jboss.as.server"/>
        <!-- Only used if capability org.wildfly.weld is available -->
        <module name="org.jboss.as.weld.common" optional="true"/>
        <module name="io.smallrye.jandex"/>
        <module name="org.jboss.metadata.common"/>
        <module name="org.jboss.modules"/>
        <module name="org.jboss.msc"/>
        <module name="org.jboss.logging"/>
        <module name="org.jboss.ironjacamar.impl"/>
        <module name="org.jboss.ironjacamar.api"/>
        <module name="org.jboss.as.connector"/>
        <module name="org.jboss.vfs"/>
        <module name="org.jboss.jts"/>
        <module name="org.jboss.jboss-transaction-spi"/>
        <module name="org.wildfly.naming-client" services="import"/>
        <module name="org.jboss.threads"/>
        <module name="org.jboss.weld.core"/>
        <!-- org.jboss.xnio is required only if http-acceptor are used -->
        <module name="org.jboss.xnio" optional="true"/>
        <!-- org.jboss.xnio.netty.netty-xnio-transport is required only if http-acceptor are used -->
        <module name="org.jboss.xnio.netty.netty-xnio-transport" optional="true"/>
        <module name="org.wildfly.clustering.marshalling.jboss"/>
        <module name="org.wildfly.clustering.server.api"/>
        <module name="org.wildfly.clustering.server.service"/>
        <module name="org.wildfly.clustering.server.spi"/>
        <module name="org.wildfly.service"/>
        <module name="org.wildfly.subsystem"/>
        <module name="org.wildfly.transaction.client"/>
        <!-- Use the HornetQ client module to create the legacy connection factory and destination resources -->
        <module name="org.hornetq.client" optional="true"/>
        <module name="org.slf4j"/>
    </dependencies>
</module>
