Skip to content

Commit 8a76400

Browse files
authored
[MPLUGIN-427] only emit simple parameter type for configuration (#163)
1 parent 322a9bb commit 8a76400

File tree

3 files changed

+36
-3
lines changed

3 files changed

+36
-3
lines changed

maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorFilesGenerator.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,8 @@ else if ( type != DescriptorType.LIMITED_FOR_HELP_MOJO || parameter.isEditable()
587587

588588
w.startElement( parameter.getName() );
589589

590-
String parameterType = parameter.getType();
590+
// strip type by parameter type (generics) information
591+
String parameterType = StringUtils.chomp( parameter.getType(), "<" );
591592
if ( StringUtils.isNotEmpty( parameterType ) )
592593
{
593594
w.addAttribute( "implementation", parameterType );

maven-plugin-tools-generators/src/test/java/org/apache/maven/tools/plugin/generator/AbstractGeneratorTestCase.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
*/
2121

2222
import org.apache.maven.model.Build;
23+
import org.apache.maven.plugin.descriptor.DuplicateParameterException;
2324
import org.apache.maven.plugin.descriptor.MojoDescriptor;
2425
import org.apache.maven.plugin.descriptor.Parameter;
2526
import org.apache.maven.plugin.descriptor.PluginDescriptor;
@@ -114,14 +115,19 @@ public String getOutputDirectory()
114115
return basedir + "/target";
115116
}
116117
} );
117-
118+
extendPluginDescriptor( pluginDescriptor );
118119
generator.execute( destinationDirectory, new DefaultPluginToolsRequest( mavenProject, pluginDescriptor ) );
119120

120121
validate( destinationDirectory );
121122

122123
FileUtils.deleteDirectory( destinationDirectory );
123124
}
124125

126+
protected void extendPluginDescriptor( PluginDescriptor pluginDescriptor ) throws DuplicateParameterException
127+
{
128+
// may be overwritten
129+
}
130+
125131
// ----------------------------------------------------------------------
126132
//
127133
// ----------------------------------------------------------------------

maven-plugin-tools-generators/src/test/java/org/apache/maven/tools/plugin/generator/PluginDescriptorFilesGeneratorTest.java

+27-1
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@
2929
import java.net.URISyntaxException;
3030
import java.util.List;
3131

32+
import org.apache.maven.plugin.descriptor.DuplicateParameterException;
3233
import org.apache.maven.plugin.descriptor.MojoDescriptor;
3334
import org.apache.maven.plugin.descriptor.Parameter;
3435
import org.apache.maven.plugin.descriptor.PluginDescriptor;
3536
import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
3637
import org.apache.maven.tools.plugin.javadoc.JavadocLinkGenerator;
3738
import org.codehaus.plexus.component.repository.ComponentDependency;
39+
import org.codehaus.plexus.configuration.PlexusConfiguration;
3840
import org.codehaus.plexus.testing.PlexusTest;
3941
import org.codehaus.plexus.util.ReaderFactory;
4042
import org.junit.jupiter.api.Test;
@@ -50,6 +52,17 @@
5052
public class PluginDescriptorFilesGeneratorTest
5153
extends AbstractGeneratorTestCase
5254
{
55+
@Override
56+
protected void extendPluginDescriptor( PluginDescriptor pluginDescriptor ) throws DuplicateParameterException
57+
{
58+
Parameter parameterWithGenerics = new Parameter();
59+
parameterWithGenerics.setName( "parameterWithGenerics" );
60+
parameterWithGenerics.setType("java.util.Collection<java.lang.String>");
61+
parameterWithGenerics.setExpression( "${customParam}" );
62+
parameterWithGenerics.setDefaultValue( "a,b,c" );
63+
pluginDescriptor.getMojos().get( 0 ).addParameter( parameterWithGenerics );
64+
}
65+
5366
@Override
5467
protected void validate( File destinationDirectory )
5568
throws Exception
@@ -113,8 +126,21 @@ private void checkMojo( MojoDescriptor mojoDescriptor )
113126

114127
assertNotNull( mojoDescriptor.isDependencyResolutionRequired() );
115128

116-
// check the parameter.
129+
// check the default parameter
117130
checkParameter( mojoDescriptor.getParameters().get( 0 ) );
131+
132+
// check another parameter with generics type information
133+
Parameter parameterWithGenerics = mojoDescriptor.getParameters().get( 2 );
134+
assertNotNull( parameterWithGenerics );
135+
assertEquals( "parameterWithGenerics", parameterWithGenerics.getName() );
136+
assertEquals( "java.util.Collection", parameterWithGenerics.getType() );
137+
138+
PlexusConfiguration configurations = mojoDescriptor.getMojoConfiguration();
139+
assertNotNull( configurations );
140+
PlexusConfiguration configuration = configurations.getChild( "parameterWithGenerics" );
141+
assertEquals( "java.util.Collection", configuration.getAttribute( "implementation" ) );
142+
assertEquals( "a,b,c", configuration.getAttribute( "default-value") );
143+
assertEquals( "${customParam}", configuration.getValue() );
118144
}
119145

120146
private void checkParameter( Parameter parameter )

0 commit comments

Comments
 (0)