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? -->
  
  
  

Reply via email to