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]