You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/09/22 04:53:04 UTC

svn commit: r290877 - in /maven/components/trunk: maven-core-it/ maven-core-it/it0054/ maven-core-it/it0054/src/ maven-core-it/it0054/src/main/ maven-core-it/it0054/src/main/filters/ maven-core-it/it0054/src/main/java/ maven-core-it/it0054/src/main/jav...

Author: brett
Date: Wed Sep 21 19:52:39 2005
New Revision: 290877

URL: http://svn.apache.org/viewcvs?rev=290877&view=rev
Log:
PR: MNG-788
add filtering to the build element

Added:
    maven/components/trunk/maven-core-it/it0054/   (with props)
    maven/components/trunk/maven-core-it/it0054/expected-results.txt   (with props)
    maven/components/trunk/maven-core-it/it0054/goals.txt   (with props)
    maven/components/trunk/maven-core-it/it0054/pom.xml   (with props)
    maven/components/trunk/maven-core-it/it0054/src/
    maven/components/trunk/maven-core-it/it0054/src/main/
    maven/components/trunk/maven-core-it/it0054/src/main/filters/
    maven/components/trunk/maven-core-it/it0054/src/main/filters/filters.properties   (with props)
    maven/components/trunk/maven-core-it/it0054/src/main/java/
    maven/components/trunk/maven-core-it/it0054/src/main/java/org/
    maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/
    maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/
    maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/it0054/
    maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/it0054/Person.java   (with props)
    maven/components/trunk/maven-core-it/it0054/src/main/resources/
    maven/components/trunk/maven-core-it/it0054/src/main/resources/it0054.properties   (with props)
    maven/components/trunk/maven-core-it/it0054/src/test/
    maven/components/trunk/maven-core-it/it0054/src/test/java/
    maven/components/trunk/maven-core-it/it0054/src/test/java/org/
    maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/
    maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/
    maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/it0054/
    maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/it0054/PersonTest.java   (with props)
Modified:
    maven/components/trunk/maven-core-it/README.txt
    maven/components/trunk/maven-core-it/integration-tests.txt
    maven/components/trunk/maven-model/maven.mdo
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java

Modified: maven/components/trunk/maven-core-it/README.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/README.txt?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/README.txt (original)
+++ maven/components/trunk/maven-core-it/README.txt Wed Sep 21 19:52:39 2005
@@ -150,6 +150,8 @@
         as the main artifact. This will not correctly verify until we have
         some way to pattern-match the buildnumber/timestamp...
 
+it0054: Test resource filtering.
+
 it0055: Test that source includes/excludes with in the compiler plugin config.
         This will test excludes and testExcludes...
 
@@ -191,7 +193,6 @@
 - generated sources
 - generated resources from sources
 - generated resources from generated sources
-- filtered resources
 - build that requires a plugin download
 - transitive dependencies
 - goal attainment not requiring depedency resolution

Modified: maven/components/trunk/maven-core-it/integration-tests.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/integration-tests.txt?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/integration-tests.txt (original)
+++ maven/components/trunk/maven-core-it/integration-tests.txt Wed Sep 21 19:52:39 2005
@@ -11,6 +11,7 @@
 it0057
 it0056
 it0055
+it0054
 it0053
 it0052
 it0051

Propchange: maven/components/trunk/maven-core-it/it0054/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Sep 21 19:52:39 2005
@@ -0,0 +1,2 @@
+target
+log.txt

Added: maven/components/trunk/maven-core-it/it0054/expected-results.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0054/expected-results.txt?rev=290877&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0054/expected-results.txt (added)
+++ maven/components/trunk/maven-core-it/it0054/expected-results.txt Wed Sep 21 19:52:39 2005
@@ -0,0 +1,4 @@
+target/classes/org/apache/maven/it0054/Person.class
+target/test-classes/org/apache/maven/it0054/PersonTest.class
+target/maven-core-it0054-1.0.jar
+target/maven-core-it0054-1.0.jar!/it0054.properties

Propchange: maven/components/trunk/maven-core-it/it0054/expected-results.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0054/expected-results.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0054/goals.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0054/goals.txt?rev=290877&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0054/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it0054/goals.txt Wed Sep 21 19:52:39 2005
@@ -0,0 +1 @@
+package

Propchange: maven/components/trunk/maven-core-it/it0054/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0054/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0054/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0054/pom.xml?rev=290877&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0054/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0054/pom.xml Wed Sep 21 19:52:39 2005
@@ -0,0 +1,27 @@
+<model>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core-it0054</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <type>jar</type>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <filters>
+      <filter>src/main/filters/filters.properties</filter>
+    </filters>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+      </resource>
+    </resources>
+  </build>
+</model>

Propchange: maven/components/trunk/maven-core-it/it0054/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0054/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0054/src/main/filters/filters.properties
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0054/src/main/filters/filters.properties?rev=290877&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0054/src/main/filters/filters.properties (added)
+++ maven/components/trunk/maven-core-it/it0054/src/main/filters/filters.properties Wed Sep 21 19:52:39 2005
@@ -0,0 +1,2 @@
+surname = van zyl
+country = Canada

Propchange: maven/components/trunk/maven-core-it/it0054/src/main/filters/filters.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0054/src/main/filters/filters.properties
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/it0054/Person.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/it0054/Person.java?rev=290877&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/it0054/Person.java (added)
+++ maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/it0054/Person.java Wed Sep 21 19:52:39 2005
@@ -0,0 +1,16 @@
+package org.apache.maven.it0054;
+
+public class Person
+{
+    private String name;
+    
+    public void setName( String name )
+    {
+        this.name = name;
+    }
+    
+    public String getName()
+    {
+        return name;
+    }
+}

Propchange: maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/it0054/Person.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0054/src/main/java/org/apache/maven/it0054/Person.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0054/src/main/resources/it0054.properties
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0054/src/main/resources/it0054.properties?rev=290877&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0054/src/main/resources/it0054.properties (added)
+++ maven/components/trunk/maven-core-it/it0054/src/main/resources/it0054.properties Wed Sep 21 19:52:39 2005
@@ -0,0 +1,3 @@
+name = jason
+surname = ${surname}
+country = @country@

Propchange: maven/components/trunk/maven-core-it/it0054/src/main/resources/it0054.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0054/src/main/resources/it0054.properties
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/it0054/PersonTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/it0054/PersonTest.java?rev=290877&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/it0054/PersonTest.java (added)
+++ maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/it0054/PersonTest.java Wed Sep 21 19:52:39 2005
@@ -0,0 +1,24 @@
+package org.apache.maven.it0054;
+
+import java.util.Properties;
+import junit.framework.TestCase;
+
+public class PersonTest
+    extends TestCase
+{
+    public void testPerson()
+        throws Exception
+    {
+        Person person = new Person();
+        
+        person.setName( "foo" );
+        
+        assertEquals( "foo", person.getName() );
+
+        Properties p = new Properties();
+        p.load( getClass().getResourceAsStream( "/it0054.properties" ) );
+        assertEquals( "check name", "jason", p.getProperty( "name" ) );
+        assertEquals( "check surname", "van zyl", p.getProperty( "surname" ) );
+        assertEquals( "check country", "Canada", p.getProperty( "country" ) );
+    }
+}

Propchange: maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/it0054/PersonTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0054/src/test/java/org/apache/maven/it0054/PersonTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-model/maven.mdo
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-model/maven.mdo?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-model/maven.mdo (original)
+++ maven/components/trunk/maven-model/maven.mdo Wed Sep 21 19:52:39 2005
@@ -856,6 +856,17 @@
           ]]></description>
           <type>String</type>
         </field>
+        <field>
+          <name>filters</name>
+          <version>4.0.0</version>
+          <description><![CDATA[
+          The list of filter properties files that are used when filtering is enabled.
+          ]]></description>
+          <association>
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
       </fields>
     </class>
     <class>

Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml Wed Sep 21 19:52:39 2005
@@ -2,7 +2,7 @@
   <parent>
     <artifactId>maven-plugin-parent</artifactId>
     <groupId>org.apache.maven.plugins</groupId>
-    <version>2.0-beta-1</version>
+    <version>2.0-beta-2-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.maven.plugins</groupId>
@@ -31,4 +31,4 @@
       <scope>test</scope>
     </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>

Modified: maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml Wed Sep 21 19:52:39 2005
@@ -9,6 +9,9 @@
   <packaging>maven-plugin</packaging>
   <name>Maven Resources Plugin</name>
   <version>2.0-beta-2-SNAPSHOT</version>
+  <prerequisites>
+    <maven>2.0-beta-2-SNAPSHOT</maven>
+  </prerequisites>
   <dependencies>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -22,7 +25,7 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-model</artifactId>
-      <version>2.0-beta-1</version>
+      <version>2.0-beta-2-SNAPSHOT</version>
     </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>

Modified: maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java Wed Sep 21 19:52:39 2005
@@ -69,13 +69,15 @@
      * Wheter to apply filters during transfer.
      *
      * @parameter
+     * @deprecated
      */
-    private boolean filtering = false;
+    private boolean filtering = true;
 
     /**
      * The name of the filter property file to use.
      *
      * @parameter expression="${basedir}/filter.properties"
+     * @deprecated use the filters section of the POM.
      */
     private File filterPropertiesFile;
 
@@ -92,6 +94,11 @@
 
     private static final String[] DEFAULT_INCLUDES = {"**/**"};
 
+    /**
+     * @parameter expression="${project.build.filters}"
+     */
+    private List filters;
+
     public void execute()
         throws MojoExecutionException
     {
@@ -173,13 +180,34 @@
     {
         if ( filtering )
         {
-            try
+            if ( filters == null || filters.isEmpty() && filterPropertiesFile.exists() )
             {
-                filterProperties = PropertyUtils.loadPropertyFile( filterPropertiesFile, true, true );
+                // Deprecated - remove
+                try
+                {
+                    filterProperties = PropertyUtils.loadPropertyFile( filterPropertiesFile, true, true );
+                }
+                catch ( IOException e )
+                {
+                    throw new MojoExecutionException( "Error loading property file '" + filterPropertiesFile + "'", e );
+                }
             }
-            catch ( IOException e )
+            else
             {
-                throw new MojoExecutionException( "Error loading property file '" + filterPropertiesFile + "'", e );
+                filterProperties = new Properties();
+                for ( Iterator i = filters.iterator(); i.hasNext(); )
+                {
+                    String filtersfile = (String) i.next();
+                    try
+                    {
+                        Properties properties = PropertyUtils.loadPropertyFile( new File( filtersfile ), true, true );
+                        filterProperties.putAll( properties );
+                    }
+                    catch ( IOException e )
+                    {
+                        throw new MojoExecutionException( "Error loading property file '" + filtersfile + "'", e );
+                    }
+                }
             }
         }
     }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Wed Sep 21 19:52:39 2005
@@ -1440,4 +1440,8 @@
         return getModel().getProperties();
     }
 
+    public List getFilters()
+    {
+        return getBuild().getFilters();
+    }
 }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java Wed Sep 21 19:52:39 2005
@@ -113,6 +113,18 @@
                 modelBuild.setTestResources( profileTestResources );
             }
 
+            if ( profileBuild.getFilters() != null )
+            {
+                if ( modelBuild.getFilters() == null )
+                {
+                    modelBuild.setFilters( profileBuild.getFilters() );
+                }
+                else
+                {
+                    modelBuild.getFilters().addAll( profileBuild.getFilters() );
+                }
+            }
+
             injectPlugins( profileBuild, modelBuild );
 
             // Plugin management :: aggregate

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java Wed Sep 21 19:52:39 2005
@@ -1,5 +1,21 @@
 package org.apache.maven.project.overlay;
 
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Extension;
 import org.apache.maven.model.Plugin;
@@ -10,6 +26,9 @@
 import java.util.List;
 import java.util.Map;
 
+/**
+ * @todo why delegate? this is asking for trouble when there are additions.
+ */
 public class BuildOverlay
     extends Build
 {
@@ -234,4 +253,23 @@
         return build.toString();
     }
 
+    public void addFilter( String string )
+    {
+        build.addFilter( string );   
+    } //-- void addFilter(String)
+
+    public List getFilters()
+    {
+        return build.getFilters();
+    } //-- java.util.List getFilters()
+
+    public void removeFilter( String string )
+    {
+        build.removeFilter( string );
+    } //-- void removeFilter(String)
+
+    public void setFilters( List filters )
+    {
+        build.setFilters( filters );
+    } //-- void setFilters(java.util.List)
 }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java?rev=290877&r1=290876&r2=290877&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java Wed Sep 21 19:52:39 2005
@@ -22,6 +22,8 @@
 
 import java.io.File;
 import java.util.Iterator;
+import java.util.List;
+import java.util.ArrayList;
 
 public class DefaultPathTranslator
     implements PathTranslator
@@ -54,6 +56,18 @@
                 Resource resource = (Resource) i.next();
 
                 resource.setDirectory( alignToBaseDirectory( resource.getDirectory(), basedir ) );
+            }
+
+            if ( build.getFilters() != null )
+            {
+                List filters = new ArrayList();
+                for ( Iterator i = build.getFilters().iterator(); i.hasNext(); )
+                {
+                    String filter = (String) i.next();
+
+                    filters.add( alignToBaseDirectory( filter, basedir ) );
+                }
+                build.setFilters( filters );
             }
 
             build.setOutputDirectory( alignToBaseDirectory( build.getOutputDirectory(), basedir ) );



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org