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

<!--

    Copyright (c) 1997, 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>

    <parent>
        <groupId>org.glassfish.main</groupId>
        <artifactId>glassfish-parent</artifactId>
        <version>7.0.0-SNAPSHOT</version>
    </parent>

    <groupId>org.glassfish.main.tests</groupId>
    <artifactId>tests</artifactId>
    <packaging>pom</packaging>

    <name>GlassFish Tests</name>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.glassfish.copyright</groupId>
                    <artifactId>glassfish-copyright-maven-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <scm>git</scm>
                        <scmOnly>true</scmOnly>
                        <exclude combine.children="append">
                            <pattern>/build.properties</pattern>
                            <pattern>.token</pattern>
                            <pattern>/REAEME</pattern>
                            <pattern>.asadmin</pattern>
                            <pattern>.rar</pattern>
                            <pattern>.pub</pattern>
                            <pattern>.html</pattern>
                            <pattern>.shtml</pattern>
                            <pattern>.HTML</pattern>
                            <pattern>.xyz</pattern>
                            <pattern>/gating</pattern>
                            <pattern>.jsp</pattern>
                            <pattern>.css</pattern>
                            <pattern>.tag</pattern>
                            <pattern>.skip</pattern>
                            <pattern>.default</pattern>
                            <pattern>.ldif</pattern>
                            <pattern>/descriptor/web.xml</pattern>
                            <pattern>/jndi.properties.cosnaming</pattern>
                            <pattern>/jndi.properties.s1as8_default</pattern>
                            <pattern>.ini</pattern>
                            <pattern>.service</pattern>
                            <pattern>.Extension</pattern>
                            <pattern>appserv-tests/devtests/admin/cli/apps/MonApp/MonApp</pattern>
                            <pattern>/id_dsa</pattern>
                            <pattern>/pwdfile</pattern>
                            <pattern>appserv-tests/devtests/cluster/hosted-node</pattern>
                            <pattern>/ReadMe</pattern>
                            <pattern>v2-tests/</pattern>
                            <pattern>.model</pattern>
                            <pattern>/CVS/</pattern>
                            <pattern>.templat</pattern>
                            <pattern>appserv-tests/devtests/security/web-mutual-ssl/certificate/testca.rfc</pattern>
                            <pattern>appserv-tests/devtests/security/authConf/conffile/auth.conf</pattern>
                            <pattern>.policy</pattern>
                            <pattern>appserv-tests/devtests/admin/cli/mac</pattern>
                            <pattern>appserv-tests/devtests/admin/cli/resources/ssh/identity</pattern>
                            <pattern>appserv-tests/devtests/security/web-mutual-ssl/certificate/testcert1.p12</pattern>
                            <pattern>appserv-tests/devtests/web/servlet-3.0/servletContainerInitializerAddRestrictedServletContextListener/descriptor/services/jakarta.servlet.ServletContainerInitializer</pattern>
                            <pattern>appserv-tests/devtests/jdbc/JdbcCommon.properties</pattern>
                            <pattern>appserv-tests/devtests/connector/testdb</pattern>
                            <pattern>appserv-tests/devtests/connector/connector1.5/ra/src/${admin.password.file}</pattern>
                            <pattern>appserv-tests/devtests/connector/connector1.5/${admin.password.file}</pattern>
                            <pattern>appserv-tests/devtests/connector/connector1.5/app/src/${admin.password.file}</pattern>
                            <pattern>appserv-tests/devtests/connector/connector1.5/app/${admin.password.file}</pattern>
                        </exclude>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>admin</module>
                <module>appserv-tests</module>
            </modules>
        </profile>
        <profile>
            <id>oss-release</id>
            <modules />
        </profile>
        <profile>
            <id>fastest</id>
            <modules>
                <!-- Builds compile dependencies for Ant tests executed by runtest.sh/gftest.sh -->
                <module>appserv-tests</module>
            </modules>
        </profile>
        <profile>
            <id>tck</id>
            <modules>
                <module>admin</module>
                <module>appserv-tests</module>
                <module>tck</module>
            </modules>
        </profile>
    </profiles>
</project>
