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() );