You are viewing a plain text version of this content. The canonical link for it is here.
Posted to npanday-commits@incubator.apache.org by br...@apache.org on 2014/03/18 13:19:52 UTC

svn commit: r1578863 - /incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java

Author: brett
Date: Tue Mar 18 13:19:52 2014
New Revision: 1578863

URL: http://svn.apache.org/r1578863
Log:
avoid altering unmodifiable collection

In some circumstances, the project artifacts can be an unmodifiable
collection. To ensure that's not the case, work on a copy of the set.

Modified:
    incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java

Modified: incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java?rev=1578863&r1=1578862&r2=1578863&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java (original)
+++ incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java Tue Mar 18 13:19:52 2014
@@ -34,6 +34,7 @@ import org.apache.maven.project.MavenPro
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
+import java.util.HashSet;
 import java.util.Set;
 
 /**
@@ -91,10 +92,13 @@ public class NPandayDependencyResolution
             * dependencies to the projects DIRECT dependencies
             * */
 
-            addResolvedSpecialsToProjectDependencies( project, result );
-            // Add custom contribute dependencies to maven project dependencies 
-            project.getDependencyArtifacts().addAll(artifactResolver.getCustomDependenciesCache());
-            
+            Set<Artifact> dependencyArtifacts = new HashSet<Artifact>( project.getDependencyArtifacts() );
+            addResolvedSpecialsToProjectDependencies(result, dependencyArtifacts);
+
+            // Add custom contribute dependencies to maven project dependencies
+            dependencyArtifacts.addAll(artifactResolver.getCustomDependenciesCache());
+            project.setDependencyArtifacts(dependencyArtifacts);
+
             Set<Artifact> resultRequire = Sets.newLinkedHashSet(result.getArtifacts());
             resultRequire.addAll(artifactResolver.getCustomDependenciesCache());
 
@@ -119,7 +123,7 @@ public class NPandayDependencyResolution
         }
     }
 
-    private void addResolvedSpecialsToProjectDependencies( MavenProject project, ArtifactResolutionResult result )
+    private void addResolvedSpecialsToProjectDependencies(ArtifactResolutionResult result, Set<Artifact> dependencyArtifacts)
     {
         Set resolvedArtifacts = result.getArtifacts();
         Sets.SetView intersection = Sets.intersection(
@@ -129,11 +133,11 @@ public class NPandayDependencyResolution
         for ( Object ao : intersection )
         {
             Artifact a = (Artifact) ao;
-            if ( !project.getDependencyArtifacts().contains( a ) )
+            if ( !dependencyArtifacts.contains(a) )
             {
                 getLogger().info( "NPANDAY-148-005: Adding custom resolved " + a + " to project.dependencyArtifacts" );
 
-                project.getDependencyArtifacts().add( a );
+                dependencyArtifacts.add(a);
             }
         }