You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by st...@apache.org on 2012/08/16 10:55:54 UTC
svn commit: r1373761 -
/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java
Author: stephenc
Date: Thu Aug 16 08:55:53 2012
New Revision: 1373761
URL: http://svn.apache.org/viewvc?rev=1373761&view=rev
Log:
[MNG-5280] Inconsistent order of repositories and pluginRepositories from profiles in settings (regression Maven 3)
Submitted by: Anders Hammar
* Applied without change
* This is the fix of the bug.
Modified:
maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java
Modified: maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java?rev=1373761&r1=1373760&r2=1373761&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java (original)
+++ maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java Thu Aug 16 08:55:53 2012
@@ -313,6 +313,46 @@ public class MavenModelMerger
}
}
+ protected void mergeModelBase_PluginRepositories( ModelBase target, ModelBase source, boolean sourceDominant,
+ Map<Object, Object> context )
+ {
+ List<Repository> src = source.getPluginRepositories();
+ if ( !src.isEmpty() )
+ {
+ List<Repository> tgt = target.getPluginRepositories();
+ Map<Object, Repository> merged = new LinkedHashMap<Object, Repository>( ( src.size() + tgt.size() ) * 2 );
+
+ List<Repository> dominant, recessive;
+ if ( sourceDominant )
+ {
+ dominant = src;
+ recessive = tgt;
+ }
+ else
+ {
+ dominant = tgt;
+ recessive = src;
+ }
+
+ for ( Repository element : dominant )
+ {
+ Object key = getRepositoryKey( element );
+ merged.put( key, element );
+ }
+
+ for ( Repository element : recessive )
+ {
+ Object key = getRepositoryKey( element );
+ if ( !merged.containsKey( key ) )
+ {
+ merged.put( key, element );
+ }
+ }
+
+ target.setPluginRepositories( new ArrayList<Repository>( merged.values() ) );
+ }
+ }
+
/*
* TODO: Whether duplicates should be removed looks like an option for the generated merger.
*/