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

    Copyright (c) 2017, 2021 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<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>
    <groupId>org.glassfish.soteria.test</groupId>
    <artifactId>soteria</artifactId>
    <version>6.2.6-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Soteria ${project.version} Integration tests and examples</name>

    <properties>
        <glassfish.version>5.0</glassfish.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <modules>
        <module>common</module>
        <module>app-mem-basic</module>
        <module>app-custom</module>
        <module>app-custom-session</module>
        <module>app-custom-rememberme</module>
        <module>app-securitycontext-auth</module>
        <module>app-securitycontext-auth-ejb</module>
        <module>app-double-ham</module>
        <module>app-ham-ordering</module>
<!--        <module>app-db</module> -->
        <module>app-custom-identity-store-handler</module>
        <module>app-multiple-store</module>
        <module>app-multiple-store-backup</module>
        <module>app-no-role-mapping</module>
        <module>app-bundled-ham-basic-login-config-form</module>
        <module>app-caller-principal</module>
        <module>app-no-application-caller-principal</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.arquillian</groupId>
                <artifactId>arquillian-bom</artifactId>
                <version>1.3.0.Final</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
            <groupId>com.unboundid</groupId>
            <artifactId>unboundid-ldapsdk</artifactId>
            <version>4.0.4</version>
        </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.security.enterprise</groupId>
            <artifactId>javax.security.enterprise-api</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.soteria</groupId>
            <artifactId>javax.security.enterprise</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.arquillian.container</groupId>
            <artifactId>arquillian-glassfish-remote-3.1</artifactId>
            <version>1.0.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.ejte.ccl.reporter</groupId>
            <artifactId>SimpleReporterAdapter</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${APS_HOME}/lib/reporter.jar</systemPath>
        </dependency>
    </dependencies>

    <build>
        <plugins>
           <plugin>
              <artifactId>maven-failsafe-plugin</artifactId>
              <version>2.20</version>
              <executions>
                <execution>
                  <goals>
                    <goal>integration-test</goal>
                    <goal>verify</goal>
                  </goals>
                </execution>
              </executions>
              <configuration>
                <systemPropertyVariables>
                  <finalName>${project.build.finalName}</finalName>
                </systemPropertyVariables>
                <environmentVariables>
                  <GLASSFISH_HOME>${env.S1AS_HOME}/..</GLASSFISH_HOME>
                </environmentVariables>
              </configuration>
            </plugin>
        </plugins>
    </build>
</project>
