Author: bentmann Date: Sat Dec 18 00:46:38 2010 New Revision: 1050558 URL: http://svn.apache.org/viewvc?rev=1050558&view=rev Log: [MPLUGIN-176] helpmojo: Use Java 5 generics in generated help mojo
Modified: maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java Modified: maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java URL: http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java?rev=1050558&r1=1050557&r2=1050558&view=diff ============================================================================== --- maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java (original) +++ maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java Sat Dec 18 00:46:38 2010 @@ -53,6 +53,14 @@ public class HelpGeneratorMojo */ private String helpPackageName; + /** + * Generate Java 5 sources. + * + * @parameter expression="${useJava5}" default-value="false" + * @since 2.7 + */ + private boolean useJava5; + /** {...@inheritdoc} */ protected File getOutputDirectory() { @@ -62,7 +70,7 @@ public class HelpGeneratorMojo /** {...@inheritdoc} */ protected Generator createGenerator() { - return new PluginHelpGenerator().setHelpPackageName( helpPackageName ); + return new PluginHelpGenerator().setHelpPackageName( helpPackageName ).setUseJava5( useJava5 ); } /** {...@inheritdoc} */ Modified: maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java URL: http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java?rev=1050558&r1=1050557&r2=1050558&view=diff ============================================================================== --- maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java (original) +++ maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java Sat Dec 18 00:46:38 2010 @@ -66,6 +66,9 @@ public class PluginHelpGenerator private static final String HELP_GOAL = "help"; private String helpPackageName; + + /** Flag to indicate if the generated help mojo should use Java 5 features */ + private boolean useJava5; /** * Default constructor @@ -127,7 +130,7 @@ public class PluginHelpGenerator try { writer = new OutputStreamWriter( new FileOutputStream( helpClass ), request.getEncoding() ); - writeClass( writer, pluginDescriptor, helpDescriptor ); + writeClass( writer, pluginDescriptor, helpDescriptor, useJava5 ); writer.flush(); } finally @@ -142,6 +145,12 @@ public class PluginHelpGenerator return this; } + public PluginHelpGenerator setUseJava5( boolean useJava5 ) + { + this.useJava5 = useJava5; + return this; + } + // ---------------------------------------------------------------------- // Private methods // ---------------------------------------------------------------------- @@ -278,9 +287,10 @@ public class PluginHelpGenerator * @param writer not null * @param pluginDescriptor not null * @param helpDescriptor not null + * @param useJava5 If the generated code should use Java5 features * @throws IOException if any */ - private static void writeClass( Writer writer, PluginDescriptor pluginDescriptor, MojoDescriptor helpDescriptor ) + private static void writeClass( Writer writer, PluginDescriptor pluginDescriptor, MojoDescriptor helpDescriptor, boolean useJava5 ) throws IOException { String packageName = ""; @@ -303,6 +313,11 @@ public class PluginHelpGenerator writeMojoJavadoc( writer, pluginDescriptor, helpDescriptor ); + if ( useJava5 ) + { + writer.write( "@SuppressWarnings( \"all\" )" + LS ); + } + writer.write( "public class " + simpleName + LS ); writer.write( " extends AbstractMojo" + LS ); writer.write( "{" + LS );