jvanzyl 2004/05/07 16:46:51 Modified: maven-core bootstrap.plugins maven-core/src/main/java/org/apache/maven/plugin PluginExecutionRequest.java maven-core/src/main/java/org/apache/maven/plugin/manager DefaultPluginManagerManager.java maven-core/src/main/java/org/apache/maven/plugin/plexus FieldPluginConfigurator.java PlexusPluginManager.java SetterPluginConfigurator.java maven-core/src/main/java/org/apache/maven/plugin/plexus/executor FieldPluginExecutor.java IntegratedPluginExecutor.java SetterPluginExecutor.java maven-core/src/test/java/org/apache/maven/plugin PluginConfiguratorTest.java PluginTest.java Removed: maven-core/src/main/java/org/apache/maven/plugin/plexus/executor SingletonPluginExecutor.java maven-core/src/test/java/org/apache/maven/plugin SingletonPlugin.java maven-core/src/test/resources/org/apache/maven/plugin singleton-plugin.xml Log: o do the rework to remove any dependencies on maven from the plugin request and response. preparing to the little POJO package in a separate build so that it is clear that it does not depend on the maven core. o removed the singleton type. Revision Changes Path 1.5 +1 -0 maven-components/maven-core/bootstrap.plugins Index: bootstrap.plugins =================================================================== RCS file: /home/cvs/maven-components/maven-core/bootstrap.plugins,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- bootstrap.plugins 20 Apr 2004 14:06:57 -0000 1.4 +++ bootstrap.plugins 7 May 2004 23:46:51 -0000 1.5 @@ -6,3 +6,4 @@ maven-scm-plugin maven-surefire-plugin maven-xdoc-plugin +maven-idea-plugin 1.5 +10 -26 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PluginExecutionRequest.java 21 Mar 2004 00:33:17 -0000 1.4 +++ PluginExecutionRequest.java 7 May 2004 23:46:51 -0000 1.5 @@ -16,10 +16,7 @@ * limitations under the License. */ -import org.apache.maven.plugin.descriptor.GoalDescriptor; -import org.apache.maven.plugin.descriptor.PluginDescriptor; -import org.apache.maven.project.MavenProject; - +import java.util.HashMap; import java.util.Map; /** @@ -33,23 +30,15 @@ { private Map parameters; - private GoalDescriptor goalDescriptor; - - private PluginDescriptor pluginDescriptor; - - private MavenProject project; + private Map context; private Object plugin; - public PluginExecutionRequest( PluginDescriptor pluginDescriptor, - GoalDescriptor goalDescriptor, - MavenProject project ) + public PluginExecutionRequest( Map parameters ) { - this.pluginDescriptor = pluginDescriptor; - - this.goalDescriptor = goalDescriptor; + context = new HashMap(); - this.project = project; + this.parameters = parameters; } public Map getParameters() @@ -67,19 +56,14 @@ return parameters.get( key ); } - public GoalDescriptor getGoalDescriptor() - { - return goalDescriptor; - } - - public PluginDescriptor getPluginDescriptor() + public void addContextValue( Object key, Object value ) { - return pluginDescriptor; + context.put( key, value ); } - public MavenProject getProject() + public Object getContextValue( String key ) { - return project; + return context.get( key ); } public void setPlugin( Object plugin ) 1.13 +36 -2 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.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- DefaultPluginManagerManager.java 7 May 2004 19:58:39 -0000 1.12 +++ DefaultPluginManagerManager.java 7 May 2004 23:46:51 -0000 1.13 @@ -19,9 +19,12 @@ import org.apache.maven.lifecycle.MavenLifecycleContext; 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.GoalDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder; +import org.apache.maven.plugin.descriptor.ParameterDescriptor; +import org.apache.maven.project.MavenProject; import org.codehaus.plexus.component.discovery.ComponentDiscoveryEvent; import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener; import org.codehaus.plexus.logging.AbstractLogEnabled; @@ -126,15 +129,46 @@ GoalDescriptor goalDescriptor = getGoalDescriptor( goal ); - PluginDescriptor pluginDescriptor = getPluginDescriptor( goal ); + PluginExecutionRequest request = new PluginExecutionRequest( createParameters( goalDescriptor, context.getProject() ) ); - PluginExecutionRequest request = new PluginExecutionRequest( pluginDescriptor, goalDescriptor ); + request.addContextValue( "id", getPluginDescriptor( goal ).getId() ); + + request.addContextValue( "mode", getPluginDescriptor( goal ).getMode() ); PluginExecutionResponse response = new PluginExecutionResponse(); pluginManager.attainGoal( request, response ); return response; + } + + // ---------------------------------------------------------------------- + // Create parameters for plugin execution + // ---------------------------------------------------------------------- + //!!! This could be moved to a utility class + + public static Map createParameters( GoalDescriptor goalDescriptor, MavenProject project ) + { + List parameters = goalDescriptor.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 ); + } + + return map; } // ---------------------------------------------------------------------- 1.5 +7 -15 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- FieldPluginConfigurator.java 21 Mar 2004 00:33:17 -0000 1.4 +++ FieldPluginConfigurator.java 7 May 2004 23:46:51 -0000 1.5 @@ -16,11 +16,9 @@ * limitations under the License. */ -import org.apache.maven.plugin.descriptor.ParameterDescriptor; -import org.apache.maven.project.MavenProject; - import java.lang.reflect.Field; -import java.util.List; +import java.util.Iterator; +import java.util.Map; /** * @@ -31,22 +29,16 @@ */ public class FieldPluginConfigurator { - public Object configure( Object plugin, List parameters, MavenProject project ) + public Object configure( Object plugin, Map parameters ) throws PluginConfigurationException { Class pluginClass = plugin.getClass(); - int size = parameters.size(); - - for ( int i = 0; i < size; i++ ) + for ( Iterator iterator = parameters.keySet().iterator(); iterator.hasNext(); ) { - ParameterDescriptor c = (ParameterDescriptor) parameters.get( i ); - - String fieldName = c.getName(); - - String expression = c.getExpression(); + String fieldName = (String) iterator.next(); - Object value = OgnlProjectValueExtractor.evaluate( expression, project ); + Object value = parameters.get( fieldName ); try { 1.7 +4 -7 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.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- PlexusPluginManager.java 4 Apr 2004 17:23:44 -0000 1.6 +++ PlexusPluginManager.java 7 May 2004 23:46:51 -0000 1.7 @@ -52,15 +52,12 @@ { try { - String id = request.getPluginDescriptor().getId(); - - Object plugin = container.lookup( Plugin.ROLE, id ); + Object plugin = container.lookup( Plugin.ROLE, (String) request.getContextValue( "id" ) ); request.setPlugin( plugin ); - String mode = request.getPluginDescriptor().getMode(); - - PluginExecutor pluginExecutor = (PluginExecutor) container.lookup( PluginExecutor.ROLE, mode ); + PluginExecutor pluginExecutor = + (PluginExecutor) container.lookup( PluginExecutor.ROLE, (String) request.getContextValue( "mode" ) ); pluginExecutor.execute( request, response ); } 1.5 +8 -10 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SetterPluginConfigurator.java 21 Mar 2004 00:33:17 -0000 1.4 +++ SetterPluginConfigurator.java 7 May 2004 23:46:51 -0000 1.5 @@ -21,6 +21,8 @@ import java.lang.reflect.Method; import java.util.List; +import java.util.Map; +import java.util.Iterator; /** * @@ -31,22 +33,18 @@ */ public class SetterPluginConfigurator { - public Object configure( Object plugin, List parameters, MavenProject project ) + public Object configure( Object plugin, Map parameters ) throws PluginConfigurationException { Class pluginClass = plugin.getClass(); - int size = parameters.size(); - - for ( int i = 0; i < size; i++ ) + for ( Iterator iterator = parameters.keySet().iterator(); iterator.hasNext(); ) { - ParameterDescriptor c = (ParameterDescriptor) parameters.get( i ); - - String methodName = "set" + capitalise( c.getName() ); + String key = (String) iterator.next(); - String expression = c.getExpression(); + Object value = parameters.get( key); - Object value = OgnlProjectValueExtractor.evaluate( expression, project ); + String methodName = "set" + capitalise( key ); try { 1.3 +5 -8 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/FieldPluginExecutor.java Index: FieldPluginExecutor.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/FieldPluginExecutor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- FieldPluginExecutor.java 21 Mar 2004 00:33:17 -0000 1.2 +++ FieldPluginExecutor.java 7 May 2004 23:46:51 -0000 1.3 @@ -18,12 +18,11 @@ 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 org.apache.maven.plugin.plexus.PluginConfigurationException; -import java.util.List; -import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; /** * @@ -44,15 +43,13 @@ public void execute( PluginExecutionRequest request, PluginExecutionResponse response ) { - List parameters = request.getGoalDescriptor().getParameters(); - Object plugin = request.getPlugin(); - if ( parameters != null ) + if ( request.getParameters() != null ) { try { - plugin = fieldPluginConfigurator.configure( plugin, parameters, request.getProject() ); + plugin = fieldPluginConfigurator.configure( plugin, request.getParameters() ); } catch ( PluginConfigurationException e ) { 1.3 +1 -22 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/IntegratedPluginExecutor.java Index: IntegratedPluginExecutor.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/IntegratedPluginExecutor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- IntegratedPluginExecutor.java 21 Mar 2004 00:33:17 -0000 1.2 +++ IntegratedPluginExecutor.java 7 May 2004 23:46:51 -0000 1.3 @@ -38,27 +38,6 @@ { 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 ); 1.3 +6 -9 maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/SetterPluginExecutor.java Index: SetterPluginExecutor.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/plugin/plexus/executor/SetterPluginExecutor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SetterPluginExecutor.java 21 Mar 2004 00:33:17 -0000 1.2 +++ SetterPluginExecutor.java 7 May 2004 23:46:51 -0000 1.3 @@ -16,14 +16,13 @@ * limitations under the License. */ -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 org.apache.maven.plugin.plexus.PluginConfigurationException; +import org.apache.maven.plugin.plexus.SetterPluginConfigurator; -import java.util.List; -import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; /** * @@ -44,15 +43,13 @@ public void execute( PluginExecutionRequest request, PluginExecutionResponse response ) { - List parameters = request.getGoalDescriptor().getParameters(); - Object plugin = request.getPlugin(); - if ( parameters != null ) + if ( request.getParameters() != null ) { try { - plugin = setterPluginConfigurator.configure( plugin, parameters, request.getProject() ); + plugin = setterPluginConfigurator.configure( plugin, request.getParameters() ); } catch ( PluginConfigurationException e ) { 1.4 +6 -3 maven-components/maven-core/src/test/java/org/apache/maven/plugin/PluginConfiguratorTest.java Index: PluginConfiguratorTest.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/test/java/org/apache/maven/plugin/PluginConfiguratorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- PluginConfiguratorTest.java 21 Mar 2004 00:33:18 -0000 1.3 +++ PluginConfiguratorTest.java 7 May 2004 23:46:51 -0000 1.4 @@ -21,9 +21,12 @@ import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder; import org.apache.maven.plugin.plexus.FieldPluginConfigurator; +import org.apache.maven.plugin.manager.DefaultPluginManagerManager; import org.apache.maven.project.MavenProject; +import org.apache.maven.lifecycle.MavenLifecycleContext; import java.util.Properties; +import java.util.Map; /** * @@ -82,9 +85,9 @@ GoalDescriptor gd = (GoalDescriptor) pd.getGoals().get( 0 ); - plugin = (MockPlugin) pc.configure( plugin, gd.getParameters(), project ); - + Map parameters = DefaultPluginManagerManager.createParameters( gd, project ); + plugin = (MockPlugin) pc.configure( plugin, parameters); } class MockPlugin 1.6 +1 -21 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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- PluginTest.java 16 Apr 2004 13:56:09 -0000 1.5 +++ PluginTest.java 7 May 2004 23:46:51 -0000 1.6 @@ -85,26 +85,6 @@ assertEquals( "bar", integratedPlugin.getFoo() ); } - public void testSingletonPlugin() - throws Exception - { - registerPlugin( "singleton-plugin.xml" ); - - MavenCore maven = (MavenCore) lookup( MavenCore.ROLE ); - - maven.execute( new File( System.getProperty( "user.dir"), "project.xml" ), "singleton-execute" ); - - SingletonPlugin singletonPlugin = (SingletonPlugin) getContainer().lookup( Plugin.ROLE, "singleton-plugin" ); - - assertTrue( singletonPlugin.hasExecuted() ); - - assertEquals( "Maven", singletonPlugin.getName() ); - - assertEquals( "maven-core", singletonPlugin.getArtifactId() ); - - assertEquals( "bar", singletonPlugin.getFoo() ); - } - public void testSetterPlugin() throws Exception {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]