You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2020/03/09 18:10:42 UTC
[maven] 05/05: [MNG-6866] extract methods, apply SLA,
introduce mass mojo adding
This is an automated email from the ASF dual-hosted git repository.
khmarbaise pushed a commit to branch MNG-6866
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 5f9665536ffcc4467284057b2885970333c68f36
Author: Lewinski, Arne <ar...@DE-L072609.groupinfra.com>
AuthorDate: Sun Feb 16 20:42:47 2020 +0100
[MNG-6866] extract methods, apply SLA, introduce mass mojo adding
---
.../maven/plugin/descriptor/PluginDescriptor.java | 10 ++
.../plugin/descriptor/PluginDescriptorBuilder.java | 128 +++++++++++++++------
2 files changed, 101 insertions(+), 37 deletions(-)
diff --git a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java
index e05d86a..01ead82 100644
--- a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java
+++ b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java
@@ -436,4 +436,14 @@ public class PluginDescriptor
}
}
+ public void addMojos( List<MojoDescriptor> mojos )
+ throws DuplicateMojoDescriptorException
+ {
+ for ( MojoDescriptor mojoDescriptor : mojos )
+ {
+ addMojo( mojoDescriptor );
+ }
+
+ }
+
}
diff --git a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
index 3df7ab4..5747d16 100644
--- a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
+++ b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
@@ -46,49 +46,102 @@ public class PluginDescriptorBuilder
public PluginDescriptor build( Reader reader, String source )
throws PlexusConfigurationException
{
- PlexusConfiguration c = buildConfiguration( reader );
+ return build( source, buildConfiguration( reader ) );
+ }
+ private PluginDescriptor build( String source, PlexusConfiguration c )
+ throws PlexusConfigurationException
+ {
PluginDescriptor pluginDescriptor = new PluginDescriptor();
pluginDescriptor.setSource( source );
- pluginDescriptor.setGroupId( c.getChild( "groupId" ).getValue() );
- pluginDescriptor.setArtifactId( c.getChild( "artifactId" ).getValue() );
- pluginDescriptor.setVersion( c.getChild( "version" ).getValue() );
- pluginDescriptor.setGoalPrefix( c.getChild( "goalPrefix" ).getValue() );
+ pluginDescriptor.setGroupId( extractGroupId( c ) );
+ pluginDescriptor.setArtifactId( extractArtifactId( c ) );
+ pluginDescriptor.setVersion( extractVersion( c ) );
+ pluginDescriptor.setGoalPrefix( extractGoalPrefix( c ) );
- pluginDescriptor.setName( c.getChild( "name" ).getValue() );
- pluginDescriptor.setDescription( c.getChild( "description" ).getValue() );
+ pluginDescriptor.setName( extractName( c ) );
+ pluginDescriptor.setDescription( extractDescription( c ) );
- String isolatedRealm = c.getChild( "isolatedRealm" ).getValue();
+ pluginDescriptor.setIsolatedRealm( extractIsolatedRealm( c ) );
+ pluginDescriptor.setInheritedByDefault( extractInheritedByDefault( c ) );
- if ( isolatedRealm != null )
+ pluginDescriptor.addMojos( extractMojos( c, pluginDescriptor ) );
+
+ pluginDescriptor.setDependencies( extractComponentDependencies( c ) );
+
+ return pluginDescriptor;
+ }
+
+ private String extractGroupId( PlexusConfiguration c )
+ {
+ return c.getChild( "groupId" ).getValue();
+ }
+
+ private String extractArtifactId( PlexusConfiguration c )
+ {
+ return c.getChild( "artifactId" ).getValue();
+ }
+
+ private String extractVersion( PlexusConfiguration c )
+ {
+ return c.getChild( "version" ).getValue();
+ }
+
+ private String extractGoalPrefix( PlexusConfiguration c )
+ {
+ return c.getChild( "goalPrefix" ).getValue();
+ }
+
+ private String extractName( PlexusConfiguration c )
+ {
+ return c.getChild( "name" ).getValue();
+ }
+
+ private String extractDescription( PlexusConfiguration c )
+ {
+ return c.getChild( "description" ).getValue();
+ }
+
+ private List<MojoDescriptor> extractMojos( PlexusConfiguration c, PluginDescriptor pluginDescriptor )
+ throws PlexusConfigurationException
+ {
+ List<MojoDescriptor> mojos = new ArrayList<>();
+
+ PlexusConfiguration[] mojoConfigurations = c.getChild( "mojos" ).getChildren( "mojo" );
+
+ for ( PlexusConfiguration component : mojoConfigurations )
{
- pluginDescriptor.setIsolatedRealm( Boolean.parseBoolean( isolatedRealm ) );
+ mojos.add( buildComponentDescriptor( component, pluginDescriptor ) );
+
}
+ return mojos;
+ }
+ private boolean extractInheritedByDefault( PlexusConfiguration c )
+ {
String inheritedByDefault = c.getChild( "inheritedByDefault" ).getValue();
if ( inheritedByDefault != null )
{
- pluginDescriptor.setInheritedByDefault( Boolean.parseBoolean( inheritedByDefault ) );
+ return Boolean.parseBoolean( inheritedByDefault );
}
+ return false;
+ }
- // ----------------------------------------------------------------------
- // Components
- // ----------------------------------------------------------------------
-
- PlexusConfiguration[] mojoConfigurations = c.getChild( "mojos" ).getChildren( "mojo" );
+ private boolean extractIsolatedRealm( PlexusConfiguration c )
+ {
+ String isolatedRealm = c.getChild( "isolatedRealm" ).getValue();
- for ( PlexusConfiguration component : mojoConfigurations )
+ if ( isolatedRealm != null )
{
- MojoDescriptor mojoDescriptor = buildComponentDescriptor( component, pluginDescriptor );
-
- pluginDescriptor.addMojo( mojoDescriptor );
+ return Boolean.parseBoolean( isolatedRealm );
}
+ return false;
+ }
- // ----------------------------------------------------------------------
- // Dependencies
- // ----------------------------------------------------------------------
+ private List<ComponentDependency> extractComponentDependencies( PlexusConfiguration c )
+ {
PlexusConfiguration[] dependencyConfigurations = c.getChild( "dependencies" ).getChildren( "dependency" );
@@ -96,22 +149,23 @@ public class PluginDescriptorBuilder
for ( PlexusConfiguration d : dependencyConfigurations )
{
- ComponentDependency cd = new ComponentDependency();
-
- cd.setArtifactId( d.getChild( "artifactId" ).getValue() );
-
- cd.setGroupId( d.getChild( "groupId" ).getValue() );
+ dependencies.add( extractComponentDependency( d ) );
+ }
+ return dependencies;
+ }
- cd.setType( d.getChild( "type" ).getValue() );
+ private ComponentDependency extractComponentDependency( PlexusConfiguration d )
+ {
+ ComponentDependency cd = new ComponentDependency();
- cd.setVersion( d.getChild( "version" ).getValue() );
+ cd.setArtifactId( extractArtifactId( d ) );
- dependencies.add( cd );
- }
+ cd.setGroupId( extractGroupId( d ) );
- pluginDescriptor.setDependencies( dependencies );
+ cd.setType( d.getChild( "type" ).getValue() );
- return pluginDescriptor;
+ cd.setVersion( extractVersion( d ) );
+ return cd;
}
@SuppressWarnings( "checkstyle:methodlength" )
@@ -190,7 +244,7 @@ public class PluginDescriptorBuilder
mojo.setInstantiationStrategy( c.getChild( "instantiationStrategy" ).getValue() );
- mojo.setDescription( c.getChild( "description" ).getValue() );
+ mojo.setDescription( extractDescription( c ) );
PlexusConfiguration dependencyResolution = c.getChild( "requiresDependencyResolution", false );
@@ -274,7 +328,7 @@ public class PluginDescriptorBuilder
{
Parameter parameter = new Parameter();
- parameter.setName( d.getChild( "name" ).getValue() );
+ parameter.setName( extractName( d ) );
parameter.setAlias( d.getChild( "alias" ).getValue() );
@@ -294,7 +348,7 @@ public class PluginDescriptorBuilder
parameter.setEditable( editable == null || Boolean.parseBoolean( editable ) );
}
- parameter.setDescription( d.getChild( "description" ).getValue() );
+ parameter.setDescription( extractDescription( d ) );
parameter.setDeprecated( d.getChild( "deprecated" ).getValue() );