<?xml version="1.0"?>
<!--
/*
 * $Id$
 *
 * 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">

   <parent>
      <groupId>org.apache.tiles</groupId>
      <artifactId>tiles-test-pom</artifactId>
      <version>3.1-SNAPSHOT</version>
   </parent>

   <modelVersion>4.0.0</modelVersion>
   <artifactId>tiles-test</artifactId>
   <packaging>war</packaging>
   <name>Tiles - Apps - Test</name>
   <description>Tiles Test web application: tests Tiles functionality.
   </description>

   <dependencies>
      <dependency>
         <groupId>org.apache.tiles</groupId>
         <artifactId>tiles-test-common</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.tiles</groupId>
         <artifactId>tiles-test-alt</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.tiles</groupId>
         <artifactId>tiles-test-db</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.tiles</groupId>
         <artifactId>tiles-extras</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.tiles</groupId>
         <artifactId>tiles-request-portlet</artifactId>
         <version>${tiles.request.version}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.5.8</version>
      </dependency>

      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>servlet-api</artifactId>
         <version>2.5</version>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>javax.servlet.jsp</groupId>
         <artifactId>jsp-api</artifactId>
         <version>2.1</version>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>javax.portlet</groupId>
         <artifactId>portlet-api</artifactId>
         <version>2.0</version>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>jstl</artifactId>
         <version>1.2</version>
         <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>1.8.0.10</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.4</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>2.5.6</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
          <groupId>org.apache.portals.pluto</groupId>
          <artifactId>pluto-taglib</artifactId>
          <version>2.0.0</version>
          <scope>provided</scope>
      </dependency>
   </dependencies>

   <build>
       <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-war-plugin</artifactId>
              <version>2.1-beta-1</version>
              <configuration>
                  <webResources>
                      <resource>
                          <directory>.</directory>
                          <targetPath>META-INF</targetPath>
                          <includes>
                              <include>LICENSE.txt</include>
                              <include>NOTICE.txt</include>
                          </includes>
                      </resource>
                  </webResources>
                  <archive>
                      <manifest>
                          <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                          <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                      </manifest>
                      <manifestEntries>
                          <Tiles-Initializer>org.apache.tiles.test.init.TestTilesInitializer</Tiles-Initializer>
                      </manifestEntries>
                  </archive>
               </configuration>
           </plugin>
           <plugin>
               <groupId>org.codehaus.cargo</groupId>
               <artifactId>cargo-maven2-plugin</artifactId>
               <version>1.0.5</version>
               <configuration>
                   <container>
                       <containerId>jetty7x</containerId>
                       <type>embedded</type>
                   </container>
               </configuration>
           </plugin>
       </plugins>
     <finalName>${project.artifactId}</finalName>
   </build>

    <profiles>
        <profile>
            <id>selenium</id>
            <activation>
                <property>
                    <name>selenium</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>dependency-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>unpack-selenium</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>unpack</goal>
                                </goals>
                                <configuration>
                                    <artifactItems>
                                        <artifactItem>
                                            <groupId>org.openqa.selenium.core</groupId>
                                            <artifactId>selenium-core</artifactId>
                                            <version>1.0-beta-1</version>
                                        </artifactItem>
                                    </artifactItems>
                                    <outputDirectory>${project.build.directory}/selenium</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>copy-selenium</id>
                                <phase>process-resources</phase>
                                <configuration>
                                    <tasks>
                                        <copy todir="${project.build.directory}/${project.artifactId}/selenium/core">
                                            <fileset dir="${project.build.directory}/selenium/core" />
                                        </copy>
                                        <copy todir="${project.build.directory}/${project.artifactId}/selenium/tests">
                                            <fileset dir="src/test/selenium" />
                                        </copy>
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <repositories>
                <repository>
                    <id>OpenQA</id>
                    <url>http://nexus.openqa.org/content/repositories/releases/</url>
                </repository>
            </repositories>
        </profile>

        <profile>
            <id>run-selenium</id>
            <activation>
                <property>
                    <name>run-selenium</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.cargo</groupId>
                        <artifactId>cargo-maven2-plugin</artifactId>
                         <configuration>
                            <container>
                                <containerId>jetty7x</containerId>
                                <type>embedded</type>
                            </container>
                            <wait>false</wait>
                        </configuration>
                        <executions>
                            <execution>
                                <id>start-container</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>start</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>stop-container</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>stop</goal>
                                </goals>
                            </execution>
                        </executions>
                   </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>selenium-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>run-tests</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>selenese</goal>
                                </goals>
                                <configuration>
                                    <background>true</background>
                                    <browser>*firefox</browser>
                                    <startURL>http://localhost:8080/tiles-test/</startURL>
                                    <suite>src/test/selenium/TestSuite.html</suite>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <!-- Skip the normal tests, we'll run them in the integration-test phase -->
                            <skip>true</skip>
                        </configuration>

                        <executions>
                            <execution>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <skip>false</skip>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>hostedqa</id>
            <dependencies>
                <dependency>
                    <groupId>com.hostedqa</groupId>
                    <artifactId>hostedqa-remote-ant</artifactId>
                    <version>1.6.2</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <repositories>
                <repository>
                    <id>codehaus</id>
                    <name>codehaus</name>
                    <url>http://repository.codehaus.org</url>
                </repository>
                <repository>
                    <id>maven-hostedqa</id>
                    <name>maven-hostedqa</name>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                        <checksumPolicy>ignore</checksumPolicy>
                    </snapshots>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <url>http://maven.hostedqa.com</url>
                </repository>
            </repositories>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <groupId>org.apache.maven.plugins</groupId>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <tasks>
                                        <taskdef resource="hostedqatasks" classpathref="maven.plugin.classpath" />
                                        <upload file="${project.build.directory}/${project.build.finalName}.war" account="tiles" email="${tiles.hostedqa.email}" password="${tiles.hostedqa.password}" resourceId="${hostedqa.resourceId}" />

                                        <playsuite clientConfigs="${hostedqa.clientConfigs}" appConfigs="${hostedqa.appConfigs}" account="tiles" email="${tiles.hostedqa.email}" password="${tiles.hostedqa.password}">
                                            <fileSet dir="${basedir}/src/test/selenium" excludes="TestSuite.html" />
                                        </playsuite>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>com.hostedqa</groupId>
                                <artifactId>hostedqa-remote-ant</artifactId>
                                <version>1.6.2</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
            <properties>
                <hostedqa.resourceId>53</hostedqa.resourceId>
                <hostedqa.clientConfigs>303</hostedqa.clientConfigs>
                <hostedqa.appConfigs>121</hostedqa.appConfigs>
            </properties>
        </profile>
        <profile>
            <id>apache-release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>rat-maven-plugin</artifactId>
                        <version>1.0-alpha-3</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <configuration>
                                    <addDefaultLicenseMatchers>false</addDefaultLicenseMatchers>
                                    <licenseMatchers>
                                        <classNames>
                                            <className>rat.analysis.license.ApacheSoftwareLicense20</className>
                                        </classNames>
                                    </licenseMatchers>
                                    <includes>
                                        <include>pom.xml</include>
                                        <include>src/**</include>
                                    </includes>
                                    <excludes>
                                        <exclude>**/*.sql</exclude>
                                        <exclude>**/*MANIFEST.MF</exclude>
                                    </excludes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>wagon-maven-plugin</artifactId>
                        <version>1.0-beta-4</version>
                        <executions>
                            <execution>
                                <phase>deploy</phase>
                                <goals>
                                    <goal>upload</goal>
                                </goals>
                                <configuration>
                                    <fromDir>${settings.localRepository}/org/apache/tiles/tiles-test/${project.version}</fromDir>
                                    <includes>tiles-test-${project.version}.war*</includes>
                                    <toDir>${project.version}</toDir>
                                    <serverId>tiles.build</serverId>
                                    <url>scp://people.apache.org/www/people.apache.org/builds/tiles</url>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    <repositories>
        <repository>
            <id>codehaus</id>
            <name>codehaus</name>
            <url>http://repository.codehaus.org</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>codehaus</id>
            <name>codehaus</name>
            <url>http://repository.codehaus.org</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>
</project>
