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]