You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2008/02/01 00:48:42 UTC
svn commit: r617299 - in /maven/sandbox/trunk/shared/maven-filtering/src:
main/java/org/apache/maven/shared/filtering/
test/java/org/apache/maven/shared/filtering/
test/units-files/maven-resources-filtering/
Author: olamy
Date: Thu Jan 31 15:48:31 2008
New Revision: 617299
URL: http://svn.apache.org/viewvc?rev=617299&view=rev
Log:
add project filter files in the value interpolation Map
add a hack for interpolation on file for windows
Modified:
maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/ReflectionProperties.java
maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java
maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt
Modified: maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java?rev=617299&r1=617298&r2=617299&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java (original)
+++ maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java Thu Jan 31 15:48:31 2008
@@ -42,7 +42,7 @@
public class DefaultMavenFileFilter
implements MavenFileFilter
{
-
+
/**
* @see org.apache.maven.shared.filtering.MavenFileFilter#copyFile(java.io.File, java.io.File, boolean, org.apache.maven.project.MavenProject, java.util.List)
*/
@@ -119,7 +119,46 @@
}
}
}
+
+ List buildFilters = mavenProject.getFilters();
+ if (buildFilters != null)
+ {
+ for (Iterator iterator = buildFilters.iterator();iterator.hasNext();)
+ {
+ String filterFile = (String) iterator.next();
+ try
+ {
+
+ Properties properties = PropertyUtils.loadPropertyFile( new File( filterFile ), baseProps );
+ filterProperties.putAll( properties );
+ }
+ catch ( IOException e )
+ {
+ throw new MavenFilteringException( "Error loading property file '" + filterFile + "'", e );
+ }
+ }
+ }
+
+ buildFilters = mavenProject.getBuild().getFilters();
+ if (buildFilters != null)
+ {
+ for (Iterator iterator = buildFilters.iterator();iterator.hasNext();)
+ {
+ String filterFile = (String) iterator.next();
+ try
+ {
+
+ Properties properties = PropertyUtils.loadPropertyFile( new File( filterFile ), baseProps );
+ filterProperties.putAll( properties );
+ }
+ catch ( IOException e )
+ {
+ throw new MavenFilteringException( "Error loading property file '" + filterFile + "'", e );
+ }
+ }
+ }
+
List defaultFilterWrappers = new ArrayList( 3 );
// support ${token}
@@ -151,6 +190,7 @@
return new InterpolationFilterReader( reader, reflectionProperties, "${", "}" );
}
};
+
defaultFilterWrappers.add( third );
return defaultFilterWrappers;
Modified: maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java?rev=617299&r1=617298&r2=617299&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java (original)
+++ maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java Thu Jan 31 15:48:31 2008
@@ -62,8 +62,8 @@
* Will return the default FileUtils.FilterWrappers
*
* <ul>
- * <li>interpolation with token ${ } and values from System.getProperties, project.getProperties and from filters.</li>
- * <li>interpolation with token @ @ and values from System.getProperties, project.getProperties and from filters.</li>
+ * <li>interpolation with token ${ } and values from System.getProperties, project.getProperties, from filters and project filters.</li>
+ * <li>interpolation with token @ @ and values from System.getProperties, project.getProperties, from filters and project filters.</li>
* <li>interpolation with token ${ } and values from mavenProject interpolation.</li>
* </ul>
*
Modified: maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/ReflectionProperties.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/ReflectionProperties.java?rev=617299&r1=617298&r2=617299&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/ReflectionProperties.java (original)
+++ maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/ReflectionProperties.java Thu Jan 31 15:48:31 2008
@@ -19,6 +19,7 @@
* under the License.
*/
+import java.io.File;
import java.util.AbstractMap;
import java.util.Set;
@@ -58,24 +59,37 @@
Object value = null;
try
{
- value = ReflectionValueExtractor.evaluate( "" + key , project );
+ value = ReflectionValueExtractor.evaluate( "" + key, project );
- if ( escapedBackslashesInFilePath && value != null &&
- "java.lang.String".equals( value.getClass().getName() ) )
+ if ( escapedBackslashesInFilePath && value != null
+ && "java.lang.String".equals( value.getClass().getName() ) )
{
String val = (String) value;
// Check if it's a windows path
if ( val.indexOf( ":\\" ) == 1 )
{
- value = StringUtils.replace( (String)value, "\\", "\\\\" );
- value = StringUtils.replace( (String)value, ":", "\\:" );
+ value = StringUtils.replace( (String) value, "\\", "\\\\" );
+ value = StringUtils.replace( (String) value, ":", "\\:" );
}
}
+ else if ( escapedBackslashesInFilePath && value != null
+ && File.class.getName().equals( value.getClass().getName() ) )
+ {
+ String val = ( (File) value ).getPath();
+ // Check if it's a windows path
+ if ( val.indexOf( ":\\" ) == 1 )
+ {
+ value = StringUtils.replace( (String) val, "\\", "\\\\" );
+ value = StringUtils.replace( (String) value, ":", "\\:" );
+ }
+ }
+
}
catch ( Exception e )
{
//TODO: remove the try-catch block when ReflectionValueExtractor.evaluate() throws no more exceptions
+ e.printStackTrace();
}
return value;
}
Modified: maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java?rev=617299&r1=617298&r2=617299&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java (original)
+++ maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java Thu Jan 31 15:48:31 2008
@@ -24,7 +24,6 @@
import java.util.Properties;
import org.apache.maven.model.Resource;
-import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
@@ -55,12 +54,12 @@
public void testSimpleFiltering()
throws Exception
{
- StubMavenProject mavenProject = new StubMavenProject();
+ StubMavenProject mavenProject = new StubMavenProject( new File( getBasedir() ) );
mavenProject.setVersion( "1.0" );
mavenProject.setGroupId( "org.apache" );
Properties projectProperties = new Properties();
- projectProperties.put( "foo", "bar" );
+ projectProperties.put( "foo", "bar" );
mavenProject.setProperties( projectProperties );
MavenResourcesFiltering mavenResourcesFiltering = (MavenResourcesFiltering) lookup( MavenResourcesFiltering.class
.getName() );
@@ -82,12 +81,15 @@
assertEquals("1.0", result.get( "version" ));
assertEquals("org.apache", result.get( "groupId" ));
assertEquals("bar", result.get( "foo" ));
+ // FIXME this can fail with a windows path
+ String base = result.getProperty( "base" );
+ assertEquals(getBasedir(), base);
}
public void testNoFiltering()
throws Exception
{
- StubMavenProject mavenProject = new StubMavenProject();
+ StubMavenProject mavenProject = new StubMavenProject( new File( getBasedir() ) );
mavenProject.setVersion( "1.0" );
mavenProject.setGroupId( "org.apache" );
Modified: maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java?rev=617299&r1=617298&r2=617299&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java (original)
+++ maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java Thu Jan 31 15:48:31 2008
@@ -18,6 +18,7 @@
*/
package org.apache.maven.shared.filtering;
+import java.io.File;
import java.util.Properties;
import org.apache.maven.project.MavenProject;
@@ -31,7 +32,14 @@
extends MavenProject
{
private Properties properties;
+
+ private File basedir;
+ protected StubMavenProject (File basedir)
+ {
+ this.basedir = basedir;
+ }
+
public Properties getProperties()
{
return this.properties;
@@ -40,6 +48,11 @@
public void setProperties( Properties properties )
{
this.properties = properties;
+ }
+
+ public File getBasedir()
+ {
+ return basedir;
}
Modified: maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt?rev=617299&r1=617298&r2=617299&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt (original)
+++ maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt Thu Jan 31 15:48:31 2008
@@ -19,4 +19,5 @@
version=${pom.version}
groupId=${pom.groupId}
foo=${foo}
-none=none filtered
\ No newline at end of file
+none=none filtered
+base=${pom.basedir}
\ No newline at end of file