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

    Copyright (c) 2011, 2025 Oracle and/or its affiliates. All rights reserved.
    Copyright (c) 2018 Payara Foundation 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</groupId>
        <artifactId>project</artifactId>
        <version>3.1.99-SNAPSHOT</version>
    </parent>

    <groupId>org.glassfish.jersey.tests.integration</groupId>
    <artifactId>project</artifactId>
    <packaging>pom</packaging>
    <name>jersey-tests-integration</name>

    <modules>
        <module>asm</module>
        <module>cdi-integration</module>
        <module>client-connector-provider</module>
        <module>ejb-multimodule</module>
        <module>ejb-multimodule-reload</module>
        <module>ejb-test-webapp</module>
        <module>j-376</module>
        <module>j-441</module>
        <module>j-59</module>
        <module>jackson-14</module>
        <module>jersey-2136</module>
        <module>jersey-2137</module>
        <module>jersey-2154</module>
        <module>jersey-2421</module>
        <module>jersey-2776</module>
        <module>jersey-3662</module>
        <module>jersey-3670</module>
        <module>jersey-3992</module>
        <module>jersey-4003</module>
        <module>jersey-4099</module>
        <module>jersey-4321</module>
        <module>jersey-4507</module>
        <module>jersey-4542</module>
        <module>jersey-4697</module>
        <module>jersey-4722</module>
        <module>jersey-5087</module>
        <module>microprofile</module>
        <module>property-check</module>
        <module>reactive-streams</module>
        <module>servlet-2.5-reload</module>
        <module>servlet-3-gf-async</module>
        <module>servlet-3-sse-1</module>
        <!--        <module>spring4</module>-->
        <!--        <module>spring5</module>-->
        <module>thin-server</module>
    </modules>

    <properties>
        <env>default</env>
        <jersey.config.test.container.port>9998</jersey.config.test.container.port>
        <jetty.log.file>${project.build.directory}/jetty-out.log</jetty.log.file>
    </properties>

    <profiles>
        <profile>
            <id>sonar</id>
            <build>
                <pluginManagement>
                    <plugins>
                        <!-- configure Jetty to run in a separated JVM in order to get proper coverage -->
                        <plugin>
                            <groupId>org.mortbay.jetty</groupId>
                            <artifactId>jetty-maven-plugin</artifactId>
                            <executions>
                                <execution>
                                    <id>start-jetty-forked</id>
                                    <phase>pre-integration-test</phase>
                                    <goals>
                                        <goal>run-forked</goal>
                                    </goals>
                                    <configuration>
                                        <contextPath>/</contextPath>
                                        <scanIntervalSeconds>0</scanIntervalSeconds>
                                        <waitForChild>false</waitForChild>
                                        <jvmArgs>${server.coverage.argline} -Djetty.port=${jersey.config.test.container.port}
                                            -Dorg.slf4j.simpleLogger.logFile=${jetty.log.file}
                                        </jvmArgs>
                                    </configuration>
                                </execution>
                                <execution>
                                    <id>start-jetty</id>
                                    <phase>none</phase>
                                </execution>
                            </executions>
                            <dependencies>
                                <dependency>
                                    <groupId>org.slf4j</groupId>
                                    <artifactId>slf4j-simple</artifactId>
                                    <version>1.7.5</version>
                                </dependency>
                            </dependencies>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>jdk17</id>
            <activation>
                <jdk>[17,)</jdk>
            </activation>
            <modules>
                <module>async-jersey-filter</module>
                <module>externalproperties</module>
                <module>jaxrs-component-inject</module>
                <module>jersey-780</module>
                <module>jersey-1107</module>
                <module>jersey-1223</module>
                <module>jersey-1604</module>
                <module>jersey-1667</module>
                <module>jersey-1883</module>
                <module>jersey-1928</module>
                <module>jersey-1960</module>
                <module>jersey-1964</module>
                <module>jersey-2031</module>
                <module>jersey-2160</module>
                <module>jersey-2164</module>
                <module>jersey-2167</module>
                <module>jersey-2176</module>
                <module>jersey-2184</module>
                <module>jersey-2255</module>
                <module>jersey-2322</module>
                <module>jersey-2335</module>
                <module>jersey-2551</module>
                <module>jersey-2612</module>
                <module>jersey-2637</module>
                <module>jersey-2654</module>
                <module>jersey-2673</module>
                <module>jersey-2689</module>
                <module>jersey-2704</module>
                <module>jersey-2794</module>
                <module>jersey-2846</module>
                <module>jersey-2878</module>
                <module>jersey-2892</module>
                <module>jersey-3796</module>
                <module>jersey-4949</module>
                <module>resteasy-client</module>
                <module>security-digest</module>
                <module>servlet-2.5-autodiscovery-1</module>
                <module>servlet-2.5-autodiscovery-2</module>
                <module>servlet-2.5-filter</module>
                <module>servlet-2.5-inflector-1</module>
                <module>servlet-2.5-init-1</module>
                <module>servlet-2.5-init-2</module>
                <module>servlet-2.5-init-3</module>
                <module>servlet-2.5-init-4</module>
                <module>servlet-2.5-init-5</module>
                <module>servlet-2.5-init-6</module>
                <module>servlet-2.5-init-7</module>
                <module>servlet-2.5-init-8</module>
                <module>servlet-2.5-mvc-1</module>
                <module>servlet-2.5-mvc-2</module>
                <module>servlet-2.5-mvc-3</module>
                <module>servlet-3-async</module>
                <module>servlet-3-chunked-io</module>
                <module>servlet-3-filter</module>
                <module>servlet-3-inflector-1</module>
                <module>servlet-3-init-1</module>
                <module>servlet-3-init-2</module>
                <module>servlet-3-init-3</module>
                <module>servlet-3-init-4</module>
                <module>servlet-3-init-5</module>
                <module>servlet-3-init-6</module>
                <module>servlet-3-init-7</module>
                <module>servlet-3-init-8</module>
                <module>servlet-3-init-9</module>
                <module>servlet-3-init-provider</module>
                <module>servlet-3-params</module>
                <module>servlet-4.0-mvc-1</module>
                <module>servlet-tests</module>
                <module>servlet-request-wrapper-binding</module>
                <module>servlet-request-wrapper-binding-2</module>
                <module>sonar-test</module>
                <module>spring6</module>
                <module>tracing-support</module>
            </modules>
        </profile>
    </profiles>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <configuration>
                        <skip>${skip.tests}</skip>
                        <scanIntervalSeconds>10</scanIntervalSeconds>
                        <stopPort>9999</stopPort>
                        <stopKey>STOP</stopKey>
                        <webApp>
                            <contextPath>/</contextPath>
                            <webInfIncludeJarPattern>.*/.*jersey-[^/]\.jar$</webInfIncludeJarPattern>
                        </webApp>
                        <connectors>
                            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                                <port>${jersey.config.test.container.port}</port>
                                <maxIdleTime>60000</maxIdleTime>
                            </connector>
                        </connectors>
                        <jvmArgs>${server.coverage.argline}</jvmArgs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>start-jetty</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>run</goal>
                            </goals>
                            <configuration>
                                <scanIntervalSeconds>0</scanIntervalSeconds>
                                <daemon>true</daemon>
                            </configuration>
                        </execution>
                        <execution>
                            <id>stop-jetty</id>
                            <phase>post-integration-test</phase>
                            <goals>
                                <goal>stop</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.jetty.ee9</groupId>
                    <artifactId>jetty-ee9-maven-plugin</artifactId>
                    <version>${jetty.plugin.version}</version>
                    <configuration>
                        <skip>${skip.tests}</skip>
                        <stopPort>9999</stopPort>
                        <stopKey>STOP</stopKey>
                        <stopWait>10</stopWait>
                        <webApp>
                            <contextPath>/</contextPath>
                            <webInfIncludeJarPattern>.*/.*jersey-[^/]\.jar$</webInfIncludeJarPattern>
                        </webApp>
                        <httpConnector>
                            <port>${jersey.config.test.container.port}</port>
                            <idleTimeout>60000</idleTimeout>
                        </httpConnector>
                    </configuration>
                    <executions>
                        <execution>
                            <id>start-jetty</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>start</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>stop-jetty</id>
                            <phase>post-integration-test</phase>
                            <goals>
                                <goal>stop</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.jetty.ee10</groupId>
                    <artifactId>jetty-ee10-maven-plugin</artifactId>
                    <version>${jetty.plugin.version}</version>
                    <configuration>
                        <skip>${skip.tests}</skip>
                        <stopPort>9999</stopPort>
                        <stopKey>STOP</stopKey>
                        <stopWait>10</stopWait>
                        <webApp>
                            <contextPath>/</contextPath>
                            <webInfIncludeJarPattern>.*/.*jersey-[^/]\.jar$</webInfIncludeJarPattern>
                        </webApp>
                        <httpConnector>
                            <port>${jersey.config.test.container.port}</port>
                            <idleTimeout>60000</idleTimeout>
                        </httpConnector>
                        <systemProperties>
                            <PORT>${jersey.config.test.container.port}</PORT>
                            <IDLE_TIMEOUT>60000</IDLE_TIMEOUT>
                        </systemProperties>
                    </configuration>
                    <executions>
                        <execution>
                            <id>start-jetty</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>start</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>stop-jetty</id>
                            <phase>post-integration-test</phase>
                            <goals>
                                <goal>stop</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <configuration>
                    <skip>false</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
