Author: rfscholte
Date: Sun Feb  9 18:39:10 2014
New Revision: 1566347

URL: http://svn.apache.org/r1566347
Log:
[MSHARED-161] DefaultMavenFileFilter.getDefaultFilterWrappers loads filters 
from the current directory instead of using basedir

Added:
    maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/
    maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/
    
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/
    
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/
    
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/buildfilter.properties
    
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/filefilter.properties
Modified:
    
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
    
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java

Modified: 
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java?rev=1566347&r1=1566346&r2=1566347&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
 (original)
+++ 
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
 Sun Feb  9 18:39:10 2014
@@ -202,7 +202,9 @@ public class DefaultMavenFileFilter
 
         final Properties filterProperties = new Properties();
 
-        loadProperties( filterProperties, request.getFileFilters(), baseProps 
);
+        File basedir = request.getMavenProject() != null ? 
request.getMavenProject().getBasedir() : new File( "." ); 
+
+        loadProperties( filterProperties, basedir, request.getFileFilters(), 
baseProps );
         if ( filterProperties.size() < 1 )
         {
             filterProperties.putAll( baseProps );
@@ -221,7 +223,7 @@ public class DefaultMavenFileFilter
                     buildFilters.removeAll( request.getFileFilters() );
                 }
 
-                loadProperties( filterProperties, buildFilters, baseProps );
+                loadProperties( filterProperties, basedir, buildFilters, 
baseProps );
             }
 
             // Project properties
@@ -266,9 +268,9 @@ public class DefaultMavenFileFilter
     }
 
     /**
-     * protected only for testing reason !
+     * default visibility only for testing reason !
      */
-    protected void loadProperties( Properties filterProperties, List<String> 
propertiesFilePaths, Properties baseProps )
+    void loadProperties( Properties filterProperties, File basedir, 
List<String> propertiesFilePaths, Properties baseProps )
         throws MavenFilteringException
     {
         if ( propertiesFilePaths != null )
@@ -285,8 +287,8 @@ public class DefaultMavenFileFilter
                 }
                 try
                 {
-                    // TODO new File should be new 
File(mavenProject.getBasedir(), filterfile ) ?
-                    Properties properties = PropertyUtils.loadPropertyFile( 
new File( filterFile ), workProperties );
+                    File propFile = FileUtils.resolveFile( basedir, filterFile 
);
+                    Properties properties = PropertyUtils.loadPropertyFile( 
propFile, workProperties );
                     filterProperties.putAll( properties );
                     workProperties.putAll( properties );
                 }

Modified: 
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java?rev=1566347&r1=1566346&r2=1566347&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
 (original)
+++ 
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
 Sun Feb  9 18:39:10 2014
@@ -20,12 +20,18 @@ package org.apache.maven.shared.filterin
  */
 
 import java.io.File;
+import java.io.Reader;
+import java.io.StringReader;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
-import org.codehaus.plexus.PlexusTestCase;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.utils.io.FileUtils;
+import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
+import org.apache.maven.shared.utils.io.IOUtil;
+import org.codehaus.plexus.PlexusTestCase;
 
 /**
  * @author Olivier Lamy
@@ -34,6 +40,8 @@ import org.apache.maven.shared.utils.io.
 public class DefaultMavenFileFilterTest
     extends PlexusTestCase
 {
+    
+    
 
     File to = new File( getBasedir(), "target/reflection-test.properties" );
 
@@ -108,7 +116,7 @@ public class DefaultMavenFileFilterTest
     {
         DefaultMavenFileFilter mavenFileFilter = new DefaultMavenFileFilter();
 
-        File testDir = new File(getBasedir(), 
"src/test/units-files/MSHARED-177");
+        File testDir = new File( getBasedir(), 
"src/test/units-files/MSHARED-177" );
 
         List<String> filters = new ArrayList<String>();
 
@@ -118,8 +126,31 @@ public class DefaultMavenFileFilterTest
 
         final Properties filterProperties = new Properties();
 
-        mavenFileFilter.loadProperties(filterProperties, filters, new 
Properties() );
+        mavenFileFilter.loadProperties( filterProperties, new File( 
getBasedir() ), filters, new Properties() );
 
         assertTrue( filterProperties.getProperty( "third_filter_key" ).equals( 
"first and second" ) );
     }
+    
+
+    // MSHARED-161: DefaultMavenFileFilter.getDefaultFilterWrappers loads
+    // filters from the current directory instead of using basedir
+    public void testMavenBasedir()
+        throws Exception
+    {
+        MavenFileFilter mavenFileFilter = (MavenFileFilter) lookup( 
MavenFileFilter.class.getName(), "default" );
+
+        AbstractMavenFilteringRequest req = new 
AbstractMavenFilteringRequest();
+        req.setFileFilters( Collections.singletonList( 
"src/main/filters/filefilter.properties" ) );
+
+        MavenProject mavenProject = new StubMavenProject( new File( 
"src/test/units-files/MSHARED-161" ) );
+        mavenProject.getBuild().setFilters( Collections.singletonList( 
"src/main/filters/buildfilter.properties" ) );
+        req.setMavenProject( mavenProject );
+        req.setInjectProjectBuildFilters( true );
+
+        List<FilterWrapper> wrappers = 
mavenFileFilter.getDefaultFilterWrappers( req );
+        
+        Reader reader = wrappers.get(0).getReader( new StringReader( 
"${filefilter} ${buildfilter}" ) );
+        
+        assertEquals( "true true", IOUtil.toString( reader ) );
+    }
 }

Added: 
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/buildfilter.properties
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/buildfilter.properties?rev=1566347&view=auto
==============================================================================
--- 
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/buildfilter.properties
 (added)
+++ 
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/buildfilter.properties
 Sun Feb  9 18:39:10 2014
@@ -0,0 +1,19 @@
+#/*
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements.  See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership.  The ASF licenses this file
+# * to you 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.
+# */
+buildfilter=true
\ No newline at end of file

Added: 
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/filefilter.properties
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/filefilter.properties?rev=1566347&view=auto
==============================================================================
--- 
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/filefilter.properties
 (added)
+++ 
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-161/src/main/filters/filefilter.properties
 Sun Feb  9 18:39:10 2014
@@ -0,0 +1,19 @@
+#/*
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements.  See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership.  The ASF licenses this file
+# * to you 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.
+# */
+filefilter=true
\ No newline at end of file


Reply via email to