brett 2005/04/03 19:31:57
Modified: maven-mboot2/src/main/java/model Dependency.java
maven-mboot2/src/main/java/util IsolatedClassLoader.java
maven-mboot2/src/main/java MBoot.java
maven-mboot2 pom.xml
Log:
read plugin deps from pluggy pom
Revision Changes Path
1.3 +8 -1
maven-components/maven-mboot2/src/main/java/model/Dependency.java
Index: Dependency.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-mboot2/src/main/java/model/Dependency.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Dependency.java 4 Apr 2005 02:01:49 -0000 1.2
+++ Dependency.java 4 Apr 2005 02:31:56 -0000 1.3
@@ -43,6 +43,13 @@
{
}
+ public Dependency( String groupId, String artifactId, String version )
+ {
+ this.version = version;
+ this.artifactId = artifactId;
+ this.groupId = groupId;
+ }
+
public void setId( String id )
{
this.id = id;
1.2 +8 -2
maven-components/maven-mboot2/src/main/java/util/IsolatedClassLoader.java
Index: IsolatedClassLoader.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-mboot2/src/main/java/util/IsolatedClassLoader.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IsolatedClassLoader.java 5 Dec 2004 04:12:25 -0000 1.1
+++ IsolatedClassLoader.java 4 Apr 2005 02:31:56 -0000 1.2
@@ -6,11 +6,17 @@
public class IsolatedClassLoader
extends URLClassLoader
{
- private ClassLoader parent = ClassLoader.getSystemClassLoader();
+ private ClassLoader parent;
public IsolatedClassLoader()
{
- super( new URL[0], null );
+ this( ClassLoader.getSystemClassLoader() );
+ }
+
+ public IsolatedClassLoader( ClassLoader parent )
+ {
+ super( new URL[0] );
+ this.parent = parent;
}
public void addURL( URL url )
1.84 +25 -47 maven-components/maven-mboot2/src/main/java/MBoot.java
Index: MBoot.java
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot2/src/main/java/MBoot.java,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- MBoot.java 4 Apr 2005 02:01:49 -0000 1.83
+++ MBoot.java 4 Apr 2005 02:31:56 -0000 1.84
@@ -32,16 +32,6 @@
public class MBoot
{
- String[] pluginGeneratorDeps = new
String[]{"plexus/jars/plexus-container-default-1.0-alpha-2.jar",
- "qdox/jars/qdox-1.2.jar",
-
"org.apache.maven/jars/maven-core-2.0-SNAPSHOT.jar",
-
"org.apache.maven/jars/maven-artifact-2.0-SNAPSHOT.jar",
-
"org.apache.maven/jars/maven-model-2.0-SNAPSHOT.jar",
-
"org.apache.maven/jars/maven-plugin-2.0-SNAPSHOT.jar",
-
"org.apache.maven/jars/maven-plugin-tools-api-2.0-SNAPSHOT.jar",
-
"org.apache.maven/jars/maven-plugin-tools-java-2.0-SNAPSHOT.jar",
-
"org.apache.maven/jars/maven-plugin-tools-pluggy-2.0-SNAPSHOT.jar"};
-
String[] builds = new String[]{"maven-model", "maven-settings",
"maven-monitor", "maven-plugin", "maven-artifact",
"maven-script/maven-script-marmalade",
"maven-core", "maven-archiver",
"maven-plugin-tools/maven-plugin-tools-api",
@@ -107,8 +97,6 @@
private boolean online = true;
- private IsolatedClassLoader bootstrapClassLoader;
-
private static final String[] EMPTY_STRING_ARRAY = new String[0];
private static final String SCOPE_TEST = "test";
@@ -264,7 +252,8 @@
String basedir = System.getProperty( "user.dir" );
reader.parse( new File( basedir, "maven-mboot2/pom.xml" ) );
- bootstrapClassLoader = createClassloaderFromDependencies(
reader.getDependencies() );
+
+ ClassLoader bootstrapClassLoader =
createClassloaderFromDependencies( reader.getDependencies(), null );
reader = new ModelReader( downloader );
@@ -293,7 +282,7 @@
System.setProperty( "basedir", directory );
- reader = buildProject( directory, builds[i] );
+ reader = buildProject( directory, builds[i],
bootstrapClassLoader );
if ( reader.getArtifactId().equals( "maven-core" ) )
{
@@ -303,7 +292,11 @@
System.out.println(
"--------------------------------------------------------------------" );
}
- addPluginGeneratorDependencies( bootstrapClassLoader );
+ reader = new ModelReader( downloader );
+ reader.parse( new File( basedir,
"maven-plugin-tools/maven-plugin-tools-pluggy/pom.xml" ) );
+ List dependencies = new ArrayList( reader.getDependencies() );
+ dependencies.add( new Dependency( reader.getGroupId(),
reader.getArtifactId(), reader.getVersion() ) );
+ IsolatedClassLoader cl = createClassloaderFromDependencies(
dependencies, bootstrapClassLoader );
for ( int i = 0; i < pluginBuilds.length; i++ )
{
@@ -315,7 +308,7 @@
System.setProperty( "basedir", directory );
- reader = buildProject( directory, pluginBuilds[i] );
+ reader = buildProject( directory, pluginBuilds[i], cl );
System.out.println(
"--------------------------------------------------------------------" );
}
@@ -434,7 +427,7 @@
System.out.println( "Finished at: " + fullStop );
}
- public ModelReader buildProject( String basedir, String projectId )
+ public ModelReader buildProject( String basedir, String projectId,
ClassLoader classLoader )
throws Exception
{
System.out.println( "Building project in " + basedir );
@@ -520,14 +513,12 @@
System.out.println(
"Generating model bindings for version \'" + modelVersion +
"\' in project: " + projectId );
- generateSources( model.getAbsolutePath(), "java",
generatedSources, modelVersion, "false",
- bootstrapClassLoader );
+ generateSources( model.getAbsolutePath(), "java",
generatedSources, modelVersion, "false", classLoader );
generateSources( model.getAbsolutePath(), "xpp3-reader",
generatedSources, modelVersion, "false",
- bootstrapClassLoader );
+ classLoader );
generateSources( model.getAbsolutePath(), "xpp3-writer",
generatedSources, modelVersion, "false",
- bootstrapClassLoader );
- generateSources( model.getAbsolutePath(), "xdoc", generatedDocs,
modelVersion, "false",
- bootstrapClassLoader );
+ classLoader );
+ generateSources( model.getAbsolutePath(), "xdoc", generatedDocs,
modelVersion, "false", classLoader );
}
//
----------------------------------------------------------------------
@@ -554,7 +545,7 @@
System.out.println( "Generating maven plugin descriptor ..." );
generatePluginDescriptor( sources, new File( classes,
"META-INF/maven" ).getAbsolutePath(),
- new File( basedir, "pom.xml"
).getAbsolutePath(), bootstrapClassLoader );
+ new File( basedir, "pom.xml"
).getAbsolutePath(), classLoader );
}
//
----------------------------------------------------------------------
@@ -611,27 +602,6 @@
return reader;
}
- private void addPluginGeneratorDependencies( IsolatedClassLoader cl )
- throws Exception
- {
- // TODO: create a separate class loader
-
- for ( int i = 0; i < pluginGeneratorDeps.length; i++ )
- {
- String dependency = pluginGeneratorDeps[i];
-
- File f = new File( repoLocal, dependency );
- if ( !f.exists() )
- {
- throw new FileNotFoundException(
- "Missing dependency: " + dependency +
- ( !online ? "; run again online" : "; there was a
problem downloading it earlier" ) );
- }
-
- cl.addURL( f.toURL() );
- }
- }
-
private void generatePluginDescriptor( String sourceDirectory, String
outputDirectory, String pom, ClassLoader cl )
throws Exception
{
@@ -665,7 +635,7 @@
Thread.currentThread().setContextClassLoader( old );
}
- private IsolatedClassLoader createClassloaderFromDependencies( List
dependencies )
+ private IsolatedClassLoader createClassloaderFromDependencies( List
dependencies, ClassLoader parent )
throws Exception
{
if ( online )
@@ -675,7 +645,15 @@
downloader.downloadDependencies( dependencies );
}
- IsolatedClassLoader cl = new IsolatedClassLoader();
+ IsolatedClassLoader cl;
+ if ( parent == null )
+ {
+ cl = new IsolatedClassLoader();
+ }
+ else
+ {
+ cl = new IsolatedClassLoader( parent );
+ }
for ( Iterator i = dependencies.iterator(); i.hasNext(); )
{
1.6 +6 -5 maven-components/maven-mboot2/pom.xml
Index: pom.xml
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot2/pom.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- pom.xml 4 Apr 2005 01:36:58 -0000 1.5
+++ pom.xml 4 Apr 2005 02:31:56 -0000 1.6
@@ -12,29 +12,28 @@
<description>Tool used to bootstrap m2.</description>
<dependencies>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- </dependency>
- <dependency>
<groupId>org.codehaus.modello</groupId>
<artifactId>modello</artifactId>
<version>core-1.0-alpha-1</version>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.codehaus.modello</groupId>
<artifactId>modello</artifactId>
<version>xdoc-plugin-1.0-alpha-1</version>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.codehaus.modello</groupId>
<artifactId>modello</artifactId>
<version>xml-plugin-1.0-alpha-1</version>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.codehaus.modello</groupId>
<artifactId>modello</artifactId>
<version>xpp3-plugin-1.0-alpha-1</version>
+ <scope>runtime</scope>
</dependency>
<!-- TODO: should get these from the surefire plugin -->
@@ -42,11 +41,13 @@
<groupId>surefire</groupId>
<artifactId>surefire-booter</artifactId>
<version>1.2</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>surefire</groupId>
<artifactId>surefire</artifactId>
<version>1.2</version>
+ <scope>test</scope>
</dependency>
<!-- Just for install... possibly not needed here? -->