<?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.security.elytron-base">
    <properties>
        <!--
             Although this module is private see the module 'org.wildfly.security.elytron' for the re-exported public API.
         -->
        <property name="jboss.api" value="private"/>
    </properties>

    <exports>
        <exclude path="org/wildfly/security/_private"/>
        <exclude path="org/wildfly/security/manager/_private"/>
        <exclude path="org/wildfly/security/sasl/digest/_private"/>
        <exclude path="org/wildfly/security/util/_private"/>
    </exports>

    <resources>
        <artifact name="${org.wildfly.security:wildfly-elytron-asn1}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-audit}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-auth}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-auth-server}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-auth-server-deprecated}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-auth-server-http}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-auth-server-sasl}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-auth-util}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-base}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-client}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-credential}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-credential-source-impl}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-credential-store}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-digest}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-encryption}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-basic}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-bearer}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-cert}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-digest}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-external}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-form}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-spnego}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-sso}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-http-util}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-json-util}"/>
        <!-- <artifact name="${org.wildfly.security:wildfly-elytron-jwt}"/> To be added as independent module in WildFly -->
        <artifact name="${org.wildfly.security:wildfly-elytron-keystore}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-mechanism}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-mechanism-digest}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-mechanism-http}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-mechanism-gssapi}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-mechanism-oauth2}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-mechanism-scram}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-password-impl}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-permission}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-provider-util}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-realm}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-realm-jdbc}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-realm-ldap}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-realm-token}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-auth-util}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-anonymous}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-digest}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-entity}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-external}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-gs2}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-gssapi}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-localuser}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-oauth2}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-otp}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-plain}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-sasl-scram}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-security-manager}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-security-manager-action}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-ssl}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-ssh-util}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-util}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-x500}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-x500-cert}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-x500-cert-acme}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-x500-cert-util}"/>
        <artifact name="${org.wildfly.security:wildfly-elytron-x500-principal}"/>
    </resources>

    <dependencies>
        <module name="java.logging"/>
        <module name="java.naming"/>
        <module name="java.security.jgss"/>
        <module name="java.security.sasl"/>
        <module name="java.sql"/>
        <module name="java.xml"/>
        <module name="java.xml.crypto"/>
        <module name="jakarta.json.api"/>
        <module name="jdk.security.auth"/>
        <module name="jdk.unsupported"/>
        <module name="org.jboss.logging"/>
        <module name="org.jboss.logmanager"/>
        <module name="org.jboss.modules"/>
        <module name="org.jboss.threads"/>
        <module name="org.wildfly.common"/>
        <module name="jakarta.xml.ws.api" optional="true"/>
        <module name="org.jboss.ws.spi" optional="true"/>
        <module name="org.apache.sshd"/>
        <module name="org.jboss.resteasy.resteasy-jaxrs" optional="true"/>
        <!--
        This is only exported because some of the ElytronXmlParser methods throw an exception in this module. If other
        modules use the parser, they need to have visibility to this module.
        -->
        <module name="org.wildfly.client.config" export="true"/>
        <module name="org.wildfly.security.elytron-dynamic-ssl" export="true" optional="true"/>
    </dependencies>
</module>
