You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/08/04 03:23:33 UTC
svn commit: r682237 - in /maven/shared/trunk/maven-shared-model/src:
main/java/org/apache/maven/shared/model/
main/java/org/apache/maven/shared/model/impl/
test/java/org/apache/maven/shared/model/impl/
Author: sisbell
Date: Sun Aug 3 18:23:33 2008
New Revision: 682237
URL: http://svn.apache.org/viewvc?rev=682237&view=rev
Log:
Introduce concept of sets. This is needed to handle unique attributes in plugin configurations.
Modified:
maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
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
maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
maven/shared/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java
Modified: maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java?rev=682237&r1=682236&r2=682237&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java (original)
+++ maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java Sun Aug 3 18:23:33 2008
@@ -125,6 +125,11 @@
tagName = tagName + "#collection";
uri.addTag( xmlStreamReader.getName().getLocalPart() + "#collection" );
}
+ else if(collections.contains( tagName + "#set" ))
+ {
+ tagName = tagName + "#set";
+ uri.addTag( xmlStreamReader.getName().getLocalPart() + "#set" );
+ }
else
{
uri.addTag( xmlStreamReader.getName().getLocalPart() );
@@ -288,7 +293,8 @@
*/
private static List<String> getTagNamesFromUri( int basePosition, String uri )
{
- return Arrays.asList( uri.substring( basePosition ).replaceAll( "#collection", "" ).split( "/" ) );
+ return Arrays.asList( uri.substring( basePosition ).replaceAll( "#collection", "" )
+ .replaceAll("#set", "").split( "/" ) );
}
/**
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=682237&r1=682236&r2=682237&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 Sun Aug 3 18:23:33 2008
@@ -177,7 +177,7 @@
*/
public InterpolatorProperty asInterpolatorProperty( String baseUri )
{
- if ( uri.contains( "#collection" ) || value == null )
+ if ( uri.contains( "#collection" ) || uri.contains("#set") || value == null )
{
return null;
}
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=682237&r1=682236&r2=682237&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 Sun Aug 3 18:23:33 2008
@@ -259,7 +259,7 @@
processedProperties.add( p );
position.add( 0, uri );
}
- else if ( !position.contains( uri ) || parentUri.contains( "#collection" ) )
+ else if ( !position.contains( uri ) || parentUri.contains( "#collection" ) || parentUri.contains( "#set" ) )
{
int pst = position.indexOf( parentUri ) + 1;
processedProperties.add( pst, p );
Modified: maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java?rev=682237&r1=682236&r2=682237&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java (original)
+++ maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java Sun Aug 3 18:23:33 2008
@@ -362,12 +362,14 @@
String subUri = p.getUri().substring( baseUri.length(), modelPropertyLength );
if ( !uris.contains( p.getUri() ) || ( subUri.contains( "#collection" ) &&
- !subUri.endsWith( "#collection" ) ) &&
- ( !combineChildrenUris.contains( p.getUri() ) || p.getUri().endsWith( "#property/combine.children" ) ) )
+ (!subUri.endsWith( "#collection" ) && !subUri.endsWith("#set")) &&
+ ( !combineChildrenUris.contains( p.getUri() ) || p.getUri().endsWith( "#property/combine.children" ) ) ) )
{
+
processedProperties.add( findLastIndexOfParent( p, processedProperties ) + 1, p );
uris.add( p.getUri() );
}
+ //if parentUri ends in set and uri is contained don't include it
}
return processedProperties;
}
Modified: maven/shared/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java?rev=682237&r1=682236&r2=682237&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java (original)
+++ maven/shared/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java Sun Aug 3 18:23:33 2008
@@ -45,6 +45,88 @@
}
@Test
+ public void mergeModelContainersSetWithAppendChild() {
+ ModelProperty dup0 = new ModelProperty( "http://apache.org/maven/project", null );
+ ModelProperty dup1 = new ModelProperty( "http://apache.org/maven/project/build", null );
+ ModelProperty dup2 = new ModelProperty( "http://apache.org/maven/project/build/pluginManagement", null );
+ ModelProperty dup3 =
+ new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection", null );
+ ModelProperty dup4 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null );
+ ModelProperty dup5 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/configuration#set", null );
+ ModelProperty dup6 = new ModelProperty( "http://apache.org/maven/project/build/plugins#collection/plugin/configuration#set/myList#property/combine.children", "append" );
+ ModelProperty dup6a = new ModelProperty( "http://apache.org/maven/project/build/plugins#collection/plugin/configuration#set/myList#property/combine.children/a", "x" );
+ ModelProperty dup7 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "1.1" );
+ ModelProperty dup8 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null );
+ ModelProperty dup9 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/configuration#set", null );
+ ModelProperty dup10 = new ModelProperty( "http://apache.org/maven/project/build/plugins#collection/plugin/configuration#set/myList#property/combine.children", "append" );
+ ModelProperty dup10a = new ModelProperty( "http://apache.org/maven/project/build/plugins#collection/plugin/configuration#set/myList#property/combine.children/b", "y" );
+ ModelProperty dup11 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "1.1" );
+
+ List<ModelProperty> modelProperties = Arrays.asList( dup0, dup1, dup2, dup3, dup4, dup5, dup6, dup6a, dup7, dup8,
+ dup9, dup10, dup10a, dup11 );
+ DummyModelContainerFactory factory = new DummyModelContainerFactory();
+
+ DefaultModelDataSource datasource = new DefaultModelDataSource();
+ datasource.init( modelProperties, factories );
+
+ List<ModelProperty> mps = datasource.mergeModelContainers(
+ factory.create( new ArrayList<ModelProperty>( modelProperties.subList( 4, 9 ) ) ),
+ factory.create( new ArrayList<ModelProperty>( modelProperties.subList( 9, 13 ) ) ) );
+ for(ModelProperty mp : mps) {
+ System.out.println(mp);
+ }
+ }
+
+
+ @Test
+ public void mergeModelContainersSet() {
+ ModelProperty dup0 = new ModelProperty( "http://apache.org/maven/project", null );
+ ModelProperty dup1 = new ModelProperty( "http://apache.org/maven/project/build", null );
+ ModelProperty dup2 = new ModelProperty( "http://apache.org/maven/project/build/pluginManagement", null );
+ ModelProperty dup3 =
+ new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection", null );
+ ModelProperty dup4 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null );
+ ModelProperty dup5 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/configuration#set", null );
+ ModelProperty dup6 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/configuration#set/jdk",
+ "1.5" );
+ ModelProperty dup7 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "1.1" );
+ ModelProperty dup8 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null );
+ ModelProperty dup9 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/configuration#set", null );
+ ModelProperty dup10 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/configuration#set/jdk",
+ "1.4" );
+ ModelProperty dup11 = new ModelProperty(
+ "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "1.1" );
+
+ List<ModelProperty> modelProperties = Arrays.asList( dup0, dup1, dup2, dup3, dup4, dup5, dup6, dup7, dup8,
+ dup9, dup10, dup11 );
+ DummyModelContainerFactory factory = new DummyModelContainerFactory();
+
+ DefaultModelDataSource datasource = new DefaultModelDataSource();
+ datasource.init( modelProperties, factories );
+
+ List<ModelProperty> mps = datasource.mergeModelContainers(
+ factory.create( new ArrayList<ModelProperty>( modelProperties.subList( 4, 8 ) ) ),
+ factory.create( new ArrayList<ModelProperty>( modelProperties.subList( 8, 11 ) ) ) );
+ for(ModelProperty mp : mps) {
+ System.out.println(mp);
+ }
+ assertFalse(mps.contains(dup10));
+ }
+
+ @Test
public void mergeModelContainersCollectionsOfCollections()
throws IOException
{
@@ -53,28 +135,19 @@
new ModelProperty( "http://apache.org/maven/project/build", null ),
new ModelProperty( "http://apache.org/maven/project/build/pluginManagement", null ),
new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection", null ),
-
- new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin",
- null ), new ModelProperty(
- "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "2.0.2" ),
- new ModelProperty(
- "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/artifactId",
- "maven-compiler-plugin" ), new ModelProperty(
- "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/groupId",
- "org.apache.maven.plugins" ),
-
- new ModelProperty(
- "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection",
- null ), new ModelProperty(
- "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency",
- null ), new ModelProperty(
+ new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null ),
+ new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "2.0.2" ),
+ new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/artifactId", "maven-compiler-plugin" ),
+ new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/groupId", "org.apache.maven.plugins" ),
+ new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection", null ),
+ new ModelProperty( "http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency", null ),
+ new ModelProperty(
"http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/groupId",
"gid1" ), new ModelProperty(
"http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/artifactId",
"art1" ), new ModelProperty(
"http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/version",
"2.0" ),
-
new ModelProperty(
"http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null ),
new ModelProperty(