mirror of https://github.com/apache/archiva.git
644 lines
22 KiB
XML
644 lines
22 KiB
XML
<?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-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.33</tomcat5x.version>
|
|
<tomcat6x.version>6.0.32</tomcat6x.version>
|
|
<cargo.wait>false</cargo.wait>
|
|
<cargo.timeout>600000</cargo.timeout>
|
|
<cargo.install.dir>cargo-installs</cargo.install.dir>
|
|
<maxWaitTimeInMs>60000</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.0</seleniumPluginVersion>
|
|
<selenium-server.version>2.5.0</selenium-server.version>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.testng</groupId>
|
|
<artifactId>testng</artifactId>
|
|
<version>5.9</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>
|
|
<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>${cargo.install.dir}/**</exclude>
|
|
<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>
|
|
<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}/${container.name}/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}/${container.name}/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>
|
|
<installDir>${project.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>${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>
|
|
http://archive.apache.org/dist/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>
|
|
http://archive.apache.org/dist/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>
|
|
<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>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>
|
|
<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>
|
|
</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>
|