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

    Copyright (c) 2022, 2024 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.jersey.tests.integration.cdi</groupId>
        <artifactId>cdi-integration-project</artifactId>
        <version>2.44-SNAPSHOT</version>
    </parent>

    <artifactId>gf-cdi-inject-on-server</artifactId>
    <name>jersey-tests-glassfish-inject-on-server</name>

    <description>Embedded GF tests @Inject</description>

    <properties>
        <glassfish.home>${project.build.directory}/payara5</glassfish.home>
        <modules.dir>${glassfish.home}/glassfish/modules</modules.dir>
        <glassfish.container.version>${gf.impl.version}</glassfish.container.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>

<!--        <dependency> This does not work with GF 5.1 -->
<!--            <groupId>org.jboss.arquillian.container</groupId>-->
<!--            <artifactId>arquillian-glassfish-managed-3.1</artifactId>-->
<!--            <version>1.0.2</version>-->
<!--        </dependency>-->

        <dependency>
            <groupId>org.omnifaces.arquillian</groupId>
            <artifactId>arquillian-glassfish-server-managed</artifactId>
            <version>1.4</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.glassfish.main.common</groupId>
            <artifactId>simple-glassfish-api</artifactId>
            <version>${glassfish.container.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.arquillian.junit5</groupId>
            <artifactId>arquillian-junit5-container</artifactId>
            <version>1.8.0.Final</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>process-test-classes</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
<!--                                    <groupId>org.glassfish.main.distributions</groupId>-->
<!--                                    <artifactId>glassfish</artifactId>-->
                                    <groupId>fish.payara.distributions</groupId>
                                    <artifactId>payara</artifactId>
                                    <version>5.2022.5</version>
                                    <type>zip</type>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy</id>
                        <phase>process-test-classes</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext</groupId>
                                    <artifactId>jersey-bean-validation</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-bean-validation.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext.cdi</groupId>
                                    <artifactId>jersey-cdi1x</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-cdi1x.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext.cdi</groupId>
                                    <artifactId>jersey-cdi1x-servlet</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-cdi1x-servlet.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext.cdi</groupId>
                                    <artifactId>jersey-cdi1x-transaction</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-cdi1x-transaction.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext.cdi</groupId>
                                    <artifactId>jersey-cdi-rs-inject</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-cdi-rs-inject.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.core</groupId>
                                    <artifactId>jersey-client</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-client.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.core</groupId>
                                    <artifactId>jersey-common</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-common.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.containers</groupId>
                                    <artifactId>jersey-container-grizzly2-http</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-container-grizzly2-http.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.containers</groupId>
                                    <artifactId>jersey-container-servlet</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-container-servlet.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.containers</groupId>
                                    <artifactId>jersey-container-servlet-core</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-container-servlet-core.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext</groupId>
                                    <artifactId>jersey-entity-filtering</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-entity-filtering.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.containers.glassfish</groupId>
                                    <artifactId>jersey-gf-ejb</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-gf-ejb.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.inject</groupId>
                                    <artifactId>jersey-hk2</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-hk2.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.media</groupId>
                                    <artifactId>jersey-media-jaxb</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-media-jaxb.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.media</groupId>
                                    <artifactId>jersey-media-json-binding</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-media-json-binding.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.media</groupId>
                                    <artifactId>jersey-media-json-jackson</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-media-json-jackson.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.media</groupId>
                                    <artifactId>jersey-media-json-processing</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-media-json-processing.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.media</groupId>
                                    <artifactId>jersey-media-multipart</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-media-multipart.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.media</groupId>
                                    <artifactId>jersey-media-sse</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-media-sse.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext.microprofile</groupId>
                                    <artifactId>jersey-mp-rest-client</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-mp-rest-client.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext</groupId>
                                    <artifactId>jersey-mvc</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-mvc.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext</groupId>
                                    <artifactId>jersey-mvc-jsp</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-mvc-jsp.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.ext</groupId>
                                    <artifactId>jersey-proxy-client</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-proxy-client.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.glassfish.jersey.core</groupId>
                                    <artifactId>jersey-server</artifactId>
                                    <version>${jersey.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jersey-server.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>jakarta.ws.rs</groupId>
                                    <artifactId>jakarta.ws.rs-api</artifactId>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${glassfish.home}/glassfish/modules</outputDirectory>
                                    <destFileName>jakarta.ws.rs-api.jar</destFileName>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <includes>
                        <include>**/GFTest.java</include>
                    </includes>
                    <dependenciesToScan>org.glassfish.jersey.tests.integration.cdi:gf-cdi-inject-on-server</dependenciesToScan>
                    <systemPropertyVariables>
                        <glassfish.home>${glassfish.home}</glassfish.home>
                        <webServerPort>8080</webServerPort>
                        <junit.log.traceflag>true</junit.log.traceflag>
                    </systemPropertyVariables>
                    <environmentVariables>
                        <GLASSFISH_HOME>${glassfish.home}</GLASSFISH_HOME>
                    </environmentVariables>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>