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

    Copyright (c) 2013, 2018 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</groupId>
        <artifactId>project</artifactId>
        <version>2.32.0-SNAPSHOT</version>
    </parent>

    <artifactId>jersey-2136</artifactId>
    <packaging>war</packaging>
    <name>jersey-tests-integration-jersey-2136</name>

    <description>Servlet integration test - JERSEY-2136 - Jersey 2 doesn't work with Google Application Engine</description>

    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-api-1.0-sdk</artifactId>
            <version>${gae.version}</version>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.test-framework.providers</groupId>
            <artifactId>jersey-test-framework-provider-external</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>

            <!-- TODO: The test was skipped, including the hooked app-engine start && stop. The app-engine process was sometimes
            left hanging after the end of the build and kept blocking the port. -->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
            </plugin>
            <!--<plugin>-->
                <!--<groupId>com.google.appengine</groupId>-->
                <!--<artifactId>appengine-maven-plugin</artifactId>-->
                <!--<version>${gae.version}</version>-->
                <!--<configuration>-->

                    <!--<port>${jersey.config.test.container.port}</port>-->
                    <!--<offline>true</offline>-->
                <!--</configuration>-->
                <!--<executions>-->
                    <!--<execution>-->
                        <!--<id>start-gae</id>-->
                        <!--<phase>pre-integration-test</phase>-->
                        <!--<goals>-->
                            <!--<goal>devserver_start</goal>-->
                        <!--</goals>-->
                    <!--</execution>-->
                    <!--<execution>-->
                        <!--<id>stop-gae</id>-->
                        <!--<phase>post-integration-test</phase>-->
                        <!--<goals>-->
                            <!--<goal>devserver_stop</goal>-->
                        <!--</goals>-->
                    <!--</execution>-->
                <!--</executions>-->
            <!--</plugin>-->
        </plugins>
    </build>

</project>
