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

    Copyright (c) 2011, 2022 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.0-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>async-jersey-filter</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>externalproperties</module>
        <module>jaxrs-component-inject</module>
        <module>j-376</module>
        <module>j-441</module>
        <module>j-59</module>
        <module>jersey-780</module>
        <module>jersey-1107</module>
        <module>jersey-1223</module>
        <module>jersey-1604</module>
        <module>jersey-1667</module>
        <!--                <module>jersey-1829</module> Jakartification-->
        <module>jersey-1883</module>
        <module>jersey-1928</module>
        <module>jersey-1960</module>
        <module>jersey-1964</module>
        <module>jersey-2031</module>
        <module>jersey-2136</module>
        <module>jersey-2137</module>
        <module>jersey-2154</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-2421</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-2776</module>
        <module>jersey-2794</module>
        <module>jersey-2846</module>
        <module>jersey-2878</module>
        <module>jersey-2892</module>
        <module>jersey-3662</module>
        <module>jersey-3670</module>
        <module>jersey-3796</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-4949</module>
        <module>microprofile</module>
        <module>property-check</module>
        <module>reactive-streams</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-2.5-reload</module>
        <module>servlet-3-async</module>
        <module>servlet-3-chunked-io</module>
        <module>servlet-3-filter</module>
        <module>servlet-3-gf-async</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-3-sse-1</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>spring4</module>-->
        <!--        <module>spring5</module>-->
        <module>sonar-test</module>
        <module>thin-server</module>
        <module>tracing-support</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>
    </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</groupId>
                    <artifactId>jetty-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>
                            <configuration>
                                <scanIntervalSeconds>0</scanIntervalSeconds>
                            </configuration>
                        </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>
