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 2009/02/03 23:43:53 UTC
svn commit: r740495 - in /maven/components/trunk:
maven-project-builder/src/main/java/org/apache/maven/project/builder/
maven-project/src/test/java/org/apache/maven/project/builder/
maven-project/src/test/resources-project-builder/multiple-filters/
Author: sisbell
Date: Tue Feb 3 22:43:53 2009
New Revision: 740495
URL: http://svn.apache.org/viewvc?rev=740495&view=rev
Log:
MNG-4008: Multiple filters.
Added:
maven/components/trunk/maven-project/src/test/resources-project-builder/multiple-filters/
maven/components/trunk/maven-project/src/test/resources-project-builder/multiple-filters/pom.xml
Modified:
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProjectUri.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java?rev=740495&r1=740494&r2=740495&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java Tue Feb 3 22:43:53 2009
@@ -559,7 +559,6 @@
}
tmp.removeAll(replace);
-
//Missing Version Rule
if ( getPropertyFor( ProjectUri.version, tmp ) == null )
@@ -742,6 +741,27 @@
modelProperties.removeAll( clearedProperties );
}
+ //Rules processed on collapsed pom
+
+ //Rule: Remove duplicate filters
+ List<ModelProperty> removedProperties = new ArrayList<ModelProperty>();
+ List<String> filters = new ArrayList<String>();
+ for(ModelProperty mp : modelProperties)
+ {
+ if(mp.getUri().equals(ProjectUri.Build.Filters.filter))
+ {
+ if(filters.contains(mp.getResolvedValue()))
+ {
+ removedProperties.add(mp);
+ }
+ else
+ {
+ filters.add(mp.getResolvedValue());
+ }
+ }
+ }
+ modelProperties.removeAll(removedProperties);
+
//Rule: Build plugin config overrides reporting plugin config
ModelDataSource source = new DefaultModelDataSource( modelProperties, PomTransformer.MODEL_CONTAINER_FACTORIES );
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProjectUri.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProjectUri.java?rev=740495&r1=740494&r2=740495&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProjectUri.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProjectUri.java Tue Feb 3 22:43:53 2009
@@ -350,7 +350,7 @@
public static class Filters
{
- public static String xUri = "http://apache.org/maven/project/build/filters#set";
+ public static String xUri = "http://apache.org/maven/project/build/filters#collection";
public static String filter = xUri + "/filter";
}
Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java?rev=740495&r1=740494&r2=740495&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java Tue Feb 3 22:43:53 2009
@@ -136,6 +136,15 @@
}
+ /*MNG- 4008*/
+ public void testMultipleFilters()
+ throws Exception
+ {
+ PomTestWrapper pom = buildPom( "multiple-filters" );
+ assertEquals( 4, ( (List<?>) pom.getValue( "build/filters" ) ).size() );
+
+ }
+
/*MNG-4005 - not implemented
public void testDependenciesDifferentVersions()
throws Exception
@@ -748,11 +757,12 @@
assertPathWithNormalizedFileSeparators( pom.getValue( "reporting/outputDirectory" ) );
}
- /* FIXME: cf. MNG-4008
+ /* MNG-4008 */
public void testMergedFilterOrder()
throws Exception
{
PomTestWrapper pom = buildPom( "merged-filter-order/sub" );
+
System.out.println(pom.getValue( "build/filters" ));
assertEquals( 7, ( (List<?>) pom.getValue( "build/filters" ) ).size() );
assertTrue( pom.getValue( "build/filters[1]" ).toString().endsWith( "child-a.properties" ) );
@@ -763,7 +773,7 @@
assertTrue( pom.getValue( "build/filters[6]" ).toString().endsWith( "parent-b.properties" ) );
assertTrue( pom.getValue( "build/filters[7]" ).toString().endsWith( "parent-d.properties" ) );
}
- //*/
+
private void assertPathWithNormalizedFileSeparators( Object value )
{
Added: maven/components/trunk/maven-project/src/test/resources-project-builder/multiple-filters/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources-project-builder/multiple-filters/pom.xml?rev=740495&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources-project-builder/multiple-filters/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources-project-builder/multiple-filters/pom.xml Tue Feb 3 22:43:53 2009
@@ -0,0 +1,16 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>a</groupId>
+ <artifactId>b</artifactId>
+
+ <build>
+ <filters>
+ <filter>src/main/filters/a.properties</filter>
+ <filter>src/main/filters/c.properties</filter>
+ <filter>src/main/filters/b.properties</filter>
+ <filter>src/main/filters/d.properties</filter>
+ </filters>
+ </build>
+
+</project>
\ No newline at end of file