<?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>jersey-5796</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>helidon3-client</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>
