<?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.archiva</groupId> <artifactId>archiva-web</artifactId> <version>1.2.3-SNAPSHOT</version> </parent> <artifactId>archiva-webapp-test</artifactId> <packaging>pom</packaging> <name>Archiva Web :: Application Tests</name> <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>5.8</version> <scope>test</scope> <classifier>jdk15</classifier> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-command-line</artifactId> <version>1.0-alpha-2</version> <exclusions> <exclusion> <artifactId>plexus-container-default</artifactId> <groupId>org.codehaus.plexus</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.archiva</groupId> <artifactId>archiva-webapp</artifactId> <type>war</type> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-slf4j-logging</artifactId> </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> <!-- Dependency for MavenConnectionTest --> <dependency> <groupId>jdom</groupId> <artifactId>jdom</artifactId> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> </dependency> <!-- Dependencies below are provided by the appserver --> <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> <build> <testSourceDirectory>src/test/testng</testSourceDirectory> <testResources> <testResource> <directory>src/test/resources</directory> <filtering>true</filtering> <includes> <include>**/*</include> </includes> </testResource> </testResources> <plugins> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <goals> <goal>testResources</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> <verbose>true</verbose> </configuration> <executions> <execution> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <suiteXmlFiles> <suiteXmlFile>src/test/testng/config/testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> <executions> <execution> <id>integration-tests</id> <phase>integration-test</phase> <goals> <goal>test</goal> </goals> <configuration> <systemProperties> <property> <name>browser</name> <value>${selenium.browser}</value> </property> <property> <name>baseUrl</name> <value>${baseUrl}</value> </property> </systemProperties> </configuration> </execution> </executions> </plugin> </plugins> </build> <profiles> <profile> <id>create-container</id> <activation> <property> <name>!container</name> </property> </activation> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>dependency-maven-plugin</artifactId> <executions> <execution> <id>unzip-archiva-webapp</id> <phase>generate-resources</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>${project.groupId}</groupId> <artifactId>archiva-webapp</artifactId> <version>${project.version}</version> <type>war</type> </artifactItem> </artifactItems> <outputDirectory>${project.build.directory}/${container.name}conf/webapps/archiva</outputDirectory> </configuration> </execution> <execution> <id>prepare-provided-dependencies</id> <phase>generate-resources</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <includeGroupIds>org.apache.derby,javax.mail,javax.activation</includeGroupIds> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>true</overWriteSnapshots> <excludeTransitive>false</excludeTransitive> <outputDirectory>${project.build.directory}/providedDependencies</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>generate-resources</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <copy todir="${project.build.directory}/appserver-base"> <fileset dir="src/test/it-resources/appserver-base" /> </copy> <copy todir="${project.build.directory}/repository"> <fileset dir="src/test/it-resources/repository" /> </copy> <copy todir="${project.build.directory}/index"> <fileset dir="src/test/it-resources/index" /> </copy> <copy todir="${project.build.directory}/snapshots"> <fileset dir="src/test/it-resources/snapshots" /> </copy> <copy todir="${project.build.directory}/projects"> <fileset dir="src/test/it-resources/projects" /> </copy> <copy todir="${project.build.directory}/local-repo"> <fileset dir="src/test/it-resources/local-repo" /> </copy> </tasks> </configuration> </execution> <execution> <id>copy-container-conf</id> <phase>package</phase> <configuration> <tasks> <copy todir="${project.build.directory}/${container.name}conf"> <fileset dir="src/test/${container.name}" /> </copy> <copy todir="${cargo.install.dir}/${container.name}/apache-tomcat-${tomcat5x.version}/apache-tomcat-${tomcat5x.version}/common/lib"> <fileset dir="${project.build.directory}/providedDependencies"> <include name="**/*.jar" /> </fileset> </copy> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>check-archiva-loaded</id> <phase>integration-test</phase> <configuration> <tasks> <get src="http://localhost:9696/archiva/" dest="${project.build.directory}/index.html" /> <delete file="${project.build.directory}/index.html" /> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> <version>1.0</version> <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> <configuration> <wait>${cargo.wait}</wait> <container> <containerId>${container.name}</containerId> <zipUrlInstaller> <url>${container.url}</url> <installDir>${basedir}/${cargo.install.dir}/${container.name}</installDir> </zipUrlInstaller> <log>${project.build.directory}/logs/${container.name}.log</log> <output>${project.build.directory}/logs/${container.name}.out</output> <timeout>600000</timeout> <systemProperties> <appserver.base>${project.build.directory}/appserver-base</appserver.base> <appserver.home>${project.build.directory}/appserver-base</appserver.home> </systemProperties> </container> <configuration> <home>${project.build.directory}/${container.name}conf</home> <type>existing</type> <properties> <cargo.servlet.port>9696</cargo.servlet.port> </properties> </configuration> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>existing-container</id> <activation> <property> <name>!baseUrl</name> </property> </activation> <properties> <baseUrl>http://localhost:9696/archiva/</baseUrl> </properties> </profile> <profile> <id>start-selenium</id> <activation> <property> <name>!seleniumHost</name> </property> </activation> <properties> <seleniumHost>localhost</seleniumHost> <seleniumPort>4444</seleniumPort> </properties> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>selenium-maven-plugin</artifactId> <executions> <execution> <phase>pre-integration-test</phase> <goals> <goal>start-server</goal> </goals> <configuration> <background>true</background> <port>${seleniumPort}</port> <logOutput>true</logOutput> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>tomcat5x</id> <activation> <property> <name>!container</name> </property> </activation> <properties> <container.name>tomcat5x</container.name> <container.url>http://archive.apache.org/dist/tomcat/tomcat-5/v${tomcat5x.version}/bin/apache-tomcat-${tomcat5x.version}.zip</container.url> </properties> </profile> <profile> <id>firefox</id> <activation> <property> <name>!browser</name> </property> </activation> <properties> <selenium.browser>*firefox</selenium.browser> </properties> </profile> <profile> <id>iexplore</id> <activation> <property> <name>browser</name> <value>iexplore</value> </property> </activation> <properties> <selenium.browser>*iexplore</selenium.browser> </properties> </profile> <profile> <id>safari</id> <activation> <property> <name>browser</name> <value>safari</value> </property> </activation> <properties> <selenium.browser>*safari</selenium.browser> </properties> </profile> <profile> <id>otherbrowser</id> <activation> <property> <name>browser</name> <value>other</value> </property> </activation> <properties> <selenium.browser>*custom ${browserPath}</selenium.browser> </properties> </profile> <profile> <id>clean-cargo</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <configuration> <filesets> <fileset> <directory>${cargo.install.dir}</directory> </fileset> </filesets> </configuration> </plugin> </plugins> </build> </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> </profiles> <properties> <tomcat5x.version>5.5.27</tomcat5x.version> <cargo.wait>false</cargo.wait> <cargo.install.dir>cargo-installs</cargo.install.dir> </properties> </project>