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

    Copyright (c) 2011, 2020 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.0.0-RC1</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>j-376</module>
        <module>j-441</module>
        <module>j-59</module>
        <module>jaxrs-component-inject</module>
        <module>jersey-1107</module>
        <module>jersey-1223</module>
        <module>jersey-1604</module>
        <module>jersey-1667</module>
        <module>jersey-1829</module>
        <module>jersey-1883</module>
        <module>jersey-1928</module>
        <module>jersey-1960</module>
        <module>jersey-1964</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> Jakartification-->
        <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> Jakartification-->
<!--        <module>jersey-2689</module> Jakartification-->
        <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-3796</module>
        <module>jersey-780</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>microprofile</module>
        <module>security-digest</module>
        <module>servlet-2.5-autodiscovery-1</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-2</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-provider</module>
        <module>servlet-3-params</module>
        <module>servlet-3-sse-1</module>
        <module>servlet-request-wrapper-binding-2</module>
        <module>servlet-request-wrapper-binding</module>
        <module>sonar-test</module>
<!--        <module>spring4</module>-->
<!--        <module>spring5</module>-->
        <module>tracing-support</module>
        <module>reactive-streams</module>
    </modules>

    <profiles>
        <profile>
            <id>default</id>
            <properties>
                <env>default</env>
                <jersey.config.test.container.port>9998</jersey.config.test.container.port>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>sonar</id>
            <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>
            <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>Jetty11</id>
            <activation>
                <jdk>[11,)</jdk>
            </activation>
            <modules>
                <module>jersey-2031</module>
                <module>jetty-response-close</module>
                <module>property-check</module>
                <module>servlet-2.5-autodiscovery-2</module>
                <module>servlet-2.5-mvc-1</module>
                <module>servlet-2.5-mvc-3</module>
                <module>servlet-4.0-mvc-1</module>
                <module>servlet-tests</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</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>
                        <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>
