You are viewing a plain text version of this content. The canonical link for it is here.
Posted to m2-dev@maven.apache.org by jv...@apache.org on 2004/06/17 16:45:47 UTC

cvs commit: maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase GoalAttainmentPhase.java GoalResolutionPhase.java

jvanzyl     2004/06/17 07:45:47

  Modified:    maven-core/src/main/java/org/apache/maven/lifecycle
                        MavenLifecycleContext.java
               maven-core/src/main/java/org/apache/maven/lifecycle/phase
                        GoalAttainmentPhase.java GoalResolutionPhase.java
  Log:
  o broke up the goal attainment into a:
  
    goal resolution phase
    goal attainment phase
  
    This in part to help with John's work on cleanly separating the goal
    decoration phase
  
  o put some helper code into the maven lifecycle context so that phases can
    get information about goals and plugin descriptors without having to
    lookup the plugin manager. and i want to hide the plugin manager anyway.
  
    eventually people will be making their own phases so i'm trying to make
    them as convenient as possible.
  
  o it is now possible to access any plexus component within a phase by using
    the context.lookup(role[,roleHint]) method. so a phase now can take
    advantage of any component.
  
  Revision  Changes    Path
  1.4       +44 -1     maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/MavenLifecycleContext.java
  
  Index: MavenLifecycleContext.java
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/MavenLifecycleContext.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MavenLifecycleContext.java	17 Jun 2004 00:07:23 -0000	1.3
  +++ MavenLifecycleContext.java	17 Jun 2004 14:45:47 -0000	1.4
  @@ -3,9 +3,13 @@
   import org.apache.maven.project.MavenProject;
   import org.apache.maven.script.MavenScript;
   import org.apache.maven.plugin.descriptor.Goal;
  +import org.apache.maven.plugin.PluginManager;
   import org.codehaus.plexus.PlexusContainer;
   import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
   
  +import java.util.List;
  +import java.util.Map;
  +
   /**
    * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
    * @version $Id$
  @@ -20,13 +24,20 @@
   
       private Goal goal;
   
  +    private List resolvedGoals;
  +
  +    private PluginManager pluginManager;
  +
       public MavenLifecycleContext( PlexusContainer container, MavenProject project, Goal goal )
  +        throws Exception
       {
           this.container = container;
   
           this.project = project;
   
           this.goal = goal;
  +
  +        pluginManager = (PluginManager) lookup( PluginManager.ROLE );
       }
   
       // ----------------------------------------------------------------------
  @@ -88,4 +99,36 @@
           this.script = script;
       }
   
  +    // ----------------------------------------------------------------------
  +    // Resolved goals
  +    // ----------------------------------------------------------------------
  +
  +    public List getResolvedGoals()
  +    {
  +        return resolvedGoals;
  +    }
  +
  +    public void setResolvedGoals( List resolvedGoals )
  +    {
  +        this.resolvedGoals = resolvedGoals;
  +    }
  +
  +    // ----------------------------------------------------------------------
  +    // Delegation to the plugin manager
  +    // ----------------------------------------------------------------------
  +
  +    public Goal getGoal( String goalName )
  +    {
  +        return pluginManager.getGoal( goalName );
  +    }
  +
  +    public Map createParameters( Goal goal )
  +    {
  +        return pluginManager.createParameters( goal, project );
  +    }
  +
  +    public String getPluginId( Goal goal )
  +    {
  +        return pluginManager.getPluginDescriptor( goal.getName() ).getId();
  +    }
   }
  
  
  
  1.4       +7 -13     maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase/GoalAttainmentPhase.java
  
  Index: GoalAttainmentPhase.java
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase/GoalAttainmentPhase.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- GoalAttainmentPhase.java	17 Jun 2004 01:16:02 -0000	1.3
  +++ GoalAttainmentPhase.java	17 Jun 2004 14:45:47 -0000	1.4
  @@ -1,19 +1,17 @@
   package org.apache.maven.lifecycle.phase;
   
  +import org.apache.maven.artifact.collector.ArtifactCollectionResult;
  +import org.apache.maven.artifact.collector.ArtifactCollector;
   import org.apache.maven.lifecycle.AbstractMavenLifecyclePhase;
   import org.apache.maven.lifecycle.MavenLifecycleContext;
   import org.apache.maven.plugin.Plugin;
   import org.apache.maven.plugin.PluginExecutionRequest;
   import org.apache.maven.plugin.PluginExecutionResponse;
  -import org.apache.maven.plugin.PluginManager;
   import org.apache.maven.plugin.descriptor.Goal;
   import org.apache.maven.project.MavenProject;
   import org.apache.maven.project.MavenProjectBuilder;
  -import org.apache.maven.artifact.collector.ArtifactCollector;
  -import org.apache.maven.artifact.collector.ArtifactCollectionResult;
   
   import java.util.Iterator;
  -import java.util.List;
   
   /**
    * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  @@ -25,21 +23,17 @@
       public void execute( MavenLifecycleContext context )
           throws Exception
       {
  -        PluginManager pluginManager = (PluginManager) context.getContainer().lookup( PluginManager.ROLE );
  -
  -        List goals = pluginManager.getGoals( context.getGoal().getName() );
  -
           PluginExecutionResponse response;
   
           PluginExecutionRequest request;
   
           boolean transitiveDependenciesResolved = false;
   
  -        for ( Iterator it = goals.iterator(); it.hasNext(); )
  +        for ( Iterator it = context.getResolvedGoals().iterator(); it.hasNext(); )
           {
               String goalName = (String) it.next();
   
  -            Goal goal = pluginManager.getGoal( goalName );
  +            Goal goal = context.getGoal( goalName );
   
               System.out.println( "[" + goal.getName() + "]" );
   
  @@ -50,13 +44,13 @@
                   transitiveDependenciesResolved = true;
               }
   
  -            request = new PluginExecutionRequest( pluginManager.createParameters( goal, context.getProject() ) );
  +            request = new PluginExecutionRequest( context.createParameters( goal ) );
   
               response = new PluginExecutionResponse();
   
               try
               {
  -                Plugin plugin = (Plugin) context.lookup( Plugin.ROLE, pluginManager.getPluginDescriptor( goal.getName() ).getId() );
  +                Plugin plugin = (Plugin) context.lookup( Plugin.ROLE, context.getPluginId( goal ) );
   
                   plugin.execute( request, response );
               }
  
  
  
  1.2       +9 -1      maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase/GoalResolutionPhase.java
  
  Index: GoalResolutionPhase.java
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase/GoalResolutionPhase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- GoalResolutionPhase.java	11 Jun 2004 15:11:54 -0000	1.1
  +++ GoalResolutionPhase.java	17 Jun 2004 14:45:47 -0000	1.2
  @@ -2,6 +2,9 @@
   
   import org.apache.maven.lifecycle.AbstractMavenLifecyclePhase;
   import org.apache.maven.lifecycle.MavenLifecycleContext;
  +import org.apache.maven.plugin.PluginManager;
  +
  +import java.util.List;
   
   /**
    * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  @@ -13,5 +16,10 @@
       public void execute( MavenLifecycleContext context )
           throws Exception
       {
  +        PluginManager pluginManager = (PluginManager) context.getContainer().lookup( PluginManager.ROLE );
  +
  +        List goals = pluginManager.getGoals( context.getGoal().getName() );
  +
  +        context.setResolvedGoals( goals );
       }
   }
  
  
  

Re: cvs commit: maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase GoalAttainmentPhase.java GoalResolutionPhase.java

Posted by Brett Porter <br...@apache.org>.
Keywords are only expanded on check out.

Quoting Jerome Lacoste <je...@coffeebreaks.org>:

> On Fri, 2004-06-18 at 04:06, Brett Porter wrote:
> > > >     * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
> > > >     * @version $Id$
> > > 
> > > use $Id:$ instead.
> > > 
> > 
> > Why? Both work.
> 
> I don't know. I thought it didn't as the cvs commit didn't show the
> expanded version of the tag.
> 
> Jerome
> 
> 



Re: cvs commit: maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase GoalAttainmentPhase.java GoalResolutionPhase.java

Posted by Jerome Lacoste <je...@coffeebreaks.org>.
On Fri, 2004-06-18 at 04:06, Brett Porter wrote:
> > >     * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
> > >     * @version $Id$
> > 
> > use $Id:$ instead.
> > 
> 
> Why? Both work.

I don't know. I thought it didn't as the cvs commit didn't show the
expanded version of the tag.

Jerome



Re: cvs commit: maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase GoalAttainmentPhase.java GoalResolutionPhase.java

Posted by Brett Porter <br...@apache.org>.
> >     * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
> >     * @version $Id$
> 
> use $Id:$ instead.
> 

Why? Both work.

- Brett

Re: cvs commit: maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/phase GoalAttainmentPhase.java GoalResolutionPhase.java

Posted by Jerome Lacoste <je...@coffeebreaks.org>.
On Thu, 2004-06-17 at 16:45, jvanzyl@apache.org wrote:
> jvanzyl     2004/06/17 07:45:47
> 
>   Modified:    maven-core/src/main/java/org/apache/maven/lifecycle
>                         MavenLifecycleContext.java
>                maven-core/src/main/java/org/apache/maven/lifecycle/phase
>                         GoalAttainmentPhase.java GoalResolutionPhase.java
>   Log:
>   o broke up the goal attainment into a:
>   
>     goal resolution phase
>     goal attainment phase
>   
>     This in part to help with John's work on cleanly separating the goal
>     decoration phase
>   
>   o put some helper code into the maven lifecycle context so that phases can
>     get information about goals and plugin descriptors without having to
>     lookup the plugin manager. and i want to hide the plugin manager anyway.
>   
>     eventually people will be making their own phases so i'm trying to make
>     them as convenient as possible.
>   
>   o it is now possible to access any plexus component within a phase by using
>     the context.lookup(role[,roleHint]) method. so a phase now can take
>     advantage of any component.
>   
>   Revision  Changes    Path
>   1.4       +44 -1     maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/MavenLifecycleContext.java
>   
>   Index: MavenLifecycleContext.java
>   ===================================================================
>   RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/lifecycle/MavenLifecycleContext.java,v
>   retrieving revision 1.3
>   retrieving revision 1.4
>   diff -u -r1.3 -r1.4
>   --- MavenLifecycleContext.java	17 Jun 2004 00:07:23 -0000	1.3
>   +++ MavenLifecycleContext.java	17 Jun 2004 14:45:47 -0000	1.4
>   @@ -3,9 +3,13 @@
>    import org.apache.maven.project.MavenProject;
>    import org.apache.maven.script.MavenScript;
>    import org.apache.maven.plugin.descriptor.Goal;
>   +import org.apache.maven.plugin.PluginManager;
>    import org.codehaus.plexus.PlexusContainer;
>    import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
>    
>   +import java.util.List;
>   +import java.util.Map;
>   +
>    /**
>     * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
>     * @version $Id$

use $Id:$ instead.