Author: sisbell
Date: Thu Aug 28 17:32:47 2008
New Revision: 690059

URL: http://svn.apache.org/viewvc?rev=690059&view=rev
Log:
It's still possible that the exclusions properties (dependency/exclusions) will 
be sorted first when joining a container. This fix explicitly finds the base 
URI so that the ids (artifactId, groupId) will always be correct, regardless of 
order.

Modified:
    
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java

Modified: 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java?rev=690059&r1=690058&r2=690059&view=diff
==============================================================================
--- 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
 (original)
+++ 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
 Thu Aug 28 17:32:47 2008
@@ -73,22 +73,36 @@
 
         private List<ModelProperty> properties;
 
+        private static String findBaseUriFrom(List<ModelProperty> 
modelProperties)
+        {
+            String baseUri = null;
+            for(ModelProperty mp : modelProperties)
+            {
+                if(baseUri == null || mp.getUri().length() < baseUri.length())
+                {
+                    baseUri = mp.getUri();
+                }
+            }
+            return baseUri;
+        }
+
         private ArtifactModelContainer( List<ModelProperty> properties )
         {
             this.properties = new ArrayList<ModelProperty>( properties );
             this.properties = Collections.unmodifiableList( this.properties );
+            String uri = findBaseUriFrom( this.properties  );
 
             for ( ModelProperty mp : properties )
             {
-                if ( mp.getUri().endsWith( "version" ) && version == null)
+                if ( version == null && mp.getUri().equals( uri + "/version" ) 
)
                 {
                     this.version = mp.getValue();
                 }
-                else if ( mp.getUri().endsWith( "artifactId" ) && artifactId 
== null)
+                else if ( artifactId == null && mp.getUri().equals( uri + 
"/artifactId" ) )
                 {
                     this.artifactId = mp.getValue();
                 }
-                else if ( mp.getUri().endsWith( "groupId" ) && groupId == null)
+                else if ( groupId == null && mp.getUri().equals( uri + 
"/groupId" ) )
                 {
                     this.groupId = mp.getValue();
                 }


Reply via email to