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


Reply via email to