You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2008/12/13 19:16:41 UTC
svn commit: r726247 - in /maven/components/branches/maven-2.1.x: ./
maven-model/src/main/mdo/maven.mdo
maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
Author: bentmann
Date: Sat Dec 13 10:16:40 2008
New Revision: 726247
URL: http://svn.apache.org/viewvc?rev=726247&view=rev
Log:
[MNG-3899] Inheritance does not merge extensions with same gid and aid
o Merged from r726244
Modified:
maven/components/branches/maven-2.1.x/ (props changed)
maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
Propchange: maven/components/branches/maven-2.1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Dec 13 10:16:40 2008
@@ -1,5 +1,5 @@
/maven/components/branches/maven-2.0.10-RC:679193-679867,680477-688882,725329-725330,725342,725349,725359
-/maven/components/branches/maven-2.0.x:679552-679867,709032,709208,709241,720042,725949
+/maven/components/branches/maven-2.0.x:679552-679867,709032,709208,709241,720042,725949,726244
/maven/components/branches/maven-2.1.0-M1-RC:690315,691793-694304
/maven/components/branches/maven-2.1.0-RC:688883,689695,689976,689990
/maven/components/trunk:720001,721902
Modified: maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo?rev=726247&r1=726246&r2=726247&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo (original)
+++ maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo Sat Dec 13 10:16:40 2008
@@ -3365,6 +3365,17 @@
<code>
<![CDATA[
/**
+ * Gets the key of the extension. The key is used to merge extensions inherited from a parent with the extensions
+ * of the current project.
+ *
+ * @return The key of the extension, i.e. <code>groupId:artifactId</code>.
+ */
+ public String getKey()
+ {
+ return new StringBuffer( 128 ).append( getGroupId() ).append( ':' ).append( getArtifactId() ).toString();
+ }
+
+ /**
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals( Object o )
Modified: maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java?rev=726247&r1=726246&r2=726247&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java (original)
+++ maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java Sat Dec 13 10:16:40 2008
@@ -1462,14 +1462,34 @@
public static void mergeExtensionLists( Build childBuild, Build parentBuild )
{
- for ( Iterator i = parentBuild.getExtensions().iterator(); i.hasNext(); )
+ Map extMap = new LinkedHashMap();
+
+ List ext = childBuild.getExtensions();
+
+ if ( ext != null )
{
- Extension e = (Extension) i.next();
- if ( !childBuild.getExtensions().contains( e ) )
+ for ( Iterator it = ext.iterator(); it.hasNext(); )
{
- childBuild.addExtension( e );
+ Extension extension = (Extension) it.next();
+ extMap.put( extension.getKey(), extension );
}
}
+
+ ext = parentBuild.getExtensions();
+
+ if ( ext != null )
+ {
+ for ( Iterator it = ext.iterator(); it.hasNext(); )
+ {
+ Extension extension = (Extension) it.next();
+ if ( !extMap.containsKey( extension.getKey() ) )
+ {
+ extMap.put( extension.getKey(), extension );
+ }
+ }
+ }
+
+ childBuild.setExtensions( new ArrayList( extMap.values() ) );
}
public static void mergeResourceLists( List childResources, List parentResources )