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(); }