You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by if...@apache.org on 2013/11/24 06:23:35 UTC
svn commit: r1544919 - in
/maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it:
Embedded3xLauncher.java Verifier.java
Author: ifedorenko
Date: Sun Nov 24 05:23:35 2013
New Revision: 1544919
URL: http://svn.apache.org/r1544919
Log:
Introduced hooks to support IDE workspace dependency resolution
New -Dmaven.bootclasspath and -Dclassworlds.conf allow an IDE like
m2e control contents of Maven runtime used by verifier embedded
mode and use classes from IDE workspace instead of deployed
or installed artifacts.
Signed-off-by: Igor Fedorenko <ig...@ifedorenko.com>
Modified:
maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Embedded3xLauncher.java
maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Verifier.java
Modified: maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Embedded3xLauncher.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Embedded3xLauncher.java?rev=1544919&r1=1544918&r2=1544919&view=diff
==============================================================================
--- maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Embedded3xLauncher.java (original)
+++ maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Embedded3xLauncher.java Sun Nov 24 05:23:35 2013
@@ -59,7 +59,7 @@ class Embedded3xLauncher
/**
* Launches an embedded Maven 3.x instance from some Maven installation directory.
*/
- public static Embedded3xLauncher createFromMavenHome( String mavenHome )
+ public static Embedded3xLauncher createFromMavenHome( String mavenHome, String classworldConf, List<URL> classpath )
throws LauncherException
{
if ( mavenHome == null || mavenHome.length() <= 0 )
@@ -69,9 +69,17 @@ class Embedded3xLauncher
System.setProperty( "maven.home", mavenHome );
- File config = new File( mavenHome, "bin/m2.conf" );
+ File config;
+ if ( classworldConf != null )
+ {
+ config = new File( classworldConf );
+ }
+ else
+ {
+ config = new File( mavenHome, "bin/m2.conf" );
+ }
- ClassLoader bootLoader = getBootLoader( mavenHome );
+ ClassLoader bootLoader = getBootLoader( mavenHome, classpath );
ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader( bootLoader );
@@ -167,13 +175,17 @@ class Embedded3xLauncher
}
}
- private static ClassLoader getBootLoader( String mavenHome )
+ private static ClassLoader getBootLoader( String mavenHome, List<URL> classpath )
{
- File bootDir = new File( mavenHome, "boot" );
+ List<URL> urls = classpath;
- List<URL> urls = new ArrayList<URL>();
+ if ( urls == null )
+ {
+ urls = new ArrayList<URL>();
- addUrls( urls, bootDir );
+ File bootDir = new File( mavenHome, "boot" );
+ addUrls( urls, bootDir );
+ }
if ( urls.isEmpty() )
{
Modified: maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Verifier.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Verifier.java?rev=1544919&r1=1544918&r2=1544919&view=diff
==============================================================================
--- maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Verifier.java (original)
+++ maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Verifier.java Sun Nov 24 05:23:35 2013
@@ -106,6 +106,10 @@ public class Verifier
private String defaultMavenHome;
+ private String defaultClassworldConf;
+
+ private String defaultClasspath;
+
// will launch mvn with --debug
private boolean mavenDebug = false;
@@ -174,6 +178,8 @@ public class Verifier
private void findDefaultMavenHome()
throws VerificationException
{
+ defaultClasspath = System.getProperty("maven.bootclasspath");
+ defaultClassworldConf = System.getProperty("classworlds.conf");
defaultMavenHome = System.getProperty( "maven.home" );
if ( defaultMavenHome == null )
@@ -1397,9 +1403,33 @@ public class Verifier
}
else
{
- embeddedLauncher = Embedded3xLauncher.createFromMavenHome( defaultMavenHome );
+ embeddedLauncher =
+ Embedded3xLauncher.createFromMavenHome( defaultMavenHome, defaultClassworldConf, getClasspath() );
+ }
+ }
+ }
+
+ private List<URL> getClasspath()
+ throws LauncherException
+ {
+ if ( defaultClasspath == null )
+ {
+ return null;
+ }
+ ArrayList<URL> classpath = new ArrayList<URL>();
+ StringTokenizer st = new StringTokenizer( defaultClasspath, File.pathSeparator );
+ while ( st.hasMoreTokens() )
+ {
+ try
+ {
+ classpath.add( new File( st.nextToken() ).toURI().toURL() );
+ }
+ catch ( MalformedURLException e )
+ {
+ throw new LauncherException( "Invalid launcher classpath " + defaultClasspath, e );
}
}
+ return classpath;
}
public String getMavenVersion()