<?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.apache.activemq.artemis">

    <properties>
        <!--
            END USER MODULE USAGE: Subsystem configuration plug points

            End users may depend on this module for access to APIs needed to
            implement custom plug points exposed by a subsystem's supported
            management API (in this case the messaging-activemq subsystem).
            Typically such plug points involve classname and module name
            configuration attribute pairs where the end user specifies a module and
            class that they provide to implement an API provided by the subsystem.

            Such APIs and the name of this module are stable API. All other resources
            exposed by this module are subject to change or removal at any time.

            This module should not be directly depended upon by deployments.
            You should use the "org.apache.activemq.artemis.client" instead.
        -->
        <property name="jboss.api" value="private"/>
    </properties>

    <resources>
        <artifact name="${org.apache.activemq:artemis-server}"/>
        <artifact name="${org.apache.activemq:artemis-cli}"/>
        <artifact name="${org.apache.activemq:artemis-dto}"/>
        <artifact name="${org.apache.activemq:artemis-jdbc-store}"/>
        <artifact name="${org.apache.activemq:artemis-jakarta-server}"/>
    </resources>

    <dependencies>
        <module name="java.desktop"/>
        <module name="java.management"/>
        <module name="java.management.rmi"/>
        <module name="java.naming"/>
        <module name="java.rmi"/>
        <module name="java.security.jgss"/>
        <module name="java.sql"/>
        <module name="java.transaction.xa"/>
        <module name="java.xml"/>
        <module name="jakarta.resource.api"/>
        <module name="jakarta.transaction.api"/>
        <module name="jakarta.jms.api" />
        <module name="com.github.ben-manes.caffeine" />
        <module name="com.google.guava"/>
        <module name="internal.javax.json.api.ee8" services="import"/>
        <module name="org.apache.commons.beanutils" />
        <module name="org.apache.commons.collections" />
        <module name="org.apache.commons.lang3" />
        <module name="org.apache.activemq.artemis.commons" services="import" export="true"/>
        <module name="org.apache.activemq.artemis.client" services="import"/>
        <module name="org.apache.activemq.artemis.service-extensions" services="import" />
        <module name="org.apache.activemq.artemis.journal" export="true"/>
        <module name="org.jboss.jts"/>
        <module name="org.jctools"/>
        <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="org.slf4j"/>
        <!-- WFLY-5213 Optional dependency to use the org.apache.activemq.artemis as a naming's external-context module -->
        <module name="org.jboss.invocation" optional="true"/>
        <module name="org.jboss.jboss-transaction-spi"/>
        <!--this reverse dependency is here so integration classes in the AS code base can be instantiated by Artemis-->
        <module name="org.wildfly.extension.messaging-activemq" services="import"/>
        <!-- this optional dependency is required to be able to use this module from a jms-bridge to connect to a remote
             WildFly server [AS7-6549] -->
        <module name="org.wildfly.naming-client" optional="true"  services="import"/>
        <!-- supported protocols (in addition to the CORE protocol) -->
        <module name="org.apache.activemq.artemis.protocol.amqp" services="import" optional="true"/>
        <module name="org.apache.activemq.artemis.protocol.hornetq" services="import" optional="true"/>
        <module name="org.apache.activemq.artemis.protocol.stomp" services="import" optional="true"/>
    </dependencies>
</module>
