jvanzyl 2004/05/26 18:58:26 Modified: maven-plugin/src/main/java/org/apache/maven/plugin PluginExecutionRequest.java maven-plugin/src/main/java/org/apache/maven/plugin/generator AbstractGenerator.java BeanGenerator.java Main.java PluginDescriptorGenerator.java PluginXdocGenerator.java maven-plugin/src/main/java/org/apache/maven/plugin/generator/jelly JellyHarnessGenerator.java maven-plugin/src/test/resources/source IdeaPlugin.java Added: maven-plugin/src/test/java/org/apache/maven/plugin/generator BeanGeneratorTest.java Removed: 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 leave control over the destination entirely up to the generator Revision Changes Path 1.2 +1 -13 maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/PluginExecutionRequest.java Index: PluginExecutionRequest.java =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/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 16 May 2004 04:25:16 -0000 1.1 +++ PluginExecutionRequest.java 27 May 2004 01:58:26 -0000 1.2 @@ -29,8 +29,6 @@ private Map context; - private Object plugin; - public PluginExecutionRequest( Map parameters ) { context = new HashMap(); @@ -61,15 +59,5 @@ public Object getContextValue( String key ) { return context.get( key ); - } - - public void setPlugin( Object plugin ) - { - this.plugin = plugin; - } - - public Object getPlugin() - { - return plugin; } } 1.4 +2 -6 maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/AbstractGenerator.java Index: AbstractGenerator.java =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/AbstractGenerator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- AbstractGenerator.java 22 May 2004 02:46:03 -0000 1.3 +++ AbstractGenerator.java 27 May 2004 01:58:26 -0000 1.4 @@ -29,11 +29,9 @@ public static final String MAVEN_PLUGIN_MODE = "maven.plugin.mode"; - protected abstract void writePluginArtifact( PluginDescriptor pluginDescriptor, File destination ) + protected abstract void writePluginArtifact( PluginDescriptor pluginDescriptor, String destinationDirectory ) throws Exception; - protected abstract String pluginArtifactName( PluginDescriptor pluginDescriptor ); - public void execute( String sourceDirectory, String destinationDirectory ) throws Exception { @@ -53,9 +51,7 @@ { PluginDescriptor pluginDescriptor = createPluginDescriptor( javaSources[i] ); - File pluginDescriptorFile = new File( destinationDirectory, pluginArtifactName( pluginDescriptor ) ); - - writePluginArtifact( pluginDescriptor, pluginDescriptorFile ); + writePluginArtifact( pluginDescriptor, destinationDirectory ); } } } 1.2 +37 -19 maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/BeanGenerator.java Index: BeanGenerator.java =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/BeanGenerator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- BeanGenerator.java 27 May 2004 01:31:23 -0000 1.1 +++ BeanGenerator.java 27 May 2004 01:58:26 -0000 1.2 @@ -9,8 +9,8 @@ import org.codehaus.modello.generator.java.javasource.JSourceWriter; import org.codehaus.modello.generator.java.javasource.JType; -import java.io.File; import java.io.FileWriter; +import java.io.File; import java.util.List; /** @@ -20,28 +20,14 @@ public class BeanGenerator extends AbstractGenerator { - protected String pluginArtifactName( PluginDescriptor pluginDescriptor ) - { - // ---------------------------------------------------------------------- - // We will base the classname on the implementation we are wrapping - // ---------------------------------------------------------------------- - - return getClassName( pluginDescriptor ) + ".java"; - } - - protected String getClassName( PluginDescriptor pluginDescriptor ) - { - String implementation = pluginDescriptor.getImplementation(); - - return implementation.substring( implementation.lastIndexOf( "." ) + 1 ) + "Bean"; - } - - protected void writePluginArtifact( PluginDescriptor pluginDescriptor, File destination ) + protected void writePluginArtifact( PluginDescriptor pluginDescriptor, String destinationDirectory ) throws Exception { String implementation = pluginDescriptor.getImplementation(); - JClass jClass = new JClass( getClassName( pluginDescriptor ) ); + String className = implementation.substring( implementation.lastIndexOf( "." ) + 1 ) + "Bean"; + + JClass jClass = new JClass( className ); // ---------------------------------------------------------------------- // @@ -84,6 +70,15 @@ // // ---------------------------------------------------------------------- + String packageDirectory = replace( packageName, ".", "/", -1 ); + + File destination = new File( destinationDirectory, packageDirectory + "/" + className + ".java" ); + + if ( !destination.getParentFile().exists() ) + { + destination.getParentFile().mkdirs(); + } + FileWriter writer = new FileWriter( destination ); JSourceWriter sourceWriter = new JSourceWriter( writer ); @@ -134,5 +129,28 @@ .append( Character.toTitleCase( str.charAt( 0 ) ) ) .append( str.substring( 1 ) ) .toString(); + } + + protected String replace( String text, String repl, String with, int max ) + { + if ( text == null || repl == null || with == null || repl.length() == 0 ) + { + return text; + } + + StringBuffer buf = new StringBuffer( text.length() ); + int start = 0, end = 0; + while ( ( end = text.indexOf( repl, start ) ) != -1 ) + { + buf.append( text.substring( start, end ) ).append( with ); + start = end + repl.length(); + + if ( --max == 0 ) + { + break; + } + } + buf.append( text.substring( start ) ); + return buf.toString(); } } 1.4 +5 -1 maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/Main.java Index: Main.java =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/Main.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Main.java 26 May 2004 15:32:24 -0000 1.3 +++ Main.java 27 May 2004 01:58:26 -0000 1.4 @@ -38,6 +38,10 @@ { generator = new JellyHarnessGenerator(); } + else if ( mode.equals( "bean" ) ) + { + generator = new BeanGenerator(); + } generator.execute( sourceDirectory, outputDirectory ); } 1.5 +2 -7 maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/PluginDescriptorGenerator.java Index: PluginDescriptorGenerator.java =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/PluginDescriptorGenerator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PluginDescriptorGenerator.java 22 May 2004 02:46:03 -0000 1.4 +++ PluginDescriptorGenerator.java 27 May 2004 01:58:26 -0000 1.5 @@ -18,15 +18,10 @@ public class PluginDescriptorGenerator extends AbstractGenerator { - protected String pluginArtifactName( PluginDescriptor pluginDescriptor ) - { - return "plugin.xml"; - } - - protected void writePluginArtifact( PluginDescriptor pluginDescriptor, File destination ) + protected void writePluginArtifact( PluginDescriptor pluginDescriptor, String destinationDirectory ) throws Exception { - FileWriter writer = new FileWriter( destination ); + FileWriter writer = new FileWriter( new File( destinationDirectory, "plugin.xml" ) ); XMLWriter w = new PrettyPrintXMLWriter( writer ); 1.4 +2 -7 maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/PluginXdocGenerator.java Index: PluginXdocGenerator.java =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/PluginXdocGenerator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- PluginXdocGenerator.java 22 May 2004 02:46:03 -0000 1.3 +++ PluginXdocGenerator.java 27 May 2004 01:58:26 -0000 1.4 @@ -19,15 +19,10 @@ public class PluginXdocGenerator extends AbstractGenerator { - protected String pluginArtifactName( PluginDescriptor pluginDescriptor ) - { - return "plugin-doco.xml"; - } - - protected void writePluginArtifact( PluginDescriptor pluginDescriptor, File destination ) + protected void writePluginArtifact( PluginDescriptor pluginDescriptor, String destinationDirectory ) throws Exception { - FileWriter writer = new FileWriter( destination ); + FileWriter writer = new FileWriter( new File( destinationDirectory, "plugin-doco.xml" ) ); XMLWriter w = new PrettyPrintXMLWriter( writer ); 1.4 +2 -7 maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/jelly/JellyHarnessGenerator.java Index: JellyHarnessGenerator.java =================================================================== RCS file: /home/cvs/maven-components/maven-plugin/src/main/java/org/apache/maven/plugin/generator/jelly/JellyHarnessGenerator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- JellyHarnessGenerator.java 22 May 2004 15:17:14 -0000 1.3 +++ JellyHarnessGenerator.java 27 May 2004 01:58:26 -0000 1.4 @@ -18,22 +18,17 @@ public class JellyHarnessGenerator extends AbstractGenerator { - protected String pluginArtifactName( PluginDescriptor pluginDescriptor ) - { - return "plugin.jelly"; - } - protected String getClassName( PluginDescriptor pluginDescriptor ) { return pluginDescriptor.getImplementation() + "Bean"; } - protected void writePluginArtifact( PluginDescriptor pluginDescriptor, File destination ) + protected void writePluginArtifact( PluginDescriptor pluginDescriptor, String destinationDirectory ) throws Exception { String id = pluginDescriptor.getId(); - FileWriter writer = new FileWriter( destination ); + FileWriter writer = new FileWriter( new File( destinationDirectory, "plugin.jelly" ) ); PrettyPrintXMLWriter w = new PrettyPrintXMLWriter( writer ); 1.1 maven-components/maven-plugin/src/test/java/org/apache/maven/plugin/generator/BeanGeneratorTest.java Index: BeanGeneratorTest.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: BeanGeneratorTest.java,v 1.1 2004/05/27 01:58:26 jvanzyl Exp $ */ public class BeanGeneratorTest extends TestCase { public void testPluginDescriptorCreationFromPluginSource() throws Exception { String basedir = System.getProperty( "basedir" ); BeanGenerator pluggy = new BeanGenerator(); pluggy.execute( new File( basedir, "src/test/resources/source" ).getPath(), new File( basedir, "target" ).getPath() ); } } 1.4 +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.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- IdeaPlugin.java 22 May 2004 00:50:06 -0000 1.3 +++ IdeaPlugin.java 27 May 2004 01:58:26 -0000 1.4 @@ -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]