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

    Copyright (c) 2021, 2022 Contributors to the Eclipse Foundation. 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.tests.tck</groupId>
        <artifactId>tck</artifactId>
        <version>7.0.0-SNAPSHOT</version>
    </parent>

    <artifactId>tck-download</artifactId>
    <packaging>pom</packaging>

    <name>TCK: Download and Install Dependencies not in Maven Repos</name>

    <modules>
        <module>jakarta-rest-tck</module>
        <module>jakarta-faces-tck</module>
        <module>jakarta-authentication-tck</module>
        <module>jakarta-authorization-tck</module>
        <module>jakarta-expression-language-tck</module>
        <module>tsharness</module>
        <module>javatest</module>
    </modules>

    <build>
        <plugins>
            <!-- all artifacts under this module are duplicating other which are unavailable for
                Maven at this moment, so we make them available locally at least -->
            <plugin>
                <artifactId>maven-install-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-install</id>
                        <phase>disabled</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
