jvanzyl 2004/05/21 17:50:06 Modified: maven-plugin project.xml maven-plugin/src/test/resources/source IdeaPlugin.java Added: maven-plugin/src/main/java/org/apache/maven/plugin/generator BeanPluginGenerator.java maven-plugin/src/test/java/org/apache/maven/plugin/generator BeanPluginGeneratorTest.java Log: o a little generator that will create a wrapper which adapts an m2 plugin so it behaves like a setter bean that jelly and ant are accustom to dealing with. Revision Changes Path 1.3 +5 -0 maven-components/maven-plugin/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/project.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- project.xml 20 May 2004 16:59:45 -0000 1.2 +++ project.xml 22 May 2004 00:50:06 -0000 1.3 @@ -31,5 +31,10 @@ <artifactId>junit</artifactId> <version>3.8.1</version> </dependency> + <dependency> + <groupId>modello</groupId> + <artifactId>modello</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> </dependencies> </project> 1.1 maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/BeanPluginGenerator.java Index: BeanPluginGenerator.java =================================================================== package org.apache.maven.plugin.generator; import com.thoughtworks.xstream.xml.XMLWriter; import com.thoughtworks.xstream.xml.text.PrettyPrintXMLWriter; import org.apache.maven.plugin.descriptor.Goal; import org.apache.maven.plugin.descriptor.Parameter; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.Goal; import org.apache.maven.plugin.descriptor.Parameter; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.codehaus.modello.generator.java.javasource.JClass; import org.codehaus.modello.generator.java.javasource.JSourceWriter; import org.codehaus.modello.generator.java.javasource.JConstructor; import org.codehaus.modello.generator.java.javasource.JMethod; import org.codehaus.modello.generator.java.javasource.JField; import org.codehaus.modello.generator.java.javasource.JParameter; import org.codehaus.modello.generator.java.javasource.JType; import java.io.File; import java.io.FileWriter; import java.util.List; import java.util.Map; public class BeanPluginGenerator extends AbstractGenerator { protected String pluginArtifactName() { return "BeanPlugin.java"; } protected void writePluginArtifact( PluginDescriptor pluginDescriptor, File destination ) throws Exception { JClass jClass = new JClass( pluginArtifactName() ); // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- jClass.addImport( "org.apache.maven.plugin.BeanPluginAdapter" ); // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- jClass.setSuperClass( "BeanPluginAdapter" ); // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- jClass.setPackageName( "org.apache.maven.plugin" ); // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- JConstructor constructor = new JConstructor( jClass ); constructor.getSourceCode().add( "super( new " + pluginDescriptor.getImplementation() + "() );" ); jClass.addConstructor( constructor ); // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- List parameters = pluginDescriptor.getParameters(); for ( int i = 0; i < parameters.size(); i++ ) { Parameter parameter = (Parameter) parameters.get( i ); jClass.addMethod( createSetter( parameter ) ); } // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- FileWriter writer = new FileWriter( destination ); JSourceWriter sourceWriter = new JSourceWriter( writer ); jClass.print( sourceWriter ); writer.flush(); writer.close(); } private JMethod createSetter( Parameter parameter ) { String propertyName = capitalise( parameter.getName() ); JMethod setter = new JMethod( null, "set" + propertyName ); setter.addParameter( new JParameter( new JClass( parameter.getType() ), parameter.getName() ) ); setter.getSourceCode().add( "addParameter( " + "\"" + parameter.getName() + "\", " + parameter.getName() + " );" ); return setter; } protected String capitalise( String str ) { if ( str == null || str.length() == 0 ) { return str; } return new StringBuffer( str.length() ) .append( Character.toTitleCase( str.charAt( 0 ) ) ) .append( str.substring( 1 ) ) .toString(); } } 1.1 maven-components/maven-plugin/src/test/java/org/apache/maven/plugin/generator/BeanPluginGeneratorTest.java Index: BeanPluginGeneratorTest.java =================================================================== package org.apache.maven.plugin.generator; import junit.framework.TestCase; import java.io.File; /** * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> * @version $Id: BeanPluginGeneratorTest.java,v 1.1 2004/05/22 00:50:06 jvanzyl Exp $ */ public class BeanPluginGeneratorTest extends TestCase { public void testPluginDescriptorCreationFromPluginSource() throws Exception { String basedir = System.getProperty( "basedir" ); BeanPluginGenerator pluggy = new BeanPluginGenerator(); pluggy.execute( new File( basedir, "src/test/resources/source" ).getPath(), new File( basedir, "target" ).getPath() ); } } 1.3 +1 -1 maven-components/maven-plugin/src/test/resources/source/IdeaPlugin.java Index: IdeaPlugin.java =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/src/test/resources/source/IdeaPlugin.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- IdeaPlugin.java 20 May 2004 16:59:45 -0000 1.2 +++ IdeaPlugin.java 22 May 2004 00:50:06 -0000 1.3 @@ -11,7 +11,7 @@ * * @parameter sourceDirectory String required validator * @parameter outputDirectory String required validator - * @parameter classpathElements String[] required validator + * @parameter classpathElements String required validator * @parameter compiler String required validator * * @goal.name compile
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]