You are viewing a plain text version of this content. The canonical link for it is here.
Posted to surefire-commits@maven.apache.org by mk...@apache.org on 2008/04/18 12:00:13 UTC
svn commit: r649441 - in /maven/surefire/trunk/maven-surefire-plugin:
pom.xml src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java
Author: mkleint
Date: Fri Apr 18 03:00:12 2008
New Revision: 649441
URL: http://svn.apache.org/viewvc?rev=649441&view=rev
Log:
MNG-468 add toolchains support to the surefire plugin. It recoginizes the "jdk" toolchain now. bumped the required version of maven to 2.0.6. Will only actually work in conjunction with maven-toolchains-plugin in 2.0.9+, but the plugin still works without toolchains in older versions (2.0.6+)
Modified:
maven/surefire/trunk/maven-surefire-plugin/pom.xml
maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java
Modified: maven/surefire/trunk/maven-surefire-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-plugin/pom.xml?rev=649441&r1=649440&r2=649441&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-plugin/pom.xml (original)
+++ maven/surefire/trunk/maven-surefire-plugin/pom.xml Fri Apr 18 03:00:12 2008
@@ -29,6 +29,9 @@
<groupId>org.apache.maven.plugins</groupId>
<packaging>maven-plugin</packaging>
<name>Maven Surefire Plugin</name>
+ <prerequisites>
+ <maven>2.0.6</maven>
+ </prerequisites>
<mailingLists>
<!-- duplication from maven-plugins pom - temporary until they inherit properly -->
<mailingList>
@@ -89,7 +92,7 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
- <version>2.0</version>
+ <version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
@@ -102,19 +105,24 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
- <version>2.0</version>
+ <version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
- <version>2.0</version>
+ <version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
- <version>2.0</version>
+ <version>2.0.6</version>
</dependency>
- </dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-toolchain</artifactId>
+ <version>1.0</version>
+ </dependency>
+</dependencies>
<build>
<plugins>
Modified: maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java?rev=649441&r1=649440&r2=649441&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java (original)
+++ maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java Fri Apr 18 03:00:12 2008
@@ -59,6 +59,9 @@
import java.util.Map;
import java.util.Properties;
import org.apache.maven.execution.MavenSession;
+import org.apache.maven.toolchain.Toolchain;
+import org.apache.maven.toolchain.ToolchainManager;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
/**
* Run tests using Surefire.
@@ -814,7 +817,24 @@
surefireBooter.addClassPathUrl( classpathElement );
}
-
+
+ Toolchain tc = getToolchain();
+
+ if (tc != null)
+ {
+ getLog().info("Toolchain in surefire-plugin: " + tc);
+ if (ForkConfiguration.FORK_NEVER.equals( forkMode ) )
+ {
+ forkMode = ForkConfiguration.FORK_ONCE;
+ }
+ if ( jvm != null )
+ {
+ getLog().warn("Toolchains are ignored, 'executable' parameter is set to " + jvm);
+ } else {
+ jvm = tc.findTool("java"); //NOI18N
+ }
+ }
+
if ( additionalClasspathElements != null )
{
for ( Iterator i = additionalClasspathElements.iterator(); i.hasNext(); )
@@ -1082,5 +1102,26 @@
public void setSkipExec( boolean skipExec )
{
this.skipTests = skipExec;
+ }
+
+ //TODO remove the part with ToolchainManager lookup once we depend on
+ //3.0.9 (have it as prerequisite). Define as regular component field then.
+ private Toolchain getToolchain()
+ {
+ Toolchain tc = null;
+ try
+ {
+ if (session != null) //session is null in tests..
+ {
+ ToolchainManager toolchainManager = (ToolchainManager) session.getContainer().lookup(ToolchainManager.ROLE);
+ if (toolchainManager != null)
+ {
+ tc = toolchainManager.getToolchainFromBuildContext("jdk", session);
+ }
+ }
+ } catch (ComponentLookupException componentLookupException) {
+ //just ignore, could happen in pre-3.0.9 builds..
+ }
+ return tc;
}
}