<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Copyright 2015 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">
    <modelVersion>4.0.0</modelVersion>

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

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

    <name>WildFly Elytron Web - Parent</name>
    <description>Integration project for integrating Elytron based HTTP authentication with web containers.</description>

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

    <properties>
        <version.io.undertow>2.2.18.Final</version.io.undertow>
        <version.org.wildfly.security.elytron>1.20.2.Final</version.org.wildfly.security.elytron>
        <version.org.wildfly.common>1.5.4.Final</version.org.wildfly.common>
        <version.org.apache.httpcomponents.httpclient>4.5.13</version.org.apache.httpcomponents.httpclient>
        <version.org.apache.httpcomponents.httpcore>4.4.15</version.org.apache.httpcomponents.httpcore>
        <version.org.jboss.logging>3.4.3.Final</version.org.jboss.logging>
        <version.org.jboss.logmanager>2.1.14.Final</version.org.jboss.logmanager>
        <version.org.jboss.logmanager.log4j-jboss>1.2.0.Final</version.org.jboss.logmanager.log4j-jboss>
        <version.org.jboss.modules>1.9.1.Final</version.org.jboss.modules>
        <version.org.jboss.xnio>3.8.7.Final</version.org.jboss.xnio>
        <version.junit.junit>4.11</version.junit.junit>
        <version.org.infinispan>9.4.24.Final</version.org.infinispan>
        <version.org.jboss.spec.jboss-json-api_1.0_spec>1.0.1.Final</version.org.jboss.spec.jboss-json-api_1.0_spec>
        <version.org.glassfish.javax.json>1.0.4</version.org.glassfish.javax.json>
        <version.com.nimbusds.nimbus-jose-jwt>8.2.1</version.com.nimbusds.nimbus-jose-jwt>
        <version.org.wildfly.checkstyle-config>1.0.8.Final</version.org.wildfly.checkstyle-config>
        <version.surefire.plugin>2.19.1</version.surefire.plugin>

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

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>

        <modular.jdk.args/>
        <modular.jdk.props/>
    </properties>

    <modules>
        <module>undertow</module>
        <module>undertow-common-test</module>
        <module>undertow-servlet</module>
    </modules>

    <build>
        <resources>
            <resource>
                <directory>${project.build.sourceDirectory}</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>
           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
        </plugins>

        <pluginManagement>
            <plugins>

                <!-- Surefire -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${version.surefire.plugin}</version>
                    <configuration>
                        <argLine>-server</argLine>
                        <systemPropertyVariables>
                            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                            <log4j.defaultInitOverride>true</log4j.defaultInitOverride>
                            <test.level>${test.level}</test.level>
                            <java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
                            <java.net.preferIPv6Addresses>false</java.net.preferIPv6Addresses>
                            <jgroups.bind_addr>127.0.0.1</jgroups.bind_addr>
                        </systemPropertyVariables>
                        <redirectTestOutputToFile>${maven.test.redirectTestOutputToFile}</redirectTestOutputToFile>
                        <trimStackTrace>false</trimStackTrace>
                        <printSummary>true</printSummary>
                        <includes>
                            <include>**/*Test.java</include>
                            <include>**/*TestSuite.java</include>
                        </includes>
                        <forkMode>always</forkMode>
                    </configuration>
                </plugin>

                <!-- JAR -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${version.jar.plugin}</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>org.wildfly.security._private.Main</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>

                <!-- Javadoc -->
                <plugin>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <doclet>net.gleamynode.apiviz.APIviz</doclet>
                        <docletArtifact>
                            <groupId>org.jboss.apiviz</groupId>
                            <artifactId>apiviz</artifactId>
                            <version>1.3.2.GA</version>
                        </docletArtifact>
                        <excludePackageNames>*._private</excludePackageNames>
                    </configuration>
                </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/>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.wildfly.checkstyle</groupId>
                            <artifactId>wildfly-checkstyle-config</artifactId>
                            <version>${version.org.wildfly.checkstyle-config}</version>
                        </dependency>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>${version.checkstyle}</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>
            <!-- 
                  Elytron Web Dependencies
             -->
             
            <dependency>
                <groupId>org.wildfly.security.elytron-web</groupId>
                <artifactId>undertow-server</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security.elytron-web</groupId>
                <artifactId>undertow-common-test</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security.elytron-web</groupId>
                <artifactId>undertow-servlet</artifactId>
                <version>${project.version}</version>
            </dependency>


             <!-- 
                  External Dependencies
              -->

            <dependency>
                <groupId>io.undertow</groupId>
                <artifactId>undertow-core</artifactId>
                <version>${version.io.undertow}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.xnio</groupId>
                        <artifactId>xnio-nio</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.undertow</groupId>
                <artifactId>undertow-servlet</artifactId>
                <version>${version.io.undertow}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
                <version>${version.org.jboss.logging}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.common</groupId>
                <artifactId>wildfly-common</artifactId>
                <version>${version.org.wildfly.common}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth-server</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth-server-deprecated</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-auth-server-http</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-base</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-credential</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-util</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-jaspi</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-ssl</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            
            <!--
                  Test Scope Only
             -->
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-realm</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-realm-token</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-deprecated</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-http-sso</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-password-impl</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-tests-common</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <type>test-jar</type>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-x500-deprecated</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${version.junit.junit}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${version.org.apache.httpcomponents.httpclient}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${version.org.apache.httpcomponents.httpcore}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.logmanager</groupId>
                <artifactId>jboss-logmanager</artifactId>
                <version>${version.org.jboss.logmanager}</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.modules</groupId>
                <artifactId>jboss-modules</artifactId>
                <version>${version.org.jboss.modules}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.xnio</groupId>
                <artifactId>xnio-api</artifactId>
                <version>${version.org.jboss.xnio}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.xnio</groupId>
                <artifactId>xnio-nio</artifactId>
                <version>${version.org.jboss.xnio}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-core</artifactId>
                <version>${version.org.infinispan}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.spec.javax.json</groupId>
                <artifactId>jboss-json-api_1.0_spec</artifactId>
                <version>${version.org.jboss.spec.jboss-json-api_1.0_spec}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>javax.json</artifactId>
                <version>${version.org.glassfish.javax.json}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.nimbusds</groupId>
                <artifactId>nimbus-jose-jwt</artifactId>
                <version>${version.com.nimbusds.nimbus-jose-jwt}</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>
