Blame SOURCES/0001-Avoid-duplicate-MOJO-parameters.patch

5d2637
From c3ac93da0ffa924b76c01bd1119e9e5fdf538cb0 Mon Sep 17 00:00:00 2001
5d2637
From: Michael Simacek <msimacek@redhat.com>
5d2637
Date: Mon, 16 Mar 2015 14:29:21 +0100
5d2637
Subject: [PATCH 1/3] Avoid duplicate MOJO parameters
5d2637
5d2637
---
5d2637
 .../JavaAnnotationsMojoDescriptorExtractor.java    | 24 ++++++++++++++++++++--
5d2637
 1 file changed, 22 insertions(+), 2 deletions(-)
5d2637
5d2637
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
5d2637
index 231f623..a034dc2 100644
5d2637
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
5d2637
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
5d2637
@@ -29,6 +29,7 @@ import java.util.Collection;
5d2637
 import java.util.Collections;
5d2637
 import java.util.HashMap;
5d2637
 import java.util.HashSet;
5d2637
+import java.util.Iterator;
5d2637
 import java.util.List;
5d2637
 import java.util.Map;
5d2637
 import java.util.Set;
5d2637
@@ -573,7 +574,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
5d2637
                 parameter.setSince( parameterAnnotationContent.getSince() );
5d2637
                 parameter.setRequired( parameterAnnotationContent.required() );
5d2637
 
5d2637
-                mojoDescriptor.addParameter( parameter );
5d2637
+                addParameter( mojoDescriptor, parameter );
5d2637
             }
5d2637
 
5d2637
             // Component annotations
5d2637
@@ -614,7 +615,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
5d2637
                 //parameter.setRequired( ... );
5d2637
                 parameter.setEditable( false );
5d2637
 
5d2637
-                mojoDescriptor.addParameter( parameter );
5d2637
+                addParameter( mojoDescriptor, parameter );
5d2637
             }
5d2637
 
5d2637
             mojoDescriptor.setPluginDescriptor( pluginDescriptor );
5d2637
@@ -624,6 +625,25 @@ public class JavaAnnotationsMojoDescriptorExtractor
5d2637
         return mojoDescriptors;
5d2637
     }
5d2637
 
5d2637
+    private void addParameter( ExtendedMojoDescriptor mojoDescriptor,
5d2637
+                               org.apache.maven.plugin.descriptor.Parameter parameter )
5d2637
+        throws DuplicateParameterException
5d2637
+    {
5d2637
+        if ( mojoDescriptor.getParameters() != null )
5d2637
+        {
5d2637
+            for ( Iterator it = mojoDescriptor.getParameters().iterator(); it.hasNext(); )
5d2637
+            {
5d2637
+                if ( it.next().equals( parameter ) )
5d2637
+                {
5d2637
+                    getLogger().warn( "Duplicate parameter " + parameter.getName() + " field in MOJO descriptor" );
5d2637
+                    it.remove();
5d2637
+                }
5d2637
+            }
5d2637
+        }
5d2637
+
5d2637
+        mojoDescriptor.addParameter( parameter );
5d2637
+    }
5d2637
+
5d2637
     protected ExecuteAnnotationContent findExecuteInParentHierarchy( MojoAnnotatedClass mojoAnnotatedClass,
5d2637
                                                                  Map<String, MojoAnnotatedClass> mojoAnnotatedClasses )
5d2637
     {
5d2637
-- 
5d2637
2.7.4
5d2637