jvanzyl     2004/05/08 14:11:17

  Modified:    maven-core/src/main/java/org/apache/maven
                        DefaultMavenCore.java
               maven-core/src/main/java/org/apache/maven/lifecycle/phase
                        GoalAttainmentPhase.java
               maven-core/src/main/java/org/apache/maven/plugin
                        IntegratedPluginGoalTestCase.java
               maven-core/src/main/java/org/apache/maven/plugin/manager
                        PluginManager.java
               maven-core/src/main/resources/META-INF/plexus components.xml
               maven-core/src/main/resources/org/apache/maven plexus.xml
               maven-core/src/test/java/org/apache/maven/plugin
                        PluginManagerManagerTest.java PluginTest.java
  Added:       maven-core/src/main/java/org/apache/maven/plugin/manager
                        DefaultPluginManager.java
  Removed:     maven-core/src/main/java/org/apache/maven/plugin/manager
                        DefaultPluginManagerManager.java
                        PlexusPluginManager.java PluginManagerManager.java
  Log:
  o collapsing all plugin handling into a single plugin manager.
  
  Revision  Changes    Path
  1.2       +6 -6      
maven-components/maven-core/src/main/java/org/apache/maven/DefaultMavenCore.java
  
  Index: DefaultMavenCore.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/DefaultMavenCore.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultMavenCore.java     16 Apr 2004 13:56:09 -0000      1.1
  +++ DefaultMavenCore.java     8 May 2004 21:11:16 -0000       1.2
  @@ -20,7 +20,7 @@
   import org.apache.maven.lifecycle.MavenLifecycleManager;
   import org.apache.maven.plugin.descriptor.GoalDescriptor;
   import org.apache.maven.plugin.descriptor.PluginDescriptor;
  -import org.apache.maven.plugin.manager.PluginManagerManager;
  +import org.apache.maven.plugin.manager.PluginManager;
   import org.apache.maven.project.MavenProject;
   import org.apache.maven.project.MavenProjectBuilder;
   import org.apache.maven.project.ProjectBuildingException;
  @@ -50,7 +50,7 @@
       // Components
       // ----------------------------------------------------------------------
   
  -    private PluginManagerManager pluginManagerManager;
  +    private PluginManager pluginManager;
   
       private MavenLifecycleManager lifecycleManager;
   
  @@ -98,12 +98,12 @@
   
       public Map getPluginDescriptors()
       {
  -        return pluginManagerManager.getPluginDescriptors();
  +        return pluginManager.getPluginDescriptors();
       }
   
       public PluginDescriptor getPluginDescriptor( String pluginId )
       {
  -        return pluginManagerManager.getPluginDescriptor( pluginId );
  +        return pluginManager.getPluginDescriptor( pluginId );
       }
   
       // ----------------------------------------------------------------------
  @@ -112,12 +112,12 @@
   
       public Map getGoalDescriptors()
       {
  -        return pluginManagerManager.getGoalDescriptors();
  +        return pluginManager.getGoalDescriptors();
       }
   
       public GoalDescriptor getGoalDescriptor( String goalId )
       {
  -        return pluginManagerManager.getGoalDescriptor( goalId );
  +        return pluginManager.getGoalDescriptor( goalId );
       }
   
       // ----------------------------------------------------------------------
  
  
  
  1.4       +3 -3      
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  5 Apr 2004 16:58:21 -0000       1.3
  +++ GoalAttainmentPhase.java  8 May 2004 21:11:17 -0000       1.4
  @@ -3,7 +3,7 @@
   import org.apache.maven.lifecycle.AbstractMavenLifecyclePhase;
   import org.apache.maven.lifecycle.MavenLifecycleContext;
   import org.apache.maven.plugin.PluginExecutionResponse;
  -import org.apache.maven.plugin.manager.PluginManagerManager;
  +import org.apache.maven.plugin.manager.PluginManager;
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
  @@ -15,7 +15,7 @@
       public void execute( MavenLifecycleContext context )
           throws Exception
       {
  -        PluginManagerManager pmm = (PluginManagerManager) 
context.getContainer().lookup( PluginManagerManager.ROLE );
  +        PluginManager pmm = (PluginManager) context.getContainer().lookup( 
PluginManager.ROLE );
   
           PluginExecutionResponse response = pmm.attainGoal( context );
   
  
  
  
  1.2       +3 -3      
maven-components/maven-core/src/main/java/org/apache/maven/plugin/IntegratedPluginGoalTestCase.java
  
  Index: IntegratedPluginGoalTestCase.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/IntegratedPluginGoalTestCase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IntegratedPluginGoalTestCase.java 8 May 2004 01:28:51 -0000       1.1
  +++ IntegratedPluginGoalTestCase.java 8 May 2004 21:11:17 -0000       1.2
  @@ -3,7 +3,7 @@
   import org.apache.maven.plugin.descriptor.GoalDescriptor;
   import org.apache.maven.plugin.descriptor.PluginDescriptor;
   import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
  -import org.apache.maven.plugin.manager.DefaultPluginManagerManager;
  +import org.apache.maven.plugin.manager.DefaultPluginManager;
   import org.apache.maven.plugin.manager.executor.IntegratedPluginExecutor;
   import org.apache.maven.project.MavenProject;
   import org.apache.maven.project.MavenProjectBuilder;
  @@ -82,7 +82,7 @@
   
           GoalDescriptor goalDescriptor = findGoalDescriptor( pluginDescriptor, goal 
);
   
  -        Map parameters = DefaultPluginManagerManager.createParameters( 
goalDescriptor, project );
  +        Map parameters = DefaultPluginManager.createParameters( goalDescriptor, 
project );
   
           PluginExecutionRequest request = new PluginExecutionRequest( parameters );
   
  
  
  
  1.8       +32 -7     
maven-components/maven-core/src/main/java/org/apache/maven/plugin/manager/PluginManager.java
  
  Index: PluginManager.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/manager/PluginManager.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- PluginManager.java        8 May 2004 20:48:00 -0000       1.7
  +++ PluginManager.java        8 May 2004 21:11:17 -0000       1.8
  @@ -16,10 +16,12 @@
    * limitations under the License.
    */
   
  -import org.apache.maven.plugin.PluginExecutionRequest;
  +import org.apache.maven.lifecycle.MavenLifecycleContext;
   import org.apache.maven.plugin.PluginExecutionResponse;
  +import org.apache.maven.plugin.descriptor.GoalDescriptor;
  +import org.apache.maven.plugin.descriptor.PluginDescriptor;
   
  -import java.util.List;
  +import java.util.Map;
   
   /**
    *
  @@ -30,11 +32,34 @@
    */
   public interface PluginManager
   {
  -    static String ROLE = PluginManager.class.getName();
  +    String ROLE = PluginManager.class.getName();
   
  -    void attainGoal( PluginExecutionRequest request, PluginExecutionResponse 
response );
  +    // ----------------------------------------------------------------------
  +    // Plugin execution
  +    // ----------------------------------------------------------------------
   
  -    List getGoals();
  +    PluginExecutionResponse attainGoal( MavenLifecycleContext context );
   
  -    String getId();
  +    // ----------------------------------------------------------------------
  +    // Plugin processing
  +    // ----------------------------------------------------------------------
  +
  +    void processPluginDescriptor( PluginDescriptor pluginDescriptor )
  +        throws Exception;
  +
  +    // ----------------------------------------------------------------------
  +    // Plugin descriptors
  +    // ----------------------------------------------------------------------
  +
  +    Map getPluginDescriptors();
  +
  +    PluginDescriptor getPluginDescriptor( String pluginId );
  +
  +    // ----------------------------------------------------------------------
  +    //  Goal descriptors
  +    // ----------------------------------------------------------------------
  +
  +    Map getGoalDescriptors();
  +
  +    GoalDescriptor getGoalDescriptor( String goalId );
   }
  
  
  
  1.1                  
maven-components/maven-core/src/main/java/org/apache/maven/plugin/manager/DefaultPluginManager.java
  
  Index: DefaultPluginManager.java
  ===================================================================
  package org.apache.maven.plugin.manager;
  
  /*
   * Copyright 2001-2004 The Apache Software Foundation.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  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.descriptor.GoalDescriptor;
  import org.apache.maven.plugin.descriptor.ParameterDescriptor;
  import org.apache.maven.plugin.descriptor.PluginDescriptor;
  import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
  import org.apache.maven.plugin.manager.executor.PluginExecutor;
  import org.apache.maven.project.MavenProject;
  import org.codehaus.plexus.PlexusConstants;
  import org.codehaus.plexus.PlexusContainer;
  import org.codehaus.plexus.component.discovery.ComponentDiscoveryEvent;
  import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
  import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
  import org.codehaus.plexus.context.Context;
  import org.codehaus.plexus.context.ContextException;
  import org.codehaus.plexus.logging.AbstractLogEnabled;
  import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
  import org.codehaus.plexus.util.dag.CycleDetectedException;
  import org.codehaus.plexus.util.dag.DAG;
  import org.codehaus.plexus.util.dag.TopologicalSorter;
  
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.List;
  import java.util.Map;
  
  public class DefaultPluginManager
      extends AbstractLogEnabled
      implements PluginManager, ComponentDiscoveryListener, Contextualizable
  {
      static String MAVEN_PLUGIN = "maven-plugin";
  
      private PlexusContainer container;
  
      protected String mavenHome;
  
      protected DAG dag = new DAG();
  
      protected Map goalDescriptors;
  
      protected Map goalToPluginMap;
  
      protected Map pluginDescriptors;
  
      protected PluginDescriptorBuilder pluginDescriptorBuilder;
  
      public DefaultPluginManager()
      {
          goalDescriptors = new HashMap();
  
          goalToPluginMap = new HashMap();
  
          pluginDescriptors = new HashMap();
  
          pluginDescriptorBuilder = new PluginDescriptorBuilder();
      }
  
      // ----------------------------------------------------------------------
      // Plugin execution
      // ----------------------------------------------------------------------
  
      public PluginExecutionResponse attainGoal( MavenLifecycleContext context )
      {
          String goalToAttain = context.getGoal();
  
          List goals = TopologicalSorter.sort( dag.getVertex( goalToAttain ) );
  
          PluginExecutionResponse response = new PluginExecutionResponse();
  
          int goalIndex = goals.indexOf( goalToAttain );
  
          for ( int j = 0; j <= goalIndex; j++ )
          {
              String goalName = (String) goals.get( j );
  
              context.setGoal( goalName );
  
              String goal = context.getGoal();
  
              System.out.println( "[" + goal + "]" );
  
              GoalDescriptor goalDescriptor = getGoalDescriptor( goal );
  
              PluginExecutionRequest request = new PluginExecutionRequest( 
createParameters( goalDescriptor, context.getProject() ) );
  
              request.addContextValue( "id", getPluginDescriptor( goal ).getId() );
  
              request.addContextValue( "mode", getPluginDescriptor( goal ).getMode() );
  
              attainGoal( request, response );
  
              if ( response.exceptionOccurred() )
              {
                  return response;
              }
          }
  
          return response;
      }
  
      public void attainGoal( PluginExecutionRequest request, PluginExecutionResponse 
response )
      {
          try
          {
              Object plugin = container.lookup( Plugin.ROLE, (String) 
request.getContextValue( "id" ) );
  
              request.setPlugin( plugin );
  
              PluginExecutor pluginExecutor =
                  (PluginExecutor) container.lookup( PluginExecutor.ROLE, (String) 
request.getContextValue( "mode" ) );
  
              pluginExecutor.execute( request, response );
          }
          catch ( ComponentLookupException e )
          {
              response.setException( e );
          }
      }
  
      // ----------------------------------------------------------------------
      // Create parameters for plugin execution
      // ----------------------------------------------------------------------
  
      public static Map createParameters( GoalDescriptor goalDescriptor, MavenProject 
project )
      {
          Map map = null;
  
          List parameters = goalDescriptor.getParameters();
  
          if ( parameters != null )
          {
              map = new HashMap();
  
              for ( int i = 0; i < parameters.size(); i++ )
              {
                  ParameterDescriptor c = (ParameterDescriptor) parameters.get( i );
  
                  String key = c.getName();
  
                  String expression = c.getExpression();
  
                  Object value = OgnlProjectValueExtractor.evaluate( expression, 
project );
  
                  map.put( key, value );
              }
          }
  
          return map;
      }
  
      // ----------------------------------------------------------------------
      // Plugin descriptors
      // ----------------------------------------------------------------------
  
      public Map getPluginDescriptors()
      {
          return pluginDescriptors;
      }
  
      public PluginDescriptor getPluginDescriptor( String goalName )
      {
          return (PluginDescriptor) goalToPluginMap.get( goalName );
      }
  
      // ----------------------------------------------------------------------
      // Goal descriptors
      // ----------------------------------------------------------------------
  
      public Map getGoalDescriptors()
      {
          return goalDescriptors;
      }
  
      public GoalDescriptor getGoalDescriptor( String name )
      {
          return (GoalDescriptor) goalDescriptors.get( name );
      }
  
      // ----------------------------------------------------------------------
      //
      // ----------------------------------------------------------------------
  
      public void processPluginDescriptor( PluginDescriptor pluginDescriptor )
          throws CycleDetectedException
      {
          List goals = pluginDescriptor.getGoals();
  
          for ( Iterator j = goals.iterator(); j.hasNext(); )
          {
              GoalDescriptor goalDescriptor = (GoalDescriptor) j.next();
  
              if ( goalDescriptor.getPrereqs() != null )
              {
                  for ( Iterator k = goalDescriptor.getPrereqs().iterator(); 
k.hasNext(); )
                  {
                      dag.addEdge( goalDescriptor.getName(), (String) k.next() );
                  }
              }
              else
              {
                  dag.addVertex( goalDescriptor.getName() );
              }
  
              goalDescriptors.put( goalDescriptor.getName(), goalDescriptor );
  
              goalToPluginMap.put( goalDescriptor.getName(), pluginDescriptor );
          }
  
          pluginDescriptors.put( pluginDescriptor.getId(), pluginDescriptor );
      }
  
      // ----------------------------------------------------------------------
      // Plugin discovery
      // ----------------------------------------------------------------------
  
      public void componentDiscovered( ComponentDiscoveryEvent event )
      {
          if ( event.getComponentType().equals( MAVEN_PLUGIN ) )
          {
              PluginDescriptor pluginDescriptor = (PluginDescriptor) 
event.getComponentDescriptor();
  
              try
              {
                  processPluginDescriptor( pluginDescriptor );
              }
              catch ( CycleDetectedException e )
              {
                  getLogger().error( "A cycle was detected in the goal graph: ", e );
              }
          }
      }
  
      // ----------------------------------------------------------------------
      // Lifecycle
      // ----------------------------------------------------------------------
  
      public void contextualize( Context context )
          throws ContextException
      {
          container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
      }
  
  }
  
  
  1.4       +1 -1      
maven-components/maven-core/src/main/resources/META-INF/plexus/components.xml
  
  Index: components.xml
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/main/resources/META-INF/plexus/components.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- components.xml    8 May 2004 17:03:06 -0000       1.3
  +++ components.xml    8 May 2004 21:11:17 -0000       1.4
  @@ -5,7 +5,7 @@
         <implementation>org.apache.maven.DefaultMavenCore</implementation>
         <requirements>
           <requirement>
  -          <role>org.apache.maven.plugin.manager.PluginManagerManager</role>
  +          <role>org.apache.maven.plugin.manager.PluginManager</role>
           </requirement>
           <requirement>
             <role>org.apache.maven.project.MavenProjectBuilder</role>
  
  
  
  1.12      +3 -14     
maven-components/maven-core/src/main/resources/org/apache/maven/plexus.xml
  
  Index: plexus.xml
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/main/resources/org/apache/maven/plexus.xml,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- plexus.xml        8 May 2004 00:56:25 -0000       1.11
  +++ plexus.xml        8 May 2004 21:11:17 -0000       1.12
  @@ -2,7 +2,7 @@
     <component-discoverer-manager 
implementation="org.codehaus.plexus.component.discovery.DefaultComponentDiscovererManager">
       <listeners>
         <listener>
  -        <role>org.apache.maven.plugin.manager.PluginManagerManager</role>
  +        <role>org.apache.maven.plugin.manager.PluginManager</role>
         </listener>
       </listeners>
       <component-discoverers>
  @@ -14,22 +14,11 @@
     </resources>
     <components>
       <component>
  -      <role>org.apache.maven.plugin.manager.PluginManagerManager</role>
  -      
<implementation>org.apache.maven.plugin.manager.DefaultPluginManagerManager</implementation>
  -      <requirements>
  -        <requirement>
  -          <role>org.apache.maven.plugin.manager.PluginManager</role>
  -          <field-name>pluginManagers</field-name>
  -        </requirement>
  -      </requirements>
  +      <role>org.apache.maven.plugin.manager.PluginManager</role>
  +      
<implementation>org.apache.maven.plugin.manager.DefaultPluginManager</implementation>
         <configuration>
           <maven-home>${maven.home}</maven-home>
         </configuration>
  -    </component>
  -    <component>
  -      <role>org.apache.maven.plugin.manager.PluginManager</role>
  -      <role-hint>plexus</role-hint>
  -      
<implementation>org.apache.maven.plugin.manager.PlexusPluginManager</implementation>
       </component>
       <component>
         <role>org.apache.maven.plugin.manager.executor.PluginExecutor</role>
  
  
  
  1.3       +3 -3      
maven-components/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerManagerTest.java
  
  Index: PluginManagerManagerTest.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerManagerTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PluginManagerManagerTest.java     21 Mar 2004 00:33:18 -0000      1.2
  +++ PluginManagerManagerTest.java     8 May 2004 21:11:17 -0000       1.3
  @@ -17,7 +17,7 @@
    */
   
   import org.apache.maven.MavenPlexusComponentTestBase;
  -import org.apache.maven.plugin.manager.PluginManagerManager;
  +import org.apache.maven.plugin.manager.PluginManager;
   
   /**
    *
  @@ -37,7 +37,7 @@
       public void testPluginManagerManager()
           throws Exception
       {
  -        PluginManagerManager pluginMM = (PluginManagerManager) lookup( 
PluginManagerManager.ROLE );
  +        PluginManager pluginMM = (PluginManager) lookup( PluginManager.ROLE );
   
           assertNotNull( pluginMM );
       }
  
  
  
  1.7       +4 -4      
maven-components/maven-core/src/test/java/org/apache/maven/plugin/PluginTest.java
  
  Index: PluginTest.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/test/java/org/apache/maven/plugin/PluginTest.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- PluginTest.java   7 May 2004 23:46:51 -0000       1.6
  +++ PluginTest.java   8 May 2004 21:11:17 -0000       1.7
  @@ -20,7 +20,7 @@
   import org.apache.maven.MavenPlexusComponentTestBase;
   import org.apache.maven.plugin.descriptor.PluginDescriptor;
   import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
  -import org.apache.maven.plugin.manager.PluginManagerManager;
  +import org.apache.maven.plugin.manager.PluginManager;
   
   import java.io.File;
   import java.io.InputStream;
  @@ -38,7 +38,7 @@
   {
       PluginDescriptorBuilder builder = new PluginDescriptorBuilder();
   
  -    PluginManagerManager pluginMM;
  +    PluginManager pluginMM;
   
       public PluginTest( String name )
       {
  @@ -50,7 +50,7 @@
       {
           super.setUp();
   
  -        pluginMM = (PluginManagerManager) getContainer().lookup( 
PluginManagerManager.ROLE );
  +        pluginMM = (PluginManager) getContainer().lookup( PluginManager.ROLE );
       }
   
       private void registerPlugin( String pluginDescriptor )
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to