You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by bw...@apache.org on 2003/04/27 22:50:43 UTC

cvs commit: maven-new/core/src/java/org/apache/maven DefaultMaven.java

bwalding    2003/04/27 13:50:43

  Modified:    core/src/test/org/apache/maven DefaultMavenTest.java
               core/src/java/org/apache/maven/plugin
                        DefaultPluginManager.java
               core/src/java/org/apache/maven DefaultMaven.java
  Removed:     core/src/java/org/apache/maven/plugins/suiterunner
                        DefaultSuiteRunnerPlugin.java
                        SuiteRunnerPlugin.java
               core/src/test/org/apache/maven/plugins/suiterunner
                        SuiteRunnerComponentTest.xml test-project.xml
                        SuiteRunnerComponentTest.java
  Log:
  
  
  Revision  Changes    Path
  1.2       +5 -3      maven-new/core/src/test/org/apache/maven/DefaultMavenTest.java
  
  Index: DefaultMavenTest.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/test/org/apache/maven/DefaultMavenTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultMavenTest.java	26 Apr 2003 16:52:16 -0000	1.1
  +++ DefaultMavenTest.java	27 Apr 2003 20:50:43 -0000	1.2
  @@ -70,7 +70,7 @@
       public void testGetComponent() throws Exception
       {
           Maven maven = (Maven) getComponent(Maven.ROLE);
  -        assertNotNull(maven);
  +        assertNotNull(maven);        
       }
   
       public void testComponent() throws Exception
  @@ -78,8 +78,10 @@
           Maven maven = (Maven) getComponent(Maven.ROLE);
           assertNotNull(maven);
           maven.setProjectFile(new File(System.getProperty("basedir") + "/src/test-input/project.xml"));
  +        maven.setMavenHome(new File(System.getProperty("maven.home")));
  +        maven.setMavenRepoLocal(new File(System.getProperty("maven.home"), "repository"));
   
  -        maven.addGoal("suiterunner:test");
  -        maven.attainGoals();
  +        //maven.addGoal("suiterunner:test");
  +        //maven.attainGoals();
       }
   }
  
  
  
  1.4       +76 -15    maven-new/core/src/java/org/apache/maven/plugin/DefaultPluginManager.java
  
  Index: DefaultPluginManager.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/plugin/DefaultPluginManager.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DefaultPluginManager.java	27 Apr 2003 01:10:04 -0000	1.3
  +++ DefaultPluginManager.java	27 Apr 2003 20:50:43 -0000	1.4
  @@ -1,5 +1,8 @@
   package org.apache.maven.plugin;
   
  +import java.io.File;
  +import java.net.MalformedURLException;
  +import java.net.URL;
   import java.util.ArrayList;
   import java.util.Collections;
   import java.util.Iterator;
  @@ -9,12 +12,19 @@
   import org.apache.avalon.framework.service.ServiceException;
   import org.apache.avalon.framework.service.ServiceManager;
   import org.apache.avalon.framework.service.Serviceable;
  +import org.apache.maven.DefaultMaven;
   import org.apache.maven.Maven;
  -import org.apache.maven.plugins.suiterunner.DefaultSuiteRunnerPlugin;
  +import org.apache.maven.classworld.ClassWorldService;
  +import org.apache.maven.project.Dependency;
   import org.apache.maven.project.Project;
  +import org.apache.maven.repository.GenericArtifact;
   import org.apache.plexus.context.DefaultContext;
   import org.apache.plexus.logging.AbstractLogEnabled;
   
  +import com.werken.classworlds.ClassRealm;
  +import com.werken.classworlds.ClassWorld;
  +import com.werken.classworlds.DuplicateRealmException;
  +import com.werken.classworlds.NoSuchRealmException;
   import com.werken.werkz.Action;
   import com.werken.werkz.CyclicGoalChainException;
   import com.werken.werkz.Goal;
  @@ -24,6 +34,7 @@
   public class DefaultPluginManager extends AbstractLogEnabled implements PluginManager, Serviceable
   {
       private ServiceManager serviceManager;
  +    private ClassWorldService classWorldService;
   
       /* (non-Javadoc)
        * @see org.apache.maven.plugin.PluginManager#getPlugin(java.lang.String)
  @@ -33,11 +44,12 @@
           for (Iterator iter = getPlugins().iterator(); iter.hasNext();)
           {
               Plugin plugin = (Plugin) iter.next();
  -            if (plugin.getId().equals(id)) { 
  +            if (plugin.getId().equals(id))
  +            {
                   return plugin;
               }
           }
  -        
  +
           throw new RuntimeException("No plugin found : " + id);
       }
   
  @@ -47,13 +59,46 @@
       List plugins = null;
       public List getPlugins()
       {
  -        if (plugins == null) {
  +        if (plugins == null)
  +        {
               List l = new ArrayList();
  -            
  -            //XXX plexusify
  -            l.add(new DefaultSuiteRunnerPlugin());
  -            
  +
               //XXX plexusify
  +            try
  +            {
  +                ClassRealm realm = null;
  +                
  +                ClassWorld classWorld = classWorldService.getClassWorld();
  +                for (Iterator iter = classWorld.getRealms().iterator(); iter.hasNext();)
  +                {
  +                    ClassRealm r = (ClassRealm) iter.next();
  +                    System.out.println("Known Realm:" + r.getId());
  +                }
  +                
  +                try {
  +                    realm = classWorldService.getClassWorld().newRealm("maven-new:plugin-suiterunner");
  +                } catch (DuplicateRealmException e) {
  +                    realm = classWorldService.getClassWorld().getRealm("maven-new:plugin-suiterunner");
  +                }
  +             
  +             
  +                realm.addConstituent(getJar("maven-new", "core", "SNAPSHOT"));
  +                realm.addConstituent(getJar("maven-new", "plugin-suiterunner", "SNAPSHOT"));
  +                realm.addConstituent(getJar("avalon", "avalon-framework-api", "4.1.4"));
  +                realm.addConstituent(getJar("plexus", "plexus", "0.3"));
  +                //realm.importFrom(DefaultMaven.ROOT_REALM, "org.apache.maven.plugin");
  +                //realm.importFrom(DefaultMaven.ROOT_REALM, "org.apache.maven");
  +                
  +                //XXX plexusify
  +                Class c = realm.loadClass("org.apache.maven.plugins.suiterunner.DefaultSuiteRunnerPlugin");
  +                System.out.println(c.getInterfaces()[0]);
  +                l.add(c.newInstance());
  +            }
  +            catch (Exception e)
  +            {
  +                e.printStackTrace();
  +                throw new RuntimeException(e.getLocalizedMessage());
  +            }
               /*
               JellyPlugin jp = new DefaultJellyPlugin();
               File pluginPath = new File(System.getProperty(MavenConstants.MAVEN_HOME) + "/plugins/maven-eclipse-plugin-1.3");
  @@ -61,12 +106,26 @@
               jp.load(pluginPath);
               l.add(jp);
               */
  -            
  +
               plugins = Collections.unmodifiableList(l);
           }
           return plugins;
       }
   
  +    URL getJar(String groupId, String artifactId, String version) throws DuplicateRealmException, MalformedURLException
  +    {
  +        Dependency d = new Dependency();
  +        d.setId(groupId + ":" + artifactId);
  +        d.setVersion(version);
  +        d.setType("jar");
  +        GenericArtifact arti = new GenericArtifact(d);
  +
  +        File artif = new File(System.getProperty("maven.home") + "/repository/" + arti.getPath());
  +        URL url = artif.toURL();
  +        System.out.println("Adding JAR:" + url);
  +        return url;
  +    }
  +
       /* (non-Javadoc)
        * @see org.apache.maven.plugin.PluginManager#attainGoals(org.apache.avalon.framework.context.Context)
        */
  @@ -81,14 +140,14 @@
               while (goalIter.hasNext())
               {
                   String goal = (String) goalIter.next();
  -                werkzProject.attainGoal(goal,session);    
  +                werkzProject.attainGoal(goal, session);
               }
           }
           catch (Exception ex)
           {
               ex.printStackTrace();
               throw new RuntimeException(ex.getLocalizedMessage());
  -        } 
  +        }
       }
   
       /**
  @@ -107,17 +166,20 @@
   
       final DefaultContext goalExecutionContext = new DefaultContext();
       final WerkzProject werkzProject = new WerkzProject();
  -    
  +
       public void service(ServiceManager serviceManager) throws ServiceException
       {
           this.serviceManager = serviceManager;
  -        
  +        classWorldService = (ClassWorldService) serviceManager.lookup(ClassWorldService.ROLE);
   
           //For each plugin
           Iterator pluginIter = getPlugins().iterator();
           while (pluginIter.hasNext())
           {
  -            final Plugin plugin = (Plugin) pluginIter.next();
  +             Object o = pluginIter.next();
  +             System.out.println("Object:" + o);
  +            final Plugin plugin = (Plugin) o;
  +            
               Iterator goalIter = plugin.getGoals().iterator();
               while (goalIter.hasNext())
               {
  @@ -169,5 +231,4 @@
   
       }
   
  -    
   }
  
  
  
  1.5       +32 -21    maven-new/core/src/java/org/apache/maven/DefaultMaven.java
  
  Index: DefaultMaven.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/DefaultMaven.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultMaven.java	27 Apr 2003 13:49:02 -0000	1.4
  +++ DefaultMaven.java	27 Apr 2003 20:50:43 -0000	1.5
  @@ -112,7 +112,7 @@
       // ------------------------------------------------------------
   
       /** */
  -    private static final String ROOT_REALM = "root";
  +    public static final String ROOT_REALM = "root";
   
       // ----------------------------------------------------------------------
       //  Options
  @@ -160,7 +160,7 @@
       /** Execution time. */
       private Date startTime;
       private Date endTime;
  -    
  +
       // ----------------------------------------------------------------------
       //  Errors
       // ----------------------------------------------------------------------
  @@ -210,8 +210,28 @@
       // ----------------------------------------------------------------------
       public void service(ServiceManager serviceManager) throws ServiceException
       {
  -        System.out.println("service called : serviceManager:" + serviceManager.getClass());
  +        ClassWorldService cws = (ClassWorldService) serviceManager.lookup(ClassWorldService.ROLE);
  +        try
  +        {
  +            rootClassRealm = cws.getClassWorld().getRealm(ROOT_REALM);
  +        }
  +        catch (NoSuchRealmException nre)
  +        {
  +            try
  +            {
  +                rootClassRealm = cws.getClassWorld().newRealm(ROOT_REALM);
  +            }
  +            catch (DuplicateRealmException dre)
  +            {
  +                //We shouldn't be able to get here.
  +                dre.printStackTrace();
  +            }
  +        }
  +        Thread.currentThread().setContextClassLoader(rootClassRealm.getClassLoader());
           
  +
  +        System.out.println("service called : serviceManager:" + serviceManager.getClass());
  +
           projectBuilder = (ProjectBuilder) serviceManager.lookup(ProjectBuilder.ROLE);
           projectUnmarshaller = (ProjectUnmarshaller) serviceManager.lookup(ProjectUnmarshaller.ROLE);
           dependencyVerifier = (DependencyVerifier) serviceManager.lookup(DependencyVerifier.ROLE);
  @@ -221,18 +241,7 @@
           System.out.println("projectUnmarshaller: " + projectUnmarshaller);
           System.out.println("localSettingsVerifier: " + localSettingsVerifier);
           System.out.println("dependencyVerifier: " + dependencyVerifier);
  -        ClassWorldService cws = (ClassWorldService) serviceManager.lookup(ClassWorldService.ROLE);
  -        try {
  -            rootClassRealm = cws.getClassWorld().getRealm(ROOT_REALM);
  -        } catch (NoSuchRealmException nre) {
  -            try {
  -                rootClassRealm = cws.getClassWorld().newRealm(ROOT_REALM);
  -            } catch (DuplicateRealmException dre) {
  -                //We shouldn't be able to get here.
  -                dre.printStackTrace();  
  -            }
  -        }  
  -        
  +
       }
   
       /** Perform pre-build initialization.
  @@ -253,6 +262,10 @@
       public void setProjectFile(File projectFile)
       {
           this.projectFile = projectFile;
  +        //XXX BAD!
  +        String basedir = projectFile.getParentFile().getName();
  +        System.setProperty("basedir", basedir);
  +        System.out.println("basedir is set to " + basedir);
       }
   
       public void setProject(Project project)
  @@ -269,7 +282,7 @@
                   System.out.println("ProjectUnmarshaller:" + projectUnmarshaller);
                   project = projectUnmarshaller.parse(new FileReader(projectFile));
               }
  -            
  +
               return project;
           }
           catch (Exception e)
  @@ -366,10 +379,9 @@
   
       public long getExecutionDuration()
       {
  -       return getEndTime().getTime() - getStartTime().getTime();
  +        return getEndTime().getTime() - getStartTime().getTime();
       }
   
  -    
       /**
        *
        * @return
  @@ -540,7 +552,6 @@
   
           setEndTime(new Date());
   
  -       
           return returnCode;
       }
   
  @@ -552,7 +563,7 @@
           //FIXME BRW: Shouldn't be hardwired to plexus (I think)
           DefaultContext context = new DefaultContext();
           context.put(Project.CONTEXT_KEY, getRootProject());
  -        
  +
           getPluginManager().attainGoals(context, goals);
       }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org