<?xml version="1.0" encoding="UTF-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<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">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.royale.examples</groupId>
    <artifactId>examples</artifactId>
    <version>0.9.9-SNAPSHOT</version>
  </parent>

  <artifactId>examples-integrationtests</artifactId>
  <version>0.9.9-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>Apache Royale: Examples: Integrationtests</name>

  <properties>
    <tomcat.version>8.5.13</tomcat.version>
  </properties>

  <build>
    <plugins>
      <!-- Make the build run the integration tests -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.19.1</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludes>
            <exclude>**/Abstract*.java</exclude>
          </excludes>
        </configuration>
      </plugin>

      <!--
        Prior to the integration-test execution, startup a tomcat server serving all the listed applications.
        After the tests were executed (successful or unsuccessful) make sure the server is stopped again.
       -->
      <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <version>1.6.2</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>start</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>start</goal>
            </goals>
          </execution>
          <execution>
            <id>stop</id>
            <phase>post-integration-test</phase>
            <goals>
              <goal>stop</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <container>
            <containerId>tomcat8x</containerId>
            <log>${project.build.directory}/tomcat8x/container.log</log>
            <zipUrlInstaller>
              <url>https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/${tomcat.version}/tomcat-${tomcat.version}.zip</url>
              <extractDir>${java.io.tmpdir}/cargo/installs</extractDir>
            </zipUrlInstaller>
            <!-- 3 Minutes -->
            <timeout>180000</timeout>
          </container>
          <configuration>
            <type>standalone</type>
            <home>${project.build.directory}/tomcat8x/container</home>
            <properties>
              <cargo.servlet.port>8082</cargo.servlet.port>
              <cargo.servlet.users>admin::manager</cargo.servlet.users>
            </properties>
          </configuration>
          <deployables>
            <!-- Jewel-->
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>TourDeJewel</artifactId>
              <type>war</type>
            </deployable>

            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>ASDoc</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>ChartExample</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>CreateJSExample</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>DataBindingExample</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>DataBindingExample_as</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>DataBindingExample_Flat</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>DataGridExample</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>DateControlsExample</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>DesktopMap</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>RoyaleStore</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>RoyaleStore_jquery</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>RoyaleTeamPage_MDL</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>RoyaleWebsiteStatsViewer</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>HelloWorld</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>ListExample</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>MapSearch</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>MobileMap</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>MobileStocks</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>MobileTrader</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>StorageExample</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>StyleExample</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>TeamPage</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>TodoListSampleApp</artifactId>
              <type>war</type>
            </deployable>
            <deployable>
              <groupId>org.apache.royale.examples</groupId>
              <artifactId>TreeExample</artifactId>
              <type>war</type>
            </deployable>
          </deployables>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <!-- Applications we want to deploy -->
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>TourDeJewel</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>

    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>ASDoc</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>ChartExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>CreateJSExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>DataBindingExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>DataBindingExample_as</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>DataBindingExample_Flat</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>DataGridExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>DateControlsExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>DesktopMap</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>RoyaleStore</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>RoyaleStore_jquery</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>RoyaleTeamPage_MDL</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>RoyaleWebsiteStatsViewer</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>HelloWorld</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>ListExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>MapSearch</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>MobileMap</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>MobileStocks</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>MobileTrader</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>StorageExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>StyleExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>TeamPage</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>TodoListSampleApp</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.examples</groupId>
      <artifactId>TreeExample</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>war</type>
    </dependency>

    <!-- Stuff needed by the tests -->
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-firefox-driver</artifactId>
      <version>${selenium.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>
