<?xml version="1.0" encoding="UTF-8"?>
<!-- 
// ========================================================================
// Copyright (c) Webtide LLC
// 
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at 
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.apache.org/licenses/LICENSE-2.0.txt
//
// You may elect to redistribute this code under either of these licenses. 
// ========================================================================
 -->
<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/maven-v4_0_0.xsd">
  <parent>
    <groupId>org.eclipse.jetty.tests</groupId>
    <artifactId>test-jmx-parent</artifactId>
    <version>9.3.3.v20150827</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>jmx-webapp-it</artifactId>
  <packaging>jar</packaging>
  <name>Jetty Tests :: JMX :: WebApp Integration Tests</name>
  <url>http://www.eclipse.org/jetty</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <bundle-symbolic-name>${project.groupId}.jmx.webapp.it</bundle-symbolic-name>
    <scripts-dir>${project.basedir}/src/test/scripts</scripts-dir>
    <test-base-dir>${project.build.directory}/test-base</test-base-dir>
    <test-home-dir>${project.build.directory}/test-home</test-home-dir>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-distribution</artifactId>
      <version>${project.version}</version>
      <type>zip</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.tests</groupId>
      <artifactId>jmx-webapp</artifactId>
      <version>${project.version}</version>
      <type>war</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.toolchain</groupId>
      <artifactId>jetty-test-helper</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-apps-for-testing</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <includeArtifactIds>jmx-webapp</includeArtifactIds>
              <includeScope>runtime</includeScope>
              <includeTypes>war</includeTypes>
              <overwriteSnapshots>true</overwriteSnapshots>
              <overwriteReleases>true</overwriteReleases>
              <stripVersion>true</stripVersion>
              <outputDirectory>${test-base-dir}/webapps</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>unpack-jetty-distro</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
              <includeArtifactIds>jetty-distribution</includeArtifactIds>
              <includeScope>runtime</includeScope>
              <includeTypes>zip</includeTypes>
              <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename>
              <outputDirectory>${test-home-dir}</outputDirectory>
              <overWriteSnapshots>true</overWriteSnapshots>
              <overWriteIfNewer>true</overWriteIfNewer>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.17</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>start-jetty</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <property name="jetty.jmx.home" location="${test-home-dir}/jetty-distribution-${project.version}" />
                <property name="jetty.jmx.base" location="${test-base-dir}" />
                <echo>Integration Test : Setup Jetty</echo>
                <exec executable="${run.command}" dir="${scripts-dir}" spawn="false">
                  <arg value="${run.command.xtra}" />
                  <arg value="${setup.script}" />
                  <arg file="${java.home}" />
                  <arg file="${jetty.jmx.home}" />
                  <arg file="${jetty.jmx.base}" />
                </exec>

                <echo>Integration Test : Starting Jetty ...</echo>
                <exec executable="${run.command}" dir="${scripts-dir}" spawn="true">
                  <arg value="${run.command.xtra}" />
                  <arg value="${start.script}" />
                  <arg file="${java.home}" />
                  <arg file="${jetty.jmx.home}" />
                  <arg file="${jetty.jmx.base}" />
                </exec>
                <waitfor maxwait="5" maxwaitunit="second" checkevery="500" checkeveryunit="millisecond">
                  <http url="http://localhost:58080/jmx-webapp/" />
                </waitfor>
                <echo>Integration Test : Jetty is now available</echo>
              </target>
            </configuration>
          </execution>
          <execution>
            <id>stop-jetty</id>
            <phase>post-integration-test</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <property name="jetty.jmx.home" location="${test-home-dir}/jetty-distribution-${project.version}" />
                <property name="jetty.jmx.base" location="${test-base-dir}" />
                <echo>Integration Test : Stop Jetty</echo>
                <exec executable="${run.command}" dir="${scripts-dir}" spawn="false">
                  <arg value="${run.command.xtra}" />
                  <arg value="${stop.script}" />
                  <arg file="${java.home}" />
                  <arg file="${jetty.jmx.home}" />
                  <arg file="${jetty.jmx.base}" />
                </exec>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>it-windows</id>
      <activation>
        <os>
          <family>Windows</family>
        </os>
      </activation>
      <properties>
        <run.command>cmd</run.command>
        <run.command.xtra>/c</run.command.xtra>
        <start.script>start-jetty.bat</start.script>
        <stop.script>stop-jetty.bat</stop.script>
      </properties>
    </profile>
    <profile>
      <id>it-unix</id>
      <activation>
        <os>
          <family>unix</family>
        </os>
      </activation>
      <properties>
        <run.command>sh</run.command>
        <run.command.xtra>--</run.command.xtra>
        <setup.script>setup-jetty.sh</setup.script>
        <start.script>start-jetty.sh</start.script>
        <stop.script>stop-jetty.sh</stop.script>
      </properties>
    </profile>
  </profiles>
</project>
