Sophie

Sophie

distrib > Mageia > 7 > i586 > by-pkgid > a707ea9b689ff90cd87c29b6c477e8c2 > files > 1

maven-plugin-tools-3.5.1-1.mga7.src.rpm

From 6a2a63169b7b681decc03bfa36a3cbcd22b997b6 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Mon, 16 Mar 2015 14:29:21 +0100
Subject: [PATCH 1/3] Avoid duplicate MOJO parameters

---
 .../JavaAnnotationsMojoDescriptorExtractor.java    | 24 ++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
index a9c8ccf..7a7e70a 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
@@ -29,6 +29,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -573,7 +574,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
                 parameter.setSince( parameterAnnotationContent.getSince() );
                 parameter.setRequired( parameterAnnotationContent.required() );
 
-                mojoDescriptor.addParameter( parameter );
+                addParameter( mojoDescriptor, parameter );
             }
 
             // Component annotations
@@ -614,7 +615,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
                 //parameter.setRequired( ... );
                 parameter.setEditable( false );
 
-                mojoDescriptor.addParameter( parameter );
+                addParameter( mojoDescriptor, parameter );
             }
 
             mojoDescriptor.setPluginDescriptor( pluginDescriptor );
@@ -624,6 +625,25 @@ public class JavaAnnotationsMojoDescriptorExtractor
         return mojoDescriptors;
     }
 
+    private void addParameter( ExtendedMojoDescriptor mojoDescriptor,
+                               org.apache.maven.plugin.descriptor.Parameter parameter )
+        throws DuplicateParameterException
+    {
+        if ( mojoDescriptor.getParameters() != null )
+        {
+            for ( Iterator<?> it = mojoDescriptor.getParameters().iterator(); it.hasNext(); )
+            {
+                if ( it.next().equals( parameter ) )
+                {
+                    getLogger().warn( "Duplicate parameter " + parameter.getName() + " field in MOJO descriptor" );
+                    it.remove();
+                }
+            }
+        }
+
+        mojoDescriptor.addParameter( parameter );
+    }
+
     protected ExecuteAnnotationContent findExecuteInParentHierarchy( MojoAnnotatedClass mojoAnnotatedClass,
                                                                  Map<String, MojoAnnotatedClass> mojoAnnotatedClasses )
     {
-- 
2.5.5