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