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