blob: afa8a047780989635f102b3a24287742d8fcd310 [file] [log] [blame]
<?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.continuum</groupId>
<artifactId>continuum</artifactId>
<version>1.4.2-SNAPSHOT</version>
</parent>
<artifactId>continuum-webapp-test</artifactId>
<name>Continuum :: Webapp Tests</name>
<packaging>pom</packaging>
<build>
<testSourceDirectory>src/test/testng</testSourceDirectory>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<goals>
<goal>testResources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy todir="${project.build.directory}" overwrite="true">
<filterchain>
<expandproperties />
</filterchain>
<fileset dir="src/appserver-base"/>
</copy>
<delete dir="${project.build.directory}/example-svn"/>
<copy todir="${project.build.directory}/example-svn">
<fileset dir="src/test/example-svn"/>
</copy>
<!-- This doesn't work, SVN doesn't like the file:/ URL it gives
<makeurl file="${project.build.directory}/example-svn" property="svn.base.url"/>
-->
<path id="svn.repo.dir">
<pathelement location="${project.build.directory}/example-svn"/>
</path>
<pathconvert refid="svn.repo.dir" targetos="unix" property="svn.base.url"/>
<echo file="${project.build.directory}/filter.properties">
svn.base.url=file://localhost${svn.base.url}
continuum.port=${continuum.port}
baseUrl=${baseUrl}
</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${project.build.directory}/filter.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>start-selenium</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start-server</goal>
</goals>
</execution>
<execution>
<id>stop-selenium</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop-server</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>${selenium.version}</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>${selenium.version}</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>${selenium.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<configuration>
<container>
<containerId>${container.name}</containerId>
<log>${project.build.directory}/logs/${container.name}.log</log>
<output>${project.build.directory}/logs/${container.name}.out</output>
<timeout>180000</timeout>
<systemProperties>
<appserver.base>${project.build.directory}</appserver.base>
<derby.system.home>${project.build.directory}</derby.system.home>
<svn.base.url>${svn.base.url}</svn.base.url>
<continuum.port>${contiuum.port}</continuum.port>
<baseUrl>${baseUrl}</baseUrl>
<plexus.system.path>${plexus.system.path}</plexus.system.path>
</systemProperties>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
</dependency>
</dependencies>
</container>
<configuration>
<properties>
<cargo.servlet.port>${continuum.port}</cargo.servlet.port>
<cargo.jvmargs>${cargo.jvmargs}</cargo.jvmargs>
<cargo.datasource.datasource.users>
cargo.datasource.driver=org.apache.derby.jdbc.EmbeddedDriver|
cargo.datasource.url=jdbc:derby:${project.build.directory}/databases/${container.name}/users;create=true|
cargo.datasource.jndi=jdbc/users|
cargo.datasource.username=sa
</cargo.datasource.datasource.users>
<cargo.datasource.datasource.builds>
cargo.datasource.driver=org.apache.derby.jdbc.EmbeddedDriver|
cargo.datasource.url=jdbc:derby:${project.build.directory}/databases/${container.name}/builds;create=true|
cargo.datasource.jndi=jdbc/continuum|
cargo.datasource.username=sa
</cargo.datasource.datasource.builds>
<cargo.resource.resource.mail>
cargo.resource.name=mail/Session|
cargo.resource.type=javax.mail.Session|
cargo.resource.factory=org.apache.naming.factory.MailSessionFactory|
cargo.resource.parameters=mail.smtp.host=localhost
</cargo.resource.resource.mail>
</properties>
</configuration>
<deployables>
<deployable>
<artifactId>continuum-webapp</artifactId>
<type>war</type>
<properties>
<context>continuum</context>
</properties>
</deployable>
<deployable>
<artifactId>continuum-buildagent-webapp</artifactId>
<type>war</type>
<properties>
<context>continuum-buildagent</context>
</properties>
</deployable>
<!-- Test resources -->
<deployable>
<location>${basedir}/src/test/example-projects</location>
<type>war</type>
<properties>
<context>example-projects</context>
</properties>
</deployable>
</deployables>
</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.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<!-- Better to be able to see the results output from the listener as we go -->
<redirectTestOutputToFile>false</redirectTestOutputToFile>
<suiteXmlFiles>
<suiteXmlFile>src/test/testng/config/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
<executions>
<execution>
<id>integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<systemProperties>
<property>
<name>baseUrl</name>
<value>${baseUrl}</value>
</property>
<property>
<name>buildAgentUrl</name>
<value>${buildAgentUrl}</value>
</property>
<property>
<name>appserverBase</name>
<value>${appserverBase}</value>
</property>
<property>
<name>browser</name>
<value>${browser}</value>
</property>
<property>
<name>seleniumHost</name>
<value>${seleniumHost}</value>
</property>
<property>
<name>seleniumPort</name>
<value>${seleniumPort}</value>
</property>
</systemProperties>
</configuration>
</execution>
<execution>
<id>verify-integration-tests</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<version>2.3</version>
<configuration>
<port>${seleniumPort}</port>
<background>true</background>
<logOutput>true</logOutput>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.2.1</version>
<scope>test</scope>
</dependency>
<!-- deployables -->
<dependency>
<groupId>org.apache.continuum</groupId>
<artifactId>continuum-webapp</artifactId>
<type>war</type>
</dependency>
<dependency>
<groupId>org.apache.continuum</groupId>
<artifactId>continuum-buildagent-webapp</artifactId>
<type>war</type>
</dependency>
<!-- container dependencies -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
</dependency>
<!-- dependencies below are for code in src/test/it -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium.server</groupId>
<artifactId>selenium-server</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium.client-drivers</groupId>
<artifactId>selenium-java-client-driver</artifactId>
<version>1.0.1</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<profiles>
<profile>
<id>disable-cargo</id>
<activation>
<property>
<name>baseUrl</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<deployables>
<!-- Skip all but test resources -->
<deployable>
<location>${basedir}/src/test/example-projects</location>
<type>war</type>
<properties>
<context>example-projects</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>disable-selenium-server</id>
<activation>
<property>
<name>seleniumHost</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>firefox</id>
<properties>
<browser>*firefox</browser>
</properties>
</profile>
<profile>
<id>iexplore</id>
<activation>
<property>
<name>browser</name>
<value>iexplore</value>
</property>
</activation>
<properties>
<browser>*iexplore</browser>
</properties>
</profile>
<profile>
<id>safari</id>
<activation>
<property>
<name>browser</name>
<value>safari</value>
</property>
</activation>
<properties>
<browser>*safari</browser>
</properties>
</profile>
<profile>
<id>otherbrowser</id>
<activation>
<property>
<name>browser</name>
<value>other</value>
</property>
</activation>
<properties>
<browser>*custom ${browserPath}</browser>
</properties>
</profile>
<profile>
<id>headless</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<executions>
<execution>
<id>xvfb</id>
<phase>validate</phase>
<goals>
<goal>xvfb</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>reporting</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<executions>
<execution>
<id>report-only</id>
<phase>integration-test</phase>
<goals>
<goal>report-only</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>tomcat7x</id>
<activation>
<activeByDefault>true</activeByDefault>
<!-- -DseleniumHost profile cancels this, so we need to trigger on that as well -->
<property>
<name>seleniumHost</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<zipUrlInstaller>
<url>
http://archive.apache.org/dist/tomcat/tomcat-7/v${tomcat7x.version}/bin/apache-tomcat-${tomcat7x.version}.zip
</url>
<downloadDir>${user.home}/.cargo</downloadDir>
</zipUrlInstaller>
</container>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<properties>
<container.name>tomcat7x</container.name>
<tomcat7x.version>7.0.29</tomcat7x.version>
</properties>
</profile>
<profile>
<id>jetty7x</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<artifactInstaller>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-distribution</artifactId>
<version>${jetty7x.version}</version>
</artifactInstaller>
</container>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<properties>
<container.name>jetty7x</container.name>
<jetty7x.version>7.6.5.v20120716</jetty7x.version>
</properties>
</profile>
<profile>
<id>debug</id>
<properties>
<cargo.jvmargs>
-Xmx512m
-XX:MaxPermSize=128m
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
-Xnoagent
-Djava.compiler=NONE
</cargo.jvmargs>
</properties>
</profile>
</profiles>
<properties>
<seleniumHost>localhost</seleniumHost>
<seleniumPort>4444</seleniumPort>
<continuum.port>9595</continuum.port>
<baseUrl>http://localhost:${continuum.port}/continuum</baseUrl>
<buildAgentUrl>http://localhost:${continuum.port}/continuum-buildagent/xmlrpc</buildAgentUrl>
<appserverBase>${project.build.directory}</appserverBase>
<browser>*firefox</browser>
<browserPath/>
<cargo.jvmargs>-Xmx512m -XX:MaxPermSize=128m</cargo.jvmargs>
<plexus.system.path/>
<selenium.version>2.41.0</selenium.version>
</properties>
</project>