| <?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/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| |
| <parent> |
| <groupId>org.apache.maven.its</groupId> |
| <artifactId>core-its</artifactId> |
| <version>2.1-SNAPSHOT</version> |
| </parent> |
| |
| <artifactId>core-it-suite</artifactId> |
| |
| <name>Maven Core ITs suite</name> |
| <description>The effective Maven Integration Tests suite.</description> |
| |
| <!-- |
| By default, the project just packages the tests in an artifact. To actually run them, activate the profile "run-its": |
| |
| mvn clean test -Prun-its |
| |
| This will subject the Maven version running the build to the integration tests. If you would like to test a different |
| Maven distribution, you can use the system property "mavenHome" to specify the path of the Maven distribution to test: |
| |
| mvn clean test -Prun-its -DmavenHome=<maven-under-test> |
| |
| Alternatively, you can just specify the version of a previously installed/deployed Maven distribution which will be |
| downloaded, unpacked and tested: |
| |
| mvn clean test -Prun-its -DmavenVersion=2.2.1 |
| |
| It's also possible to point the ITs at an already downloaded Maven distribution: |
| |
| mvn clean test -Prun-its -DmavenDistro=<path-to-bin-archive> |
| |
| To run the ITs using embedded Maven 3.x, additionally activate the profile "embedded". |
| |
| ITs that don't require to fork Maven can also be run from the IDE using the Maven projects from the workspace if the |
| Maven dependencies are added to the test class path. |
| |
| To test with the maven wrapper, you should add the wrapperDistroDir too. |
| |
| mvn clean test -Prun-its -Dmaven.repo.local=<path-to-local-repo> -DmavenDistro=<path-to-bin-archive> -DwrapperDistroDir=<path-to-wrapper-distro-directory> -DmavenWrapper=<path-to-wrapper-jar> |
| |
| Tests can pick up the maven.wrapper.distrodir system property to unpack it into their testDir to verify the wrapper. |
| |
| If you're behind a proxy, use the system properties proxy.host, proxy.port, proxy.user, proxy.pass and |
| proxy.nonProxyHosts to specify the required proxy setup for the ITs. Alternatively, set the system property |
| maven.it.central to a URL of a local repository manager (anonymous authentication only) that proxies the |
| required artifacts. |
| --> |
| |
| <properties> |
| <surefireMemory>-Xmx384m</surefireMemory> |
| <!-- The original Maven distribution to test. --> |
| <mavenHome>${maven.home}</mavenHome> |
| <!-- The (possibly instrumented copy of the) Maven distribution we actually |
| use for the tests. --> |
| <preparedMavenHome>${mavenHome}</preparedMavenHome> |
| <!-- default properties used to filter the global settings --> |
| <maven.it.central>https://repo1.maven.org/maven2</maven.it.central> |
| <proxy.active>false</proxy.active> |
| <proxy.host>localhost</proxy.host> |
| <proxy.port>80</proxy.port> |
| <proxy.type>none</proxy.type> |
| <proxy.user></proxy.user> |
| <proxy.pass></proxy.pass> |
| <proxy.nonProxyHosts>localhost</proxy.nonProxyHosts> |
| <slf4jVersion>1.6.1</slf4jVersion> |
| <jetty9Version>9.0.4.v20130625</jetty9Version> |
| </properties> |
| |
| <dependencies> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>4.12</version> |
| <!-- NOTE: Use compile scope for transitivity. --> |
| </dependency> |
| <dependency> |
| <groupId>org.hamcrest</groupId> |
| <artifactId>hamcrest-all</artifactId> |
| <version>1.3</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-utils</artifactId> |
| <version>3.3.0</version> |
| <!-- NOTE: Use compile scope for transitivity. --> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.its</groupId> |
| <artifactId>maven-it-helper</artifactId> |
| <version>2.1-SNAPSHOT</version> |
| <!-- TODO: not transitive in tests artifact, so must be left in main |
| scope <scope>test</scope> --> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.shared</groupId> |
| <artifactId>maven-verifier</artifactId> |
| <!-- TODO: not transitive in tests artifact, so must be left in main |
| scope <scope>test</scope> --> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-server</artifactId> |
| <version>${jetty9Version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.shared</groupId> |
| <artifactId>maven-shared-utils</artifactId> |
| <version>0.9</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-util</artifactId> |
| <version>${jetty9Version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-servlet</artifactId> |
| <version>${jetty9Version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <version>16.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-archiver</artifactId> |
| <version>3.6.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.sisu</groupId> |
| <artifactId>org.eclipse.sisu.plexus</artifactId> |
| <version>0.3.4</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven</groupId> |
| <artifactId>maven-repository-metadata</artifactId> |
| <version>3.6.3</version> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <testResources> |
| <testResource> |
| <directory>src/test/resources</directory> |
| </testResource> |
| <testResource> |
| <directory>src/test/resources-filtered</directory> |
| <filtering>true</filtering> |
| </testResource> |
| </testResources> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <includes> |
| <include>**/IntegrationTestSuite.java</include> |
| </includes> |
| <forkMode>never</forkMode> |
| <skip>true</skip> |
| <systemProperties> |
| <property> |
| <name>maven.version</name> |
| <value>${maven.version}</value> |
| </property> |
| <property> |
| <name>maven.home</name> |
| <value>${preparedMavenHome}</value> |
| </property> |
| <property> |
| <name>maven.it.global-settings.dir</name> |
| <value>${project.build.testOutputDirectory}</value> |
| </property> |
| <property> |
| <name>maven.wrapper.distrodir</name> |
| <value>${wrapperDistroDir}</value> |
| </property> |
| <property> |
| <name>maven.distro</name> |
| <value>${mavenDistro}</value> |
| </property> |
| </systemProperties> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <executions> |
| <execution> |
| <goals> |
| <goal>test-jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <profiles> |
| <profile> |
| <id>parallel</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <parallel>classes</parallel> |
| <threadCount>6</threadCount> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>run-its</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <skip>false</skip> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| <dependencies> |
| <!-- not really used but will force download in the local repo used --> |
| <dependency> |
| <groupId>org.apache.maven.wagon</groupId> |
| <artifactId>wagon-webdav-jackrabbit</artifactId> |
| <version>2.0</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>${slf4jVersion}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-simple</artifactId> |
| <version>${slf4jVersion}</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| </profile> |
| <profile> |
| <id>maven-repo-local</id> |
| <activation> |
| <property> |
| <name>maven.repo.local</name> |
| </property> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <systemProperties combine.children="append"> |
| <property> |
| <!-- Pass this through to the tests (if set!) to have them |
| pick the right repository --> |
| <name>maven.repo.local</name> |
| <value>${maven.repo.local}</value> |
| </property> |
| </systemProperties> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>maven-repo-local-layout</id> |
| <activation> |
| <property> |
| <name>maven.repo.local.layout</name> |
| </property> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <systemProperties combine.children="append"> |
| <property> |
| <!-- Pass this through to the tests (if set!) to have them |
| pick the right repository layout --> |
| <name>maven.repo.local.layout</name> |
| <value>${maven.repo.local.layout}</value> |
| </property> |
| </systemProperties> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>jdk-properties</id> |
| <activation> |
| <jdk>(,1.8)</jdk> |
| </activation> |
| <properties> |
| <surefireMemory>-Xmx384m -XX:MaxPermSize=192m</surefireMemory> |
| </properties> |
| </profile> |
| <profile> |
| <id>embedded</id> |
| <build> |
| <plugins> |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <skip>false</skip> |
| <forkMode>once</forkMode> |
| <argLine>${surefireMemory} |
| -Dcom.sun.management.jmxremote=true</argLine> |
| <!-- NOTE: Maven plugins have access to the system class path |
| so keep it clean --> |
| <useSystemClassLoader>false</useSystemClassLoader> |
| <systemProperties combine.children="append"> |
| <property> |
| <name>verifier.forkMode</name> |
| <value>auto</value> |
| </property> |
| <property> |
| <name>emma.rt.control</name> |
| <value>false</value> |
| </property> |
| </systemProperties> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>maven-from-repo</id> |
| <activation> |
| <property> |
| <name>mavenVersion</name> |
| </property> |
| </activation> |
| <properties> |
| <mavenHome>${project.build.directory}/apache-maven</mavenHome> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <skip>false</skip> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>2.10</version> |
| <executions> |
| <execution> |
| <id>download-maven-distro</id> |
| <phase>process-test-resources</phase> |
| <goals> |
| <goal>copy</goal> |
| </goals> |
| <configuration> |
| <artifactItems> |
| <artifactItem> |
| <groupId>org.apache.maven</groupId> |
| <artifactId>apache-maven</artifactId> |
| <version>${mavenVersion}</version> |
| <classifier>bin</classifier> |
| <type>zip</type> |
| <destFileName>maven-bin.zip</destFileName> |
| </artifactItem> |
| </artifactItems> |
| <outputDirectory>${project.build.directory}</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>3.0.0</version> |
| <executions> |
| <execution> |
| <id>unpack-maven-distro</id> |
| <phase>process-test-resources</phase> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <configuration> |
| <target> |
| <delete dir="${mavenHome}" /> |
| <unzip src="${project.build.directory}/maven-bin.zip" |
| dest="${mavenHome}"> |
| <globmapper from="apache-maven-${mavenVersion}/*" |
| to="*" handledirsep="true" /> |
| </unzip> |
| <chmod dir="${mavenHome}/bin" perm="ugo+rx" |
| includes="mvn,mvnDebug" /> |
| </target> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>maven-distro</id> |
| <activation> |
| <property> |
| <name>mavenDistro</name> |
| </property> |
| </activation> |
| <properties> |
| <mavenHome>${project.build.directory}/apache-maven</mavenHome> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <skip>false</skip> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>3.0.0</version> |
| <executions> |
| <execution> |
| <id>unpack-maven-distro</id> |
| <phase>process-test-resources</phase> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <configuration> |
| <target> |
| <delete dir="${mavenHome}" /> |
| <unzip src="${mavenDistro}" dest="${mavenHome}"> |
| <regexpmapper from="^([^/]+)/(.*)$" |
| to="\2" handledirsep="true" /> |
| </unzip> |
| <chmod dir="${mavenHome}/bin" perm="ugo+rx" |
| includes="mvn,mvnDebug" /> |
| </target> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>maven-wrapper</id> |
| <activation> |
| <property> |
| <name>mavenWrapper</name> |
| </property> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-install-plugin</artifactId> |
| <version>2.5.2</version> |
| <executions> |
| <!-- install, so it can be called via a URL --> |
| <execution> |
| <id>prepare-wrapper</id> |
| <phase>process-test-resources</phase> |
| <goals> |
| <goal>install-file</goal> |
| </goals> |
| <configuration> |
| <file>${mavenWrapper}</file> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>emma</id> |
| <properties> |
| <preparedMavenHome>${project.build.directory}/distro</preparedMavenHome> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <skip>false</skip> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>3.0.0</version> |
| <executions> |
| <execution> |
| <id>copy-maven-distro</id> |
| <phase>process-test-classes</phase> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <configuration> |
| <target> |
| <delete dir="${preparedMavenHome}" /> |
| <copy todir="${preparedMavenHome}" overwrite="true"> |
| <fileset dir="${mavenHome}" /> |
| </copy> |
| <chmod dir="${preparedMavenHome}/bin" perm="ugo+rx" |
| includes="mvn,mvnDebug" /> |
| </target> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>2.0</version> |
| <executions> |
| <execution> |
| <id>inject-emma-into-core-realm</id> |
| <phase>process-test-classes</phase> |
| <goals> |
| <goal>copy</goal> |
| </goals> |
| <configuration> |
| <artifactItems> |
| <artifactItem> |
| <groupId>emma</groupId> |
| <artifactId>emma</artifactId> |
| <version>2.1.5320</version> |
| </artifactItem> |
| </artifactItems> |
| <outputDirectory>${preparedMavenHome}/lib</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.sonatype.maven.plugin</groupId> |
| <artifactId>emma4it-maven-plugin</artifactId> |
| <version>1.2</version> |
| <configuration> |
| <jarSets> |
| <jarSet> |
| <directory>${preparedMavenHome}/lib</directory> |
| <includes> |
| <include>maven*.jar</include> |
| </includes> |
| </jarSet> |
| </jarSets> |
| <includes> |
| <include>org.apache.maven.*</include> |
| </includes> |
| <excludes> |
| <exclude>*.io.xpp3.*</exclude> |
| <exclude>*Exception</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <execution> |
| <id>instrument</id> |
| <phase>process-test-classes</phase> |
| <goals> |
| <goal>instrument</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>report</id> |
| <phase>test</phase> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-clean-plugin</artifactId> |
| <configuration> |
| <filesets> |
| <fileset> |
| <directory>${basedir}</directory> |
| <includes> |
| <include>coverage.ec</include> |
| </includes> |
| </fileset> |
| </filesets> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>proxy</id> |
| <activation> |
| <property> |
| <name>proxy.host</name> |
| </property> |
| </activation> |
| <properties> |
| <proxy.type>http</proxy.type> |
| <proxy.active>true</proxy.active> |
| </properties> |
| </profile> |
| </profiles> |
| </project> |