You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2009/08/21 01:36:11 UTC
svn commit: r806397 - in /maven/shared/trunk/maven-filtering/src:
main/java/org/apache/maven/shared/filtering/
test/java/org/apache/maven/shared/filtering/
Author: jdcasey
Date: Thu Aug 20 23:36:11 2009
New Revision: 806397
URL: http://svn.apache.org/viewvc?rev=806397&view=rev
Log:
cleanup on custom delimiter support.
Modified:
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java
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/DefaultMavenResourcesFilteringTest.java
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java?rev=806397&r1=806396&r2=806397&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java Thu Aug 20 23:36:11 2009
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;
@@ -74,7 +75,7 @@
*
* @since 1.0-beta-3
*/
- private Set delimiters = new HashSet();
+ private LinkedHashSet delimiters = new LinkedHashSet();
protected AbstractMavenFilteringRequest()
{
@@ -249,7 +250,7 @@
* @return Not allowed to be null or empty.
* @since 1.0-beta-3
*/
- public Set getDelimiters()
+ public LinkedHashSet getDelimiters()
{
return delimiters;
}
@@ -262,7 +263,7 @@
* @param delimiters If null, reset delimiters to '${*}' only. Otherwise, use the provided parameter value.
* @since 1.0-beta-3
*/
- public void setDelimiters( Set delimiters )
+ public void setDelimiters( LinkedHashSet delimiters )
{
if ( delimiters == null || delimiters.isEmpty() )
{
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=806397&r1=806396&r2=806397&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 Thu Aug 20 23:36:11 2009
@@ -23,6 +23,7 @@
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -228,13 +229,16 @@
final ValueSource propertiesValueSource =
new PropertiesEscapingBackSlashValueSource( request.isEscapeWindowsPaths(), filterProperties );
- final String escapeString = request == null ? null : request.getEscapeString();
-
if ( request != null )
{
for ( Iterator it = request.getDelimiters().iterator(); it.hasNext(); )
{
String delimiterPattern = (String) it.next();
+ if ( delimiterPattern == null )
+ {
+ continue;
+ }
+
final String[] delimiters = new String[2];
int splitIdx = delimiterPattern.indexOf( '*' );
@@ -254,44 +258,9 @@
delimiters[1] = delimiterPattern.substring( splitIdx + 1 );
}
- FileUtils.FilterWrapper wrapper = new FileUtils.FilterWrapper()
- {
- public Reader getReader( Reader reader )
- {
- StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( delimiters[0],
- delimiters[1] );
-
- RecursionInterceptor ri = null;
- if ( request.getProjectStartExpressions() != null && !request.getProjectStartExpressions().isEmpty() )
- {
- ri = new PrefixAwareRecursionInterceptor( request.getProjectStartExpressions(), true );
- }
- else
- {
- ri = new SimpleRecursionInterceptor();
- }
-
- MavenProjectValueSource valueSource = new MavenProjectValueSource(
- request.getMavenProject(),
- request.isEscapeWindowsPaths() );
-
- valueSource.setPropertiesValueSource( propertiesValueSource );
-
- propertiesInterpolator.addValueSource( valueSource );
- propertiesInterpolator.setEscapeString( escapeString );
-
- InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader,
- propertiesInterpolator,
- delimiters[0],
- delimiters[1],
- ri );
-
- filterReader.setInterpolateWithPrefixPattern( false );
- filterReader.setEscapeString( escapeString );
-
- return filterReader;
- }
- };
+ FileUtils.FilterWrapper wrapper = new Wrapper( delimiters, request.getMavenProject(), propertiesValueSource,
+ request.getProjectStartExpressions(), request.getEscapeString(),
+ request.isEscapeWindowsPaths() );
defaultFilterWrappers.add( wrapper );
}
@@ -326,5 +295,68 @@
}
}
}
+
+ private static final class Wrapper extends FileUtils.FilterWrapper
+ {
+
+ private String[] delimiters;
+
+ private MavenProject project;
+
+ private ValueSource propertiesValueSource;
+
+ private Collection projectStartExpressions;
+
+ private String escapeString;
+
+ private boolean escapeWindowsPaths;
+
+ Wrapper( String[] delimiters, MavenProject project, ValueSource propertiesValueSource,
+ Collection projectStartExpressions, String escapeString, boolean escapeWindowsPaths )
+ {
+ super();
+ this.delimiters = delimiters;
+ this.project = project;
+ this.propertiesValueSource = propertiesValueSource;
+ this.projectStartExpressions = projectStartExpressions;
+ this.escapeString = escapeString;
+ this.escapeWindowsPaths = escapeWindowsPaths;
+ }
+
+ public Reader getReader( Reader reader )
+ {
+ StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( delimiters[0],
+ delimiters[1] );
+
+ RecursionInterceptor ri = null;
+ if ( projectStartExpressions != null && !projectStartExpressions.isEmpty() )
+ {
+ ri = new PrefixAwareRecursionInterceptor( projectStartExpressions, true );
+ }
+ else
+ {
+ ri = new SimpleRecursionInterceptor();
+ }
+
+ MavenProjectValueSource valueSource = new MavenProjectValueSource( project, escapeWindowsPaths );
+
+ valueSource.setPropertiesValueSource( propertiesValueSource );
+
+ propertiesInterpolator.addValueSource( valueSource );
+ propertiesInterpolator.setEscapeString( escapeString );
+
+ InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader,
+ propertiesInterpolator,
+ delimiters[0],
+ delimiters[1],
+ ri );
+
+ filterReader.setInterpolateWithPrefixPattern( false );
+ filterReader.setEscapeString( escapeString );
+
+ return filterReader;
+ }
+
+ }
}
Modified: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java?rev=806397&r1=806396&r2=806397&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java (original)
+++ maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java Thu Aug 20 23:36:11 2009
@@ -668,6 +668,7 @@
Collections.EMPTY_LIST, new StubMavenSession() );
mavenResourcesExecution.setIncludeEmptyDirs( true );
mavenResourcesExecution.setEscapeString( "\\" );
+
mavenResourcesFiltering.filterResources( mavenResourcesExecution );
Properties filteredResult = PropertyUtils.loadPropertyFile( new File( output, "filtered.properties" ), null );
@@ -675,8 +676,13 @@
Properties expectedFilteredResult =
PropertyUtils.loadPropertyFile( new File( getBasedir() + "/src/test/units-files/MSHARED-81",
"expected-filtered.properties" ), null );
+
+ System.out.println( "Expected:\n" );
+ expectedFilteredResult.list( System.out );
+ System.out.println( "\n\n\nGot:\n" );
+ filteredResult.list( System.out );
- assertTrue( filteredResult.equals( expectedFilteredResult ) );
+ assertEquals( expectedFilteredResult, filteredResult );
Properties nonFilteredResult =
PropertyUtils.loadPropertyFile( new File( output, "unfiltered.properties" ), null );