Author: sisbell Date: Tue Aug 26 21:50:45 2008 New Revision: 689358 URL: http://svn.apache.org/viewvc?rev=689358&view=rev Log: Fixed a number of issues related to proper sorting, merging of properties.
Modified: maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java Modified: maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java?rev=689358&r1=689357&r2=689358&view=diff ============================================================================== --- maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java (original) +++ maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java Tue Aug 26 21:50:45 2008 @@ -85,7 +85,22 @@ unresolvedExpressions.add( matcher.group( 0 ) ); } } - depth = uri.split( "/" ).length; + + String uriWithoutProperty; + int index = uri.lastIndexOf( "/" ); + if(index > -1) { + uriWithoutProperty = uri.substring( 0, uri.lastIndexOf( "/" ) ); + if(uriWithoutProperty.endsWith("#property")) + { + uriWithoutProperty = uriWithoutProperty.substring( 0, uriWithoutProperty.lastIndexOf( "/" ) ); + } + } + else + { + uriWithoutProperty = uri; + } + + depth = uriWithoutProperty.split( "/" ).length; } /** Modified: maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java?rev=689358&r1=689357&r2=689358&view=diff ============================================================================== --- maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java (original) +++ maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java Tue Aug 26 21:50:45 2008 @@ -299,7 +299,13 @@ for ( ModelProperty p : properties ) { String uri = p.getUri(); - String parentUri = uri.substring( 0, uri.lastIndexOf( "/" ) ).replaceAll( "#property", "" ); + String parentUri = uri.substring( 0, uri.lastIndexOf( "/" ) ); + if(parentUri.endsWith("#property") && !parentUri.substring( 0, parentUri.lastIndexOf( "/" )).equals(baseUri)) + { + parentUri = parentUri.substring( 0, parentUri.lastIndexOf( "/" ) ); + } + parentUri = parentUri.replaceAll("#property", ""); + if ( !projectIsContained && uri.equals( baseUri ) ) { projectIsContained = true; @@ -309,6 +315,11 @@ else if ( !position.contains( uri ) || parentUri.contains( "#collection" ) || parentUri.contains( "#set" ) ) { int pst = position.indexOf( parentUri ) + 1; + if(pst == 0 && !uri.equals(properties.get(0).getUri()) ) + { + throw new IllegalArgumentException("Could not locate parent: Parent URI = " + parentUri + + ": Child - " + p.toString()); + } processedProperties.add( pst, p ); position.add( pst, uri ); }