| <?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.4-M2-SNAPSHOT</version> |
| </parent> |
| <artifactId>archiva-webapp-test</artifactId> |
| <packaging>pom</packaging> |
| <name>Archiva Web :: Application Tests</name> |
| |
| <properties> |
| <container.test.port>9696</container.test.port> |
| <tomcat5x.version>5.5.34</tomcat5x.version> |
| <tomcat6x.version>6.0.33</tomcat6x.version> |
| <cargo.wait>false</cargo.wait> |
| <cargo.timeout>600000</cargo.timeout> |
| <cargo.install.dir>${project.build.directory}/cargo/installs</cargo.install.dir> |
| <maxWaitTimeInMs>10000</maxWaitTimeInMs> |
| <!-- TODO: review how appropriate the memory settings are - should work with less --> |
| <cargo.jvm.args>-Xmx512m -XX:MaxPermSize=256m</cargo.jvm.args> |
| <seleniumPluginVersion>2.1</seleniumPluginVersion> |
| <selenium-server.version>2.12.0</selenium-server.version> |
| <apache.mirror.url>http://archive.apache.org/dist</apache.mirror.url> |
| <apache.archive.url>http://archive.apache.org/dist</apache.archive.url> |
| </properties> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.testng</groupId> |
| <artifactId>testng</artifactId> |
| <version>6.2.1</version> |
| <scope>test</scope> |
| </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> |
| <exclusion> |
| <artifactId>plexus-component-api</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> |
| <exclusions> |
| <exclusion> |
| <artifactId>plexus-component-api</artifactId> |
| <groupId>org.codehaus.plexus</groupId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.seleniumhq.selenium.client-drivers</groupId> |
| <artifactId>selenium-java-client-driver</artifactId> |
| <version>1.0.2</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> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>selenium-maven-plugin</artifactId> |
| <version>${seleniumPluginVersion}</version> |
| <dependencies> |
| <dependency> |
| <groupId>org.seleniumhq.selenium</groupId> |
| <artifactId>selenium-server</artifactId> |
| <version>${selenium-server.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.seleniumhq.selenium</groupId> |
| <artifactId>selenium-remote-driver</artifactId> |
| <version>${selenium-server.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.seleniumhq.selenium</groupId> |
| <artifactId>selenium-api</artifactId> |
| <version>${selenium-server.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <configuration> |
| <excludes> |
| <exclude>src/test/resources/appserver-base/**</exclude> |
| <exclude>src/test/resources/repository/**</exclude> |
| <exclude>src/test/resources/local-repo/**</exclude> |
| <exclude>src/test/resources/projects/**</exclude> |
| <exclude>src/test/resources/snapshots/**</exclude> |
| <exclude>src/test/tomcat*/conf/catalina.policy</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <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> |
| <redirectTestOutputToFile>false</redirectTestOutputToFile> |
| <properties> |
| <!-- |
| Use this instead of suiteXmlFiles so that we can add the exclusion, as it is only accepted without suiteXmlFiles |
| --> |
| <property> |
| <name>listener</name> |
| <value>org.apache.archiva.web.test.listener.CaptureScreenShotsListener</value> |
| </property> |
| <property> |
| <name>excludegroups</name> |
| <!-- Exclude on all browsers but Firefox, as it is the only one that Selenium supports file uploads on --> |
| <value>${excluded.groups}</value> |
| </property> |
| </properties> |
| <runOrder>alphabetical</runOrder> |
| </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> |
| <property> |
| <name>maxWaitTimeInMs</name> |
| <value>${maxWaitTimeInMs}</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.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-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> |
| <overWriteSnapshots>true</overWriteSnapshots> |
| </configuration> |
| </execution> |
| <execution> |
| <id>prepare-provided-dependencies</id> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>copy-dependencies</goal> |
| </goals> |
| <configuration> |
| <!-- TODO: this sometimes copies everything, causing problems with the server start up --> |
| <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> |
| <groupId>org.apache.maven.plugins</groupId> |
| <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/resources/appserver-base"/> |
| </copy> |
| <copy todir="${project.build.directory}/repository"> |
| <fileset dir="src/test/resources/repository"/> |
| </copy> |
| <copy todir="${project.build.directory}/index"> |
| <fileset dir="src/test/resources/index"/> |
| </copy> |
| <copy todir="${project.build.directory}/snapshots"> |
| <fileset dir="src/test/resources/snapshots"/> |
| </copy> |
| <copy todir="${project.build.directory}/projects"> |
| <fileset dir="src/test/resources/projects"/> |
| </copy> |
| <copy todir="${project.build.directory}/local-repo"> |
| <fileset dir="src/test/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}/apache-tomcat-${tomcat.version}/apache-tomcat-${tomcat.version}/common/lib"> |
| <fileset dir="${project.build.directory}/providedDependencies"> |
| <include name="**/*.jar"/> |
| </fileset> |
| </copy> |
| <!-- for tomcat 6 --> |
| <copy |
| todir="${cargo.install.dir}/apache-tomcat-${tomcat.version}/apache-tomcat-${tomcat.version}/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:${container.test.port}/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.1.1</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> |
| <downloadDir>${user.home}/.cargo</downloadDir> |
| </zipUrlInstaller> |
| <log>${project.build.directory}/logs/${container.name}.log</log> |
| <output>${project.build.directory}/logs/${container.name}.out</output> |
| <timeout>${cargo.timeout}</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>${container.test.port}</cargo.servlet.port> |
| <cargo.jvmargs>${cargo.jvm.args}</cargo.jvmargs> |
| </properties> |
| </configuration> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>existing-container</id> |
| <activation> |
| <property> |
| <name>!baseUrl</name> |
| </property> |
| </activation> |
| <properties> |
| <baseUrl>http://localhost:${container.test.port}/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>tomcat5</name> |
| </property> |
| </activation> |
| <properties> |
| <container.name>tomcat5x</container.name> |
| <tomcat.version>${tomcat5x.version}</tomcat.version> |
| <container.url> |
| ${apache.mirror.url}/tomcat/tomcat-5/v${tomcat5x.version}/bin/apache-tomcat-${tomcat5x.version}.zip |
| </container.url> |
| </properties> |
| </profile> |
| <profile> |
| <id>tomcat6x</id> |
| <activation> |
| <property> |
| <name>!container</name> |
| </property> |
| </activation> |
| <properties> |
| <container.name>tomcat6x</container.name> |
| <tomcat.version>${tomcat6x.version}</tomcat.version> |
| <container.url> |
| ${apache.mirror.url}/tomcat/tomcat-6/v${tomcat6x.version}/bin/apache-tomcat-${tomcat6x.version}.zip |
| </container.url> |
| </properties> |
| </profile> |
| <profile> |
| <id>firefox</id> |
| <activation> |
| <property> |
| <name>!browser</name> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*firefox</selenium.browser> |
| <excluded.groups/> |
| </properties> |
| </profile> |
| <profile> |
| <id>chrome</id> |
| <activation> |
| <property> |
| <name>browser</name> |
| <value>chrome</value> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*googlechrome</selenium.browser> |
| <excluded.groups>requiresUpload</excluded.groups> |
| </properties> |
| </profile> |
| <profile> |
| <id>iexplore</id> |
| <activation> |
| <property> |
| <name>browser</name> |
| <value>iexplore</value> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*iexplore</selenium.browser> |
| <excluded.groups>requiresUpload</excluded.groups> |
| </properties> |
| </profile> |
| <profile> |
| <id>safari</id> |
| <activation> |
| <property> |
| <name>browser</name> |
| <value>safari</value> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*safari</selenium.browser> |
| <excluded.groups>requiresUpload</excluded.groups> |
| </properties> |
| </profile> |
| <profile> |
| <id>otherbrowser</id> |
| <activation> |
| <property> |
| <name>browser</name> |
| <value>other</value> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*custom ${browserPath}</selenium.browser> |
| <excluded.groups>requiresUpload</excluded.groups> |
| </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>debug</id> |
| <properties> |
| <!-- TODO: review how appropriate the memory settings are - should work with less --> |
| <cargo.jvm.args> |
| -Xdebug -Xnoagent -Djava.compiler=NONE |
| -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${cargo.debug.port} |
| -Xmx512m -XX:MaxPermSize=256m |
| </cargo.jvm.args> |
| <cargo.debug.port>8000</cargo.debug.port> |
| <!-- wait an unusual amount of time (1hr) to allow debugging to occur --> |
| <maxWaitTimeInMs>3600000</maxWaitTimeInMs> |
| </properties> |
| </profile> |
| <profile> |
| <id>ci-server</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>cleanup-files</id> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <configuration> |
| <tasks> |
| <delete file="${user.home}/.m2/archiva.xml" quiet="true"/> |
| </tasks> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| |
| <pluginRepositories> |
| <pluginRepository> |
| <id>codehaus.snapshots</id> |
| <url>https://nexus.codehaus.org/content/repositories/snapshots/</url> |
| <releases> |
| <enabled>false</enabled> |
| </releases> |
| <snapshots> |
| <enabled>true</enabled> |
| </snapshots> |
| </pluginRepository> |
| </pluginRepositories> |
| |
| |
| </project> |