You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2013/06/02 23:12:41 UTC

svn commit: r1488792 - /maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanDuplicatePomDependencyVersions.java

Author: rfscholte
Date: Sun Jun  2 21:12:41 2013
New Revision: 1488792

URL: http://svn.apache.org/r1488792
Log:
[MENFORCER-152] Refactor code, there are more spots with dependencies

Modified:
    maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanDuplicatePomDependencyVersions.java

Modified: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanDuplicatePomDependencyVersions.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanDuplicatePomDependencyVersions.java?rev=1488792&r1=1488791&r2=1488792&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanDuplicatePomDependencyVersions.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanDuplicatePomDependencyVersions.java Sun Jun  2 21:12:41 2013
@@ -117,37 +117,49 @@ public class BanDuplicatePomDependencyVe
     private void maven2Validation( EnforcerRuleHelper helper, Model model )
         throws EnforcerRuleException
     {
-        Map<String, Integer> depMap = new HashMap<String, Integer>();
-        Set<String> duplicateDeps = new HashSet<String>();
-
         @SuppressWarnings( "unchecked" )
         List<Dependency> dependencies = model.getDependencies();
-        for ( Dependency dependency : dependencies )
-        {
-            String key = dependency.getManagementKey();
-
-            helper.getLog().debug( "verify " + key );
 
-            int times = 0;
-            if ( depMap.containsKey( key ) )
+        Map<String, Integer> duplicateDependencies = validateDependencies( dependencies );
+        
+        if ( !duplicateDependencies.isEmpty() )
+        {
+            StringBuilder message = new StringBuilder();
+            message.append( "Found " ).append( duplicateDependencies.size() ).append( " duplicate " );
+            message.append( duplicateDependencies.size() == 1 ? "dependency" : "dependencies" ).append( " in this project:\n" );
+            for ( Map.Entry<String, Integer> entry : duplicateDependencies.entrySet() )
             {
-                times = depMap.get( key );
-                duplicateDeps.add( key );
+                message.append( " - " ).append( entry.getKey() ).append( " ( " ).append( entry.getValue() ).append( " times )\n" );
             }
-            depMap.put( key, times + 1 );
+            throw new EnforcerRuleException( message.toString() );
         }
 
-        if ( !duplicateDeps.isEmpty() )
+    }
+
+    private Map<String, Integer> validateDependencies( List<Dependency> dependencies )
+        throws EnforcerRuleException
+    {
+        Map<String, Integer> duplicateDeps = new HashMap<String, Integer>();
+        Set<String> deps = new HashSet<String>();
+        for ( Dependency dependency : dependencies )
         {
-            StringBuilder message = new StringBuilder();
-            message.append( "Found " ).append( duplicateDeps.size() ).append( " duplicate " );
-            message.append( duplicateDeps.size() == 1 ? "dependency" : "dependencies" ).append( " in this project:\n" );
-            for ( String key : duplicateDeps )
+            String key = dependency.getManagementKey();
+
+            if ( deps.contains( key ) )
             {
-                message.append( " - " ).append( key ).append( " ( " ).append( depMap.get( key ) ).append( " times )\n" );
+                int times = 1;
+                if( duplicateDeps.containsKey( key ) )
+                {
+                    times = duplicateDeps.get( key );
+                }
+                duplicateDeps.put( key, times + 1 );
+            }
+            else
+            {
+                deps.add( key );
             }
-            throw new EnforcerRuleException( message.toString() );
         }
+        return duplicateDeps;
     }
 
 }