jvanzyl 2004/03/20 12:21:07 Modified: maven-core/src/main/java/org/apache/maven DefaultMaven.java maven-core/src/main/java/org/apache/maven/plugin PluginExecutionRequest.java PluginExecutionResponse.java maven-core/src/main/java/org/apache/maven/plugin/manager DefaultPluginManagerManager.java PluginManager.java PluginManagerManager.java maven-core/src/main/java/org/apache/maven/plugin/plexus FieldPluginConfigurator.java OgnlProjectValueExtractor.java PlexusPluginManager.java SetterPluginConfigurator.java maven-core/src/main/resources/org/apache/maven plexus.xml Added: maven-core/src/main/java/org/apache/maven/plugin/plexus/executor FieldPluginExecutor.java IntegratedPluginExecutor.java PluginExecutor.java SetterPluginExecutor.java SingletonPluginExecutor.java Log: o for each different type of supported POJO we have an executor, so if we want to add support for new types of POJOs, or if users want to add their own, then you just need to create a component to handle it and plexus will look it up and execute the POJO plugin. Revision Changes Path 1.2 +4 -0 maven-components/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Index: DefaultMaven.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/DefaultMaven.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DefaultMaven.java 19 Mar 2004 04:13:18 -0000 1.1 +++ DefaultMaven.java 20 Mar 2004 20:21:07 -0000 1.2 @@ -56,6 +56,10 @@ * ==================================================================== */ +// use plexus getFiles +// cleanup attainGoal make is singular +// use i18n + import org.apache.maven.plugin.manager.PluginManager; import org.apache.maven.plugin.manager.PluginManagerManager; import org.apache.maven.project.MavenProject; 1.2 +51 -2 maven-components/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionRequest.java Index: PluginExecutionRequest.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionRequest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PluginExecutionRequest.java 19 Mar 2004 04:13:20 -0000 1.1 +++ PluginExecutionRequest.java 20 Mar 2004 20:21:07 -0000 1.2 @@ -1,5 +1,9 @@ package org.apache.maven.plugin; +import org.apache.maven.plugin.descriptor.GoalDescriptor; +import org.apache.maven.plugin.descriptor.PluginDescriptor; +import org.apache.maven.project.MavenProject; + import java.util.Map; /** @@ -13,8 +17,28 @@ { private Map parameters; - public PluginExecutionRequest( Map parameters ) + private GoalDescriptor goalDescriptor; + + private PluginDescriptor pluginDescriptor; + + private MavenProject project; + + private Object plugin; + + public PluginExecutionRequest( Object plugin, + PluginDescriptor pluginDescriptor, + GoalDescriptor goalDescriptor, + MavenProject project, + Map parameters ) { + this.plugin = plugin; + + this.pluginDescriptor = pluginDescriptor; + + this.goalDescriptor = goalDescriptor; + + this.project = project; + this.parameters = parameters; } @@ -23,8 +47,33 @@ return parameters; } + public void setParameters( Map parameters ) + { + this.parameters = parameters; + } + public Object getParameter( String key ) { return parameters.get( key ); + } + + public GoalDescriptor getGoalDescriptor() + { + return goalDescriptor; + } + + public PluginDescriptor getPluginDescriptor() + { + return pluginDescriptor; + } + + public MavenProject getProject() + { + return project; + } + + public Object getPlugin() + { + return plugin; } } 1.2 +12 -1 maven-components/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionResponse.java Index: PluginExecutionResponse.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionResponse.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PluginExecutionResponse.java 19 Mar 2004 04:13:20 -0000 1.1 +++ PluginExecutionResponse.java 20 Mar 2004 20:21:07 -0000 1.2 @@ -9,4 +9,15 @@ */ public class PluginExecutionResponse { + private Throwable exception; + + public Throwable getException() + { + return exception; + } + + public void setException( Throwable exception ) + { + this.exception = exception; + } } 1.2 +6 -7 maven-components/maven-core/src/main/java/org/apache/maven/plugin/manager/DefaultPluginManagerManager.java Index: DefaultPluginManagerManager.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/manager/DefaultPluginManagerManager.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DefaultPluginManagerManager.java 19 Mar 2004 04:13:20 -0000 1.1 +++ DefaultPluginManagerManager.java 20 Mar 2004 20:21:07 -0000 1.2 @@ -60,6 +60,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.PluginExecutionResponse; import org.apache.maven.project.MavenProject; import org.apache.maven.verifier.DependencyVerifier; import org.codehaus.classworlds.ClassRealm; @@ -119,20 +120,21 @@ } public void attainGoals( MavenProject project, List goalNames ) - throws GoalException, Exception + throws Exception { PluginManager pluginManager = (PluginManager) pluginManagers.get( "plexus" ); + PluginExecutionResponse response; + for ( Iterator i = goalNames.iterator(); i.hasNext(); ) { String goal = (String) i.next(); - // This could be replace by adding a method DAG.hasEdges( vertext ) to the DAG. if ( dag.getChildLabels( goal ).size() == 0 && dag.getParentLabels( goal ).size() == 0 ) { System.out.println( "[" + goal + "]" ); - pluginManager.attainGoal( (PluginDescriptor) goalToPluginMap.get( goal ), getGoalDescriptor( goal ), project ); + response = pluginManager.attainGoal( getPluginDescriptor( goal ), getGoalDescriptor( goal ), project ); } else { @@ -151,10 +153,7 @@ System.out.println( "[" + goalName + "]" ); - // We have to look at the information passed back from the plugin - // and see if we can do anything. - - pluginManager.attainGoal( getPluginDescriptor( goalName ), getGoalDescriptor( goalName ), project ); + response = pluginManager.attainGoal( getPluginDescriptor( goalName ), getGoalDescriptor( goalName ), project ); } } } 1.2 +3 -2 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.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PluginManager.java 19 Mar 2004 04:13:20 -0000 1.1 +++ PluginManager.java 20 Mar 2004 20:21:07 -0000 1.2 @@ -3,6 +3,7 @@ import org.apache.maven.GoalException; import org.apache.maven.plugin.descriptor.GoalDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; +import org.apache.maven.plugin.PluginExecutionResponse; import org.apache.maven.project.MavenProject; import org.codehaus.classworlds.ClassRealm; @@ -19,7 +20,7 @@ { static String ROLE = PluginManager.class.getName(); - void attainGoal( PluginDescriptor pd, GoalDescriptor gd, MavenProject project ) + PluginExecutionResponse attainGoal( PluginDescriptor pd, GoalDescriptor gd, MavenProject project ) throws Exception; List getGoals(); 1.2 +3 -4 maven-components/maven-core/src/main/java/org/apache/maven/plugin/manager/PluginManagerManager.java Index: PluginManagerManager.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/manager/PluginManagerManager.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PluginManagerManager.java 19 Mar 2004 04:13:20 -0000 1.1 +++ PluginManagerManager.java 20 Mar 2004 20:21:07 -0000 1.2 @@ -1,8 +1,7 @@ package org.apache.maven.plugin.manager; -import org.apache.maven.project.MavenProject; -import org.apache.maven.GoalException; import org.apache.maven.plugin.descriptor.PluginDescriptor; +import org.apache.maven.project.MavenProject; import java.util.List; @@ -18,7 +17,7 @@ String ROLE = PluginManagerManager.class.getName(); void attainGoals( MavenProject project, List goalNames ) - throws GoalException, Exception; + throws Exception; void processPluginDescriptor( PluginDescriptor pluginDescriptor ); } 1.3 +2 -2 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/FieldPluginConfigurator.java Index: FieldPluginConfigurator.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/FieldPluginConfigurator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- FieldPluginConfigurator.java 19 Mar 2004 16:12:27 -0000 1.2 +++ FieldPluginConfigurator.java 20 Mar 2004 20:21:07 -0000 1.3 @@ -16,7 +16,7 @@ public class FieldPluginConfigurator { public Object configure( Object plugin, List parameters, MavenProject project ) - throws PluginConfigurationException, Exception + throws PluginConfigurationException { Class pluginClass = plugin.getClass(); 1.2 +1 -2 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/OgnlProjectValueExtractor.java Index: OgnlProjectValueExtractor.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/OgnlProjectValueExtractor.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- OgnlProjectValueExtractor.java 19 Mar 2004 04:13:20 -0000 1.1 +++ OgnlProjectValueExtractor.java 20 Mar 2004 20:21:07 -0000 1.2 @@ -14,7 +14,6 @@ public class OgnlProjectValueExtractor { public static Object evaluate( String expression, MavenProject project ) - throws Exception { Object value = null; 1.3 +10 -131 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/PlexusPluginManager.java Index: PlexusPluginManager.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/PlexusPluginManager.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- PlexusPluginManager.java 19 Mar 2004 16:12:27 -0000 1.2 +++ PlexusPluginManager.java 20 Mar 2004 20:21:07 -0000 1.3 @@ -4,10 +4,9 @@ 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.MethodDescriptor; -import org.apache.maven.plugin.descriptor.ParameterDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.manager.AbstractPluginManager; +import org.apache.maven.plugin.plexus.executor.PluginExecutor; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; @@ -15,11 +14,6 @@ import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - /** * * @@ -31,21 +25,8 @@ extends AbstractPluginManager implements Contextualizable { - private Map plugins; - private PlexusContainer container; - private FieldPluginConfigurator fieldPluginConfigurator; - - private SetterPluginConfigurator setterPluginConfigurator; - - public PlexusPluginManager() - { - fieldPluginConfigurator = new FieldPluginConfigurator(); - - setterPluginConfigurator = new SetterPluginConfigurator(); - } - public void loadPlugin( String name ) throws Exception { @@ -56,126 +37,24 @@ return "plexus"; } - public void attainGoal( PluginDescriptor pd, GoalDescriptor gd, MavenProject project ) + public PluginExecutionResponse attainGoal( PluginDescriptor pd, GoalDescriptor gd, MavenProject project ) throws Exception { Object plugin = container.lookup( Plugin.ROLE, pd.getId() ); - String mode = pd.getMode(); - - if ( mode.equals( Plugin.INTEGRATED ) ) - { - executeIntegratedPlugin( plugin, gd, project ); - } - else if ( mode.equals( Plugin.SINGLETON ) ) - { - executeSingletonPlugin( plugin, gd, project ); - } - else if ( mode.equals( Plugin.FIELD ) ) - { - executeFieldPlugin( plugin, gd, project ); - } - else if ( mode.equals( Plugin.SETTER ) ) - { - executeSetterPlugin( plugin, gd, project ); - } - } - - private void executeIntegratedPlugin( Object plugin, GoalDescriptor gd, MavenProject project ) - throws Exception - { - List parameters = gd.getParameters(); - - int size = parameters.size(); - - Map map = new HashMap(); - - for ( int i = 0; i < 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 ); - } - - PluginExecutionRequest request = new PluginExecutionRequest( map ); + PluginExecutionRequest request = new PluginExecutionRequest( plugin, pd, gd, project, null ); PluginExecutionResponse response = new PluginExecutionResponse(); - ((Plugin) plugin).execute( request, response ); - } + // I could make a factory and use polymorphism here but there are only + // 4 flavours here and hopefully people will opt for the integrated + // form. So we'll use the good old if/else if for now. - private void executeSingletonPlugin( Object plugin, GoalDescriptor gd, MavenProject project ) - throws Exception - { - MethodDescriptor md = gd.getMethod(); - - int size = md.getParameters().size(); - - Object[] parameters = new Object[size]; - - for ( int i = 0; i < size; i++ ) - { - ParameterDescriptor c = (ParameterDescriptor) md.getParameters().get( i ); - - String expression = c.getExpression(); - - parameters[i] = OgnlProjectValueExtractor.evaluate( expression, project ); - } - - Method[] methods = plugin.getClass().getMethods(); - - Class[] types = null; - - for ( int i = 0; i < methods.length; i++ ) - { - if ( methods[i].getName().equals( md.getName() ) ) - { - types = methods[i].getParameterTypes(); - - // If parameter lengths don't match then we don't - // have the right method. - if ( types.length != size ) - { - continue; - } - } - } - - Method m = plugin.getClass().getMethod( gd.getMethod().getName(), types ); - - m.invoke( plugin, parameters ); - } - - private void executeFieldPlugin( Object plugin, GoalDescriptor gd, MavenProject project ) - throws Exception - { - if ( gd.getParameters() != null ) - { - plugin = fieldPluginConfigurator.configure( plugin, gd.getParameters(), project ); - } - - Method m = plugin.getClass().getMethod( "execute", new Class[0] ); - - m.invoke( plugin, new Object[0] ); - } - - private void executeSetterPlugin( Object plugin, GoalDescriptor gd, MavenProject project ) - throws Exception - { - if ( gd.getParameters() != null ) - { - plugin = setterPluginConfigurator.configure( plugin, gd.getParameters(), project ); - } + PluginExecutor pluginExecutor = (PluginExecutor) container.lookup( PluginExecutor.ROLE, pd.getMode() ); - Method m = plugin.getClass().getMethod( "execute", new Class[0] ); + pluginExecutor.execute( request, response ); - m.invoke( plugin, new Object[0] ); + return response; } // ---------------------------------------------------------------------- 1.3 +2 -2 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/SetterPluginConfigurator.java Index: SetterPluginConfigurator.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/SetterPluginConfigurator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SetterPluginConfigurator.java 19 Mar 2004 16:12:27 -0000 1.2 +++ SetterPluginConfigurator.java 20 Mar 2004 20:21:07 -0000 1.3 @@ -16,7 +16,7 @@ public class SetterPluginConfigurator { public Object configure( Object plugin, List parameters, MavenProject project ) - throws PluginConfigurationException, Exception + throws PluginConfigurationException { Class pluginClass = plugin.getClass(); 1.1 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/FieldPluginExecutor.java Index: FieldPluginExecutor.java =================================================================== package org.apache.maven.plugin.plexus.executor; import org.apache.maven.plugin.PluginExecutionRequest; import org.apache.maven.plugin.PluginExecutionResponse; import org.apache.maven.plugin.plexus.PluginConfigurationException; import org.apache.maven.plugin.plexus.FieldPluginConfigurator; import java.util.List; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; /** * * * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> * * @version $Id: FieldPluginExecutor.java,v 1.1 2004/03/20 20:21:07 jvanzyl Exp $ */ public class FieldPluginExecutor implements PluginExecutor { private FieldPluginConfigurator fieldPluginConfigurator; public FieldPluginExecutor() { fieldPluginConfigurator = new FieldPluginConfigurator(); } public void execute( PluginExecutionRequest request, PluginExecutionResponse response ) { List parameters = request.getGoalDescriptor().getParameters(); Object plugin = request.getPlugin(); if ( parameters != null ) { try { plugin = fieldPluginConfigurator.configure( plugin, parameters, request.getProject() ); } catch ( PluginConfigurationException e ) { response.setException( e ); return; } } Method m = null; try { m = plugin.getClass().getMethod( "execute", new Class[0] ); m.invoke( plugin, new Object[0] ); } catch ( NoSuchMethodException e ) { response.setException( e ); } catch ( InvocationTargetException e ) { response.setException( e.getTargetException() ); } catch ( Exception e ) { response.setException( e ); } } } 1.1 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/IntegratedPluginExecutor.java Index: IntegratedPluginExecutor.java =================================================================== package org.apache.maven.plugin.plexus.executor; import org.apache.maven.plugin.PluginExecutionRequest; import org.apache.maven.plugin.PluginExecutionResponse; import org.apache.maven.plugin.Plugin; import org.apache.maven.plugin.plexus.OgnlProjectValueExtractor; import org.apache.maven.plugin.descriptor.ParameterDescriptor; import java.util.List; import java.util.Map; import java.util.HashMap; /** * * * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> * * @version $Id: IntegratedPluginExecutor.java,v 1.1 2004/03/20 20:21:07 jvanzyl Exp $ */ public class IntegratedPluginExecutor implements PluginExecutor { public void execute( PluginExecutionRequest request, PluginExecutionResponse response ) { List parameters = request.getGoalDescriptor().getParameters(); int size = parameters.size(); Map map = new HashMap(); for ( int i = 0; i < size; i++ ) { ParameterDescriptor c = (ParameterDescriptor) parameters.get( i ); String key = c.getName(); String expression = c.getExpression(); Object value = OgnlProjectValueExtractor.evaluate( expression, request.getProject() ); map.put( key, value ); } request.setParameters( map ); try { ((Plugin) request.getPlugin()).execute( request, response ); } catch ( Exception e ) { response.setException( e ); } } } 1.1 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/PluginExecutor.java Index: PluginExecutor.java =================================================================== package org.apache.maven.plugin.plexus.executor; import org.apache.maven.plugin.PluginExecutionResponse; import org.apache.maven.plugin.PluginExecutionRequest; /** * * * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> * * @version $Id: PluginExecutor.java,v 1.1 2004/03/20 20:21:07 jvanzyl Exp $ */ public interface PluginExecutor { String ROLE = PluginExecutor.class.getName(); void execute( PluginExecutionRequest request, PluginExecutionResponse response ); } 1.1 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/SetterPluginExecutor.java Index: SetterPluginExecutor.java =================================================================== package org.apache.maven.plugin.plexus.executor; import org.apache.maven.plugin.plexus.SetterPluginConfigurator; import org.apache.maven.plugin.plexus.PluginConfigurationException; import org.apache.maven.plugin.PluginExecutionRequest; import org.apache.maven.plugin.PluginExecutionResponse; import java.util.List; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; /** * * * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> * * @version $Id: SetterPluginExecutor.java,v 1.1 2004/03/20 20:21:07 jvanzyl Exp $ */ public class SetterPluginExecutor implements PluginExecutor { private SetterPluginConfigurator setterPluginConfigurator; public SetterPluginExecutor() { setterPluginConfigurator = new SetterPluginConfigurator(); } public void execute( PluginExecutionRequest request, PluginExecutionResponse response ) { List parameters = request.getGoalDescriptor().getParameters(); Object plugin = request.getPlugin(); if ( parameters != null ) { try { plugin = setterPluginConfigurator.configure( plugin, parameters, request.getProject() ); } catch ( PluginConfigurationException e ) { response.setException( e ); return; } } Method m = null; try { m = plugin.getClass().getMethod( "execute", new Class[0] ); m.invoke( plugin, new Object[0] ); } catch ( NoSuchMethodException e ) { response.setException( e ); } catch ( InvocationTargetException e ) { response.setException( e.getTargetException() ); } catch ( Exception e ) { response.setException( e ); } } } 1.1 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/SingletonPluginExecutor.java Index: SingletonPluginExecutor.java =================================================================== package org.apache.maven.plugin.plexus.executor; import org.apache.maven.plugin.PluginExecutionRequest; import org.apache.maven.plugin.PluginExecutionResponse; import org.apache.maven.plugin.plexus.OgnlProjectValueExtractor; import org.apache.maven.plugin.descriptor.MethodDescriptor; import org.apache.maven.plugin.descriptor.ParameterDescriptor; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; /** * * * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> * * @version $Id: SingletonPluginExecutor.java,v 1.1 2004/03/20 20:21:07 jvanzyl Exp $ */ public class SingletonPluginExecutor implements PluginExecutor { public void execute( PluginExecutionRequest request, PluginExecutionResponse response ) { MethodDescriptor md = request.getGoalDescriptor().getMethod(); int size = md.getParameters().size(); Object[] parameters = new Object[size]; for ( int i = 0; i < size; i++ ) { ParameterDescriptor c = (ParameterDescriptor) md.getParameters().get( i ); String expression = c.getExpression(); parameters[i] = OgnlProjectValueExtractor.evaluate( expression, request.getProject() ); } Method[] methods = request.getPlugin().getClass().getMethods(); Class[] types = null; for ( int i = 0; i < methods.length; i++ ) { if ( methods[i].getName().equals( md.getName() ) ) { types = methods[i].getParameterTypes(); // If parameter lengths don't match then we don't // have the right method. if ( types.length != size ) { continue; } } } Method m = null; try { m = request.getPlugin().getClass().getMethod( request.getGoalDescriptor().getMethod().getName(), types ); m.invoke( request.getPlugin(), parameters ); } catch ( NoSuchMethodException e ) { response.setException( e ); } catch ( InvocationTargetException e ) { response.setException( e.getTargetException() ); } catch ( Exception e ) { response.setException( e ); } } } 1.2 +26 -7 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.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- plexus.xml 19 Mar 2004 04:13:23 -0000 1.1 +++ plexus.xml 20 Mar 2004 20:21:07 -0000 1.2 @@ -86,7 +86,7 @@ <!-- | - | Plugin Managers + | Plexus plugin manager | --> @@ -94,12 +94,31 @@ <role>org.apache.maven.plugin.manager.PluginManager</role> <role-hint>plexus</role-hint> <implementation>org.apache.maven.plugin.plexus.PlexusPluginManager</implementation> - <requirements> - <requirement> - <role>org.apache.maven.plugin.Plugin</role> - <field-name>plugins</field-name> - </requirement> - </requirements> </component> + + <component> + <role>org.apache.maven.plugin.plexus.executor.PluginExecutor</role> + <role-hint>field</role-hint> + <implementation>org.apache.maven.plugin.plexus.executor.FieldPluginExecutor</implementation> + </component> + + <component> + <role>org.apache.maven.plugin.plexus.executor.PluginExecutor</role> + <role-hint>setter</role-hint> + <implementation>org.apache.maven.plugin.plexus.executor.SetterPluginExecutor</implementation> + </component> + + <component> + <role>org.apache.maven.plugin.plexus.executor.PluginExecutor</role> + <role-hint>singleton</role-hint> + <implementation>org.apache.maven.plugin.plexus.executor.SingletonPluginExecutor</implementation> + </component> + + <component> + <role>org.apache.maven.plugin.plexus.executor.PluginExecutor</role> + <role-hint>integrated</role-hint> + <implementation>org.apache.maven.plugin.plexus.executor.IntegratedPluginExecutor</implementation> + </component> + </components> </configuration>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]