<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Copyright 2013 Red Hat, Inc., and individual contributors
  ~ as indicated by the @author tags.
  ~
  ~ 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.
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>35</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>org.wildfly.security</groupId>
    <artifactId>wildfly-elytron-parent</artifactId>
    <version>2.4.2.Final</version>
    <packaging>pom</packaging>

    <name>WildFly Elytron Parent</name>
    <description>WildFly Security</description>

    <issueManagement>
        <system>Jira</system>
        <url>https://issues.jboss.org/browse/ELY</url>
    </issueManagement>

    <licenses>
        <license>
            <name>Apache License 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <scm>
        <connection>scm:git:git@github.com:wildfly-security/wildfly-elytron.git</connection>
        <url>https://github.com/wildfly-security/wildfly-elytron</url>
    </scm>

    <properties>
        <jdk.min.version>11</jdk.min.version>
        <version.com.fasterxml.jackson>2.17.0</version.com.fasterxml.jackson>
        <version.com.fasterxml.jackson.databind>${version.com.fasterxml.jackson}</version.com.fasterxml.jackson.databind>
        <version.commons-cli>1.6.0</version.commons-cli>
        <version.jakarta.enterprise>4.0.1</version.jakarta.enterprise>
        <version.org.apache.commons>3.14.0</version.org.apache.commons>
        <version.org.apache.directory.server>2.0.0.AM27</version.org.apache.directory.server>
        <version.org.apache.directory.api>2.1.6</version.org.apache.directory.api>
        <version.org.apache.kerby>2.0.3</version.org.apache.kerby>
        <version.org.apache.directory.jdbm>2.0.0-M3</version.org.apache.directory.jdbm>
        <version.org.apache.directory.mavibot>1.0.0-M8</version.org.apache.directory.mavibot>
        <version.org.bouncycastle>1.67</version.org.bouncycastle>
        <version.org.apache.sshd.common>2.12.0</version.org.apache.sshd.common>
        <version.org.apache.httpcomponents.httpclient>4.5.14</version.org.apache.httpcomponents.httpclient>
        <version.org.apache.httpcomponents.httpcore>4.4.16</version.org.apache.httpcomponents.httpcore>
        <version.org.jboss.logging>3.5.3.Final</version.org.jboss.logging>
        <version.org.jboss.logmanager>2.1.19.Final</version.org.jboss.logmanager>
        <version.org.jboss.logmanager.log4j-jboss>1.1.6.Final</version.org.jboss.logmanager.log4j-jboss>
        <version.org.jboss.logging.tools>2.2.1.Final</version.org.jboss.logging.tools>
        <version.org.jboss.modules>1.12.2.Final</version.org.jboss.modules>
        <version.org.jboss.slf4j>1.2.0.Final</version.org.jboss.slf4j>
        <version.jakarta.json.jakarta-json-api>2.0.0</version.jakarta.json.jakarta-json-api>
        <version.jakarta.servlet.jakarta-servlet-api>5.0.0</version.jakarta.servlet.jakarta-servlet-api>
        <version.org.jboss.threads>3.5.1.Final</version.org.jboss.threads>
        <version.org.kohsuke.metainf-services.metainf-services>1.11</version.org.kohsuke.metainf-services.metainf-services>
        <version.junit.junit>4.13.1</version.junit.junit>
        <version.jmockit>1.34</version.jmockit>
        <version.hsqldb>2.7.1</version.hsqldb>
        <version.org.glassfish.jakarta.json>2.0.0</version.org.glassfish.jakarta.json>
        <version.net.minidev.json-smart>2.4.9</version.net.minidev.json-smart>
        <version.com.nimbusds.nimbus-jose-jwt>9.31</version.com.nimbusds.nimbus-jose-jwt>
        <version.com.squareup.okhttp3.mockwebserver>3.8.1</version.com.squareup.okhttp3.mockwebserver>
        <version.org.wildfly.checkstyle-config>1.0.8.Final</version.org.wildfly.checkstyle-config>
        <version.org.wildfly.client.config>1.0.1.Final</version.org.wildfly.client.config>
        <version.org.wildfly.common>1.6.0.Final</version.org.wildfly.common>
        <version.commons-io.commons-io>2.7</version.commons-io.commons-io>
        <version.org.mock-server.mockserver-netty>5.4.1</version.org.mock-server.mockserver-netty>
        <version.org.xipki.pki.ocsp-server>3.0.0</version.org.xipki.pki.ocsp-server>
        <version.org.bitbucket.b_c.jose4j>0.9.6</version.org.bitbucket.b_c.jose4j>
        <version.org.testcontainers.testcontainers>1.15.3</version.org.testcontainers.testcontainers>
        <version.org.keycloak>18.0.2</version.org.keycloak>
        <version.io.rest-assured>4.3.3</version.io.rest-assured>
        <version.net.sourceforge.htmlunit.htmlunit>2.40.0</version.net.sourceforge.htmlunit.htmlunit>
        <version.org.apache.santuario>2.3.0</version.org.apache.santuario>

        <test.level>INFO</test.level>
        <!-- Checkstyle configuration -->
        <linkXRef>false</linkXRef>

        <!-- Modularized JDK support (various workarounds) - activated via profile -->
        <modular.jdk.args/>
        <modular.jdk.props/>
    </properties>

    <build>
        <resources>
            <resource>
                <directory>${project.build.sourceDirectory}</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xsd</include>
                    <include>META-INF/LICENSE.txt</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>        
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0-jboss-1</version>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <release>8</release>
                            <buildDirectory>${project.build.directory}</buildDirectory>
                            <compileSourceRoots>${project.compileSourceRoots}</compileSourceRoots>
                            <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                            <additionalClasspathElements>
                                <additionalClasspathElement>${project.build.directory}/jdk-misc.jar</additionalClasspathElement>
                            </additionalClasspathElements>
                        </configuration>
                    </execution>
                </executions>
            </plugin>        
        
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <!-- This enables the resolution of ${groupId:artifactId} like props
                             to their real paths in the local Maven repository.
                             We use this to pass jmockit.jar as a javaagent in surefire's argLine -->
                        <id>getClasspathFilenames</id>
                        <goals>
                            <goal>properties</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>fetch-misc</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>get</goal>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifact>org.jboss:jdk-misc:2.Final</artifact>
                            <outputDirectory>${project.build.directory}</outputDirectory>
                            <stripVersion>true</stripVersion>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                    <trimStackTrace>false</trimStackTrace>
                    <forkCount>1</forkCount>
                    <reuseForks>false</reuseForks>
                    <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
                </configuration>
                <executions>
                    <execution>
                        <id>default-test</id>
                        <configuration>
                            <classesDirectory>${project.build.directory}/classes/META-INF/versions/9</classesDirectory>
                            <additionalClasspathElements>
                                <additionalClasspathElement>${project.build.directory}/classes</additionalClasspathElement>
                            </additionalClasspathElements>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            
            <plugin>
                <groupId>com.github.ferstl</groupId>
                <artifactId>depgraph-maven-plugin</artifactId>
                <version>3.2.2</version>
            </plugin>
            
        </plugins>

        <pluginManagement>
            <plugins>

                <!-- Surefire -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${version.surefire.plugin}</version>
                    <configuration>
                        <systemPropertyVariables>
                            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                            <log4j.defaultInitOverride>true</log4j.defaultInitOverride>
                            <test.level>${test.level}</test.level>
                        </systemPropertyVariables>
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <enableAssertions>true</enableAssertions>
                        <trimStackTrace>false</trimStackTrace>
                        <includes>
                            <include>**/*Test.java</include>
                            <include>**/*TestSuite.java</include>
                        </includes>
                        <childDelegation>true</childDelegation>
                        <reuseForks>false</reuseForks>
                        <argLine>-javaagent:${settings.localRepository}/org/jmockit/jmockit/${version.jmockit}/jmockit-${version.jmockit}.jar ${modular.jdk.args} ${modular.jdk.props}</argLine>
                        <!-- See also excludedGroups property in profiles -->
                    </configuration>
                </plugin>

                <!-- JAR -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${version.jar.plugin}</version>
                </plugin>

                <!-- Javadoc -->
                <plugin>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <notimestamp>true</notimestamp>
                        <doclint>none</doclint>
                        <show>protected</show>
                        <source>8</source> <!-- See https://bugs.openjdk.java.net/browse/JDK-8212233 -->
                        <sourcepath>
                            ${project.basedir}/asn1/src/main/java/;
                            ${project.basedir}/audit/src/main/java/;
                            ${project.basedir}/auth/base/src/main/java/;
                            ${project.basedir}/auth/client/src/main/java/;
                            ${project.basedir}/auth/realm/base/src/main/java/;
                            ${project.basedir}/auth/realm/jdbc/src/main/java/;
                            ${project.basedir}/auth/realm/ldap/src/main/java/;
                            ${project.basedir}/auth/realm/token/src/main/java/;
                            ${project.basedir}/auth/server/base/src/main/java/;
                            ${project.basedir}/auth/server/deprecated/src/main/java/;
                            ${project.basedir}/auth/server/http/src/main/java/;
                            ${project.basedir}/auth/server/sasl/src/main/java/;
                            ${project.basedir}/auth/util/src/main/java/;
                            ${project.basedir}/base/src/main/java/;
                            ${project.basedir}/credential/base/src/main/java/;
                            ${project.basedir}/credential/source/deprecated/src/main/java/;
                            ${project.basedir}/credential/store/src/main/java/;
                            ${project.basedir}/digest/src/main/java/;
                            ${project.basedir}/encryption/src/main/java/;
                            ${project.basedir}/http/base/src/main/java/;
                            ${project.basedir}/http/basic/src/main/java/;
                            ${project.basedir}/http/bearer/src/main/java/;
                            ${project.basedir}/http/cert/src/main/java/;
                            ${project.basedir}/http/deprecated/src/main/java/;
                            ${project.basedir}/http/digest/src/main/java/;
                            ${project.basedir}/http/external/src/main/java/;
                            ${project.basedir}/http/form/src/main/java/;
                            ${project.basedir}/http/spnego/src/main/java/;
                            ${project.basedir}/http/sso/src/main/java/;
                            ${project.basedir}/http/oidc/src/main/java/;
                            ${project.basedir}/http/util/src/main/java/;
                            ${project.basedir}/jose/jwk/src/main/java/;
                            ${project.basedir}/jose/util/src/main/java/;
                            ${project.basedir}/json-util/src/main/java/;
                            ${project.basedir}/keystore/src/main/java/;
                            ${project.basedir}/manager/action/src/main/java/;
                            ${project.basedir}/manager/base/src/main/java9/; <!--java9/ must be before java/-->
                            ${project.basedir}/manager/base/src/main/java/;
                            ${project.basedir}/mechanism/base/src/main/java/;
                            ${project.basedir}/mechanism/digest/src/main/java/;
                            ${project.basedir}/mechanism/gssapi/src/main/java/;
                            ${project.basedir}/mechanism/http/src/main/java/;
                            ${project.basedir}/mechanism/oauth2/src/main/java/;
                            ${project.basedir}/mechanism/scram/src/main/java/;
                            ${project.basedir}/password/impl/src/main/java/;
                            ${project.basedir}/permission/src/main/java/;
                            ${project.basedir}/sasl/anonymous/src/main/java/;
                            ${project.basedir}/sasl/auth/util/src/main/java/;
                            ${project.basedir}/sasl/base/src/main/java/;
                            ${project.basedir}/sasl/deprecated/src/main/java/;
                            ${project.basedir}/sasl/digest/src/main/java/;
                            ${project.basedir}/sasl/entity/src/main/java/;
                            ${project.basedir}/sasl/external/src/main/java/;
                            ${project.basedir}/sasl/gs2/src/main/java/;
                            ${project.basedir}/sasl/gssapi/src/main/java/;
                            ${project.basedir}/sasl/localuser/src/main/java/;
                            ${project.basedir}/sasl/oauth2/src/main/java/;
                            ${project.basedir}/sasl/otp/src/main/java/;
                            ${project.basedir}/sasl/plain/src/main/java/;
                            ${project.basedir}/sasl/scram/src/main/java/;
                            ${project.basedir}/ssl/src/main/java/;
                            ${project.basedir}/tests/base/src/main/java/;
                            ${project.basedir}/tests/common/src/main/java/;
                            ${project.basedir}/tool/src/main/java/;
                            ${project.basedir}/util/src/main/java/;
                            ${project.basedir}/x500/base/src/main/java/;
                            ${project.basedir}/x500/cert/acme/src/main/java/;
                            ${project.basedir}/x500/cert/base/src/main/java/;
                            ${project.basedir}/x500/cert/util/src/main/java/;
                            ${project.basedir}/x500/deprecated/src/main/java/;
                            ${project.basedir}/x500/principal/src/main/java/;
                        </sourcepath>
                        <sourceFileExcludes>
                            <exclude>org/wildfly/security/manager/JDKSpecific.java</exclude>
                        </sourceFileExcludes>
                    </configuration>
                    <executions>
                        <execution><!-- mvn javadoc:aggregate@api-javadoc -->
                            <id>api-javadoc</id>
                            <goals>
                                <goal>aggregate</goal>
                            </goals>
                            <configuration>
                                <destDir>api-javadoc</destDir>                                
                                <sourceFileIncludes>
                                    <include>org/wildfly/security/*.java</include>
                                    <include>org/wildfly/security/asn1/*.java</include>
                                    <include>org/wildfly/security/auth/*.java</include>
                                    <include>org/wildfly/security/auth/callback/*.java</include>
                                    <include>org/wildfly/security/auth/client/*.java</include>
                                    <include>org/wildfly/security/auth/permission/*.java</include>
                                    <include>org/wildfly/security/auth/principal/*.java</include>
                                    <include>org/wildfly/security/auth/server/*.java</include>
                                    <include>org/wildfly/security/auth/server/http/*.java</include>
                                    <include>org/wildfly/security/auth/server/sasl/*.java</include>
                                    <include>org/wildfly/security/auth/server/event/*.java</include>
                                    <include>org/wildfly/security/auth/util/*.java</include>
                                    <include>org/wildfly/security/authz/*.java</include>
                                    <include>org/wildfly/security/credential/*.java</include>
                                    <include>org/wildfly/security/credential/source/*.java</include>
                                    <include>org/wildfly/security/credential/store/*.java</include>
                                    <include>org/wildfly/security/evidence/*.java</include>
                                    <include>org/wildfly/security/http/*.java</include>
                                    <include>org/wildfly/security/key/*.java</include>
                                    <include>org/wildfly/security/manager/*.java</include>
                                    <include>org/wildfly/security/manager/_private/*.java</include>
                                    <include>org/wildfly/security/manager/action/*.java</include>
                                    <include>org/wildfly/security/mechanism/*.java</include>
                                    <include>org/wildfly/security/mechanism/gssapi/*.java</include>
                                    <include>org/wildfly/security/mechanism/_private/*.java</include>
                                    <include>org/wildfly/security/password/*.java</include>
                                    <include>org/wildfly/security/password/interfaces/*.java</include>
                                    <include>org/wildfly/security/password/spec/*.java</include>
                                    <include>org/wildfly/security/password/util/*.java</include>
                                    <include>org/wildfly/security/permission/*.java</include>
                                    <include>org/wildfly/security/sasl/util/*.java</include>
                                    <include>org/wildfly/security/sasl/auth/util/*.java</include>
                                    <include>org/wildfly/security/ssl/*.java</include>
                                    <include>org/wildfly/security/ssl/_private/*.java</include>
                                    <include>org/wildfly/security/ssl/*.java</include>
                                    <include>org/wildfly/security/x500/*.java</include>
                                    <include>org/wildfly/security/x500/cert/*.java</include>
                                    <include>org/wildfly/security/x500/principal/*.java</include>
                                </sourceFileIncludes>
                            </configuration>
                        </execution>
                        <execution><!-- mvn javadoc:aggregate@full-javadoc -->
                            <id>full-javadoc</id>
                            <goals>
                                <goal>aggregate</goal>
                            </goals>
                            <configuration>
                                <destDir>full-javadoc</destDir>
                                <show>private</show>
                                <sourceFileIncludes>
                                    <include>**\/\*.java</include>
                                </sourceFileIncludes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <!-- Checkstyle -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${version.checkstyle.plugin}</version>
                    <configuration>
                        <configLocation>wildfly-checkstyle/checkstyle.xml</configLocation>
                        <consoleOutput>true</consoleOutput>
                        <failsOnError>true</failsOnError>
                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        <useFile/>
                        <excludes>**/*$logger.java,**/*$bundle.java</excludes>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.wildfly.checkstyle</groupId>
                            <artifactId>wildfly-checkstyle-config</artifactId>
                            <version>${version.org.wildfly.checkstyle-config}</version>
                        </dependency>
                    </dependencies>
                    <executions>
                        <execution>
                            <id>check-style</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>checkstyle</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <dependencyManagement>
        <dependencies>
             <!--
                 Local Modules
            -->
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-asn1</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-audit</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth-server</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth-server-deprecated</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth-server-http</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth-server-sasl</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-base</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-credential</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-credential-store</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-credential-source-deprecated</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-credential-source-impl</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-digest</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-dynamic-ssl</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-encryption</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-basic</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-bearer</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-cert</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-deprecated</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-digest</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-external</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-form</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-oidc</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-spnego</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-stateful-basic</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-sso</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-json-util</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-jose-jwk</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-jose-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-keystore</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-mechanism</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-mechanism-http</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-mechanism-digest</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-mechanism-gssapi</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-mechanism-oauth2</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-mechanism-scram</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-password-impl</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-permission</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-provider-util</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-realm</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-realm-jdbc</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-realm-ldap</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-realm-token</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-anonymous</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-auth-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-deprecated</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-digest</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-entity</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-external</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-gs2</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-gssapi</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-localuser</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-oauth2</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-otp</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-plain</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-sasl-scram</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-security-manager</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-security-manager-action</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-ssl</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-ssh-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-tool</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-tests</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-tests-common</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-x500</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-x500-cert</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-x500-cert-acme</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-x500-cert-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-x500-deprecated</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-x500-principal</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!--
                 External Modules
            -->

            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${version.jakarta.enterprise}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${version.org.apache.commons}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.sshd</groupId>
                <artifactId>sshd-common</artifactId>
                <version>${version.org.apache.sshd.common}</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${version.commons-cli}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
                <version>${version.org.jboss.logging}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging-annotations</artifactId>
                <version>${version.org.jboss.logging.tools}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging-processor</artifactId>
                <version>${version.org.jboss.logging.tools}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.logmanager</groupId>
                <artifactId>jboss-logmanager</artifactId>
                <version>${version.org.jboss.logmanager}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.slf4j</groupId>
                <artifactId>slf4j-jboss-logmanager</artifactId>
                <version>${version.org.jboss.slf4j}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.modules</groupId>
                <artifactId>jboss-modules</artifactId>
                <version>${version.org.jboss.modules}</version>
                <scope>provided</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.kohsuke.metainf-services</groupId>
                <artifactId>metainf-services</artifactId>
                <version>${version.org.kohsuke.metainf-services.metainf-services}</version>
                <optional>true</optional>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.wildfly.client</groupId>
                <artifactId>wildfly-client-config</artifactId>
                <version>${version.org.wildfly.client.config}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.common</groupId>
                <artifactId>wildfly-common</artifactId>
                <version>${version.org.wildfly.common}</version>
                <!-- scope is compile ELY-1153 -->
            </dependency>

            <dependency>
                <groupId>jakarta.servlet</groupId>
                <artifactId>jakarta.servlet-api</artifactId>
                <version>${version.jakarta.servlet.jakarta-servlet-api}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>jakarta.json</groupId>
                <artifactId>jakarta.json-api</artifactId>
                <version>${version.jakarta.json.jakarta-json-api}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.jboss.threads</groupId>
                <artifactId>jboss-threads</artifactId>
                <version>${version.org.jboss.threads}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${version.org.apache.httpcomponents.httpclient}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpcore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-codec</groupId>
                        <artifactId>commons-codec</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${version.org.apache.httpcomponents.httpcore}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${version.com.fasterxml.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${version.com.fasterxml.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${version.com.fasterxml.jackson.databind}</version>
            </dependency>
            <dependency>
                <groupId>org.bitbucket.b_c</groupId>
                <artifactId>jose4j</artifactId>
                <version>${version.org.bitbucket.b_c.jose4j}</version>
            </dependency>

            <!--
                  Test Scope Only
             -->
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-asn1-api</artifactId>
                <version>${version.org.apache.directory.api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-asn1-ber</artifactId>
                <version>${version.org.apache.directory.api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-codec-core</artifactId>
                <version>${version.org.apache.directory.api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-codec-standalone</artifactId>
                <version>${version.org.apache.directory.api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-extras-codec-api</artifactId>
                <version>${version.org.apache.directory.api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-model</artifactId>
                <version>${version.org.apache.directory.api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.jdbm</groupId>
                <artifactId>apacheds-jdbm1</artifactId>
                <version>${version.org.apache.directory.jdbm}</version>
                <type>jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-core-api</artifactId>
                <version>${version.org.apache.directory.server}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-core-annotations</artifactId>
                <version>${version.org.apache.directory.server}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.directory.jdbm</groupId>
                        <artifactId>apacheds-jdbm1</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-interceptor-kerberos</artifactId>
                <version>${version.org.apache.directory.server}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-kerberos-codec</artifactId>
                <version>${version.org.apache.directory.server}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-protocol-ldap</artifactId>
                <version>${version.org.apache.directory.server}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.directory.jdbm</groupId>
                        <artifactId>apacheds-jdbm1</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcprov-jdk15on</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.mavibot</groupId>
                <artifactId>mavibot</artifactId>
                <version>${version.org.apache.directory.mavibot}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.kerby</groupId>
                <artifactId>kerb-simplekdc</artifactId>
                <version>${version.org.apache.kerby}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${version.commons-io.commons-io}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.jboss.logmanager</groupId>
                <artifactId>log4j-jboss-logmanager</artifactId>
                <version>${version.org.jboss.logmanager.log4j-jboss}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.xnio</groupId>
                <artifactId>xnio-api</artifactId>
                <version>3.8.8.Final</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${version.junit.junit}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jmockit</groupId>
                <artifactId>jmockit</artifactId>
                <version>${version.jmockit}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcmail-jdk15on</artifactId>
                <version>${version.org.bouncycastle}</version>
                <scope>test</scope>
            </dependency>

            <!-- HSQL Database-->
            <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>${version.hsqldb}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>jakarta.json</artifactId>
                <version>${version.org.glassfish.jakarta.json}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
                <version>${version.net.minidev.json-smart}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.nimbusds</groupId>
                <artifactId>nimbus-jose-jwt</artifactId>
                <version>${version.com.nimbusds.nimbus-jose-jwt}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>net.minidev</groupId>
                        <artifactId>json-smart</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Mock Web Server -->
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>mockwebserver</artifactId>
                <version>${version.com.squareup.okhttp3.mockwebserver}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.mock-server</groupId>
                <artifactId>mockserver-netty</artifactId>
                <version>${version.org.mock-server.mockserver-netty}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>rest-assured</artifactId>
                <version>${version.io.rest-assured}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers</artifactId>
                <version>${version.org.testcontainers.testcontainers}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.keycloak</groupId>
                <artifactId>keycloak-admin-client</artifactId>
                <version>${version.org.keycloak}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.keycloak</groupId>
                <artifactId>keycloak-core</artifactId>
                <version>${version.org.keycloak}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.sourceforge.htmlunit</groupId>
                <artifactId>htmlunit</artifactId>
                <version>${version.net.sourceforge.htmlunit.htmlunit}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpmime</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <profiles>
        <profile>
            <id>modularizedJdk</id>
            <activation>
                <jdk>[9,)</jdk>
            </activation>
            <properties>
                <!-- [WFCORE-1431] remove SASL workaround -->
                <modular.jdk.args>--add-modules java.sql --illegal-access=permit</modular.jdk.args>
                <!-- use version of jboss-logging that works much better with JDK9 -->
                <modular.jdk.props>-Djdk.attach.allowAttachSelf=true</modular.jdk.props>
                <!-- 2.20.x doesn't start on JDK10-->
                <version.surefire.plugin>2.19.1</version.surefire.plugin>
            </properties>
        </profile>

        <profile>
            <id>skip-default-tests</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-test</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>java8-test-profile</id>
            <activation>
                <property>
                    <name>java8.home</name>
                </property>
            </activation>
            <properties>
                <modular.jdk.args/>
                <modular.jdk.props/>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>java8-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <reportsDirectory>${project.build.directory}/surefire-reports/java8</reportsDirectory>
                                    <jvm>${java8.home}/bin/java</jvm>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>${java8.home}/lib/tools.jar</additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>java9-test-profile</id>
            <activation>
                <property>
                    <name>java9.home</name>
                </property>
            </activation>
            <properties>
                <modular.jdk.args/>
                <modular.jdk.props/>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>java9-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <reportsDirectory>${project.build.directory}/surefire-reports/java9</reportsDirectory>
                                    <jvm>${java9.home}/bin/java</jvm>
                                    <classesDirectory>${project.build.directory}/classes/META-INF/versions/9</classesDirectory>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>${project.build.outputDirectory}</additionalClasspathElement>
                                        <additionalClasspathElement>${java9.home}/lib/tools.jar</additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <repositories>
        <repository>
            <id>public-jboss</id>
            <name>Public JBoss Repository Group</name>
            <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>public-jboss-plugins</id>
            <name>Public JBoss Repository Group</name>
            <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
        </pluginRepository>
    </pluginRepositories>

    <modules>
        <module>asn1</module>
        <module>audit</module>
        <module>auth/base</module>
        <module>auth/realm/base</module>
        <module>auth/realm/jdbc</module>
        <module>auth/realm/ldap</module>
        <module>auth/realm/token</module>
        <module>auth/server/base</module>
        <module>auth/server/deprecated</module>
        <module>auth/server/http</module>
        <module>auth/server/sasl</module>
        <module>auth/util</module>
        <module>auth/client</module>
        <module>base</module>
        <module>credential/base</module>
        <module>credential/store</module>
        <module>credential/source/deprecated</module>
        <module>credential/source/impl</module>
        <module>digest</module>
        <module>encryption</module>
        <module>dynamic-ssl</module>
        <module>http/base</module>
        <module>http/basic</module>
        <module>http/bearer</module>
        <module>http/cert</module>
        <module>http/deprecated</module>
        <module>http/digest</module>
        <module>http/external</module>
        <module>http/form</module>
        <module>http/oidc</module>
        <module>http/spnego</module>
        <module>http/stateful-basic</module>
        <module>http/sso</module>
        <module>http/util</module>
        <module>jose/jwk</module>
        <module>jose/util</module>
        <module>json-util</module>
        <module>keystore</module>
        <module>manager/base</module>
        <module>manager/action</module>
        <module>mechanism/base</module>
        <module>mechanism/digest</module>
        <module>mechanism/gssapi</module>
        <module>mechanism/http</module>
        <module>mechanism/oauth2</module>
        <module>mechanism/scram</module>
        <module>password/impl</module>
        <module>permission</module>
        <module>provider/util</module>
        <module>sasl/anonymous</module>
        <module>sasl/auth/util</module>
        <module>sasl/base</module>
        <module>sasl/deprecated</module>
        <module>sasl/digest</module>
        <module>sasl/entity</module>
        <module>sasl/external</module>
        <module>sasl/gs2</module>
        <module>sasl/gssapi</module>
        <module>sasl/localuser</module>
        <module>sasl/oauth2</module>
        <module>sasl/otp</module>
        <module>sasl/plain</module>
        <module>sasl/scram</module>
        <module>ssl</module>
        <module>ssh/util</module>
        <module>tool</module>
        <module>util</module>
        <module>x500/base</module>
        <module>x500/cert/acme</module>
        <module>x500/cert/base</module>
        <module>x500/cert/util</module>
        <module>x500/deprecated</module>
        <module>x500/principal</module>
        <module>tests/base</module>
        <module>tests/common</module>
        <module>wildfly-elytron</module>
    </modules>
</project>
