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 06:15:43 UTC
svn commit: r806416 -
/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
Author: jdcasey
Date: Fri Aug 21 04:15:43 2009
New Revision: 806416
URL: http://svn.apache.org/viewvc?rev=806416&view=rev
Log:
pushing the configurable multi-delimiter support down to plexus-interpolator to get better functionality when expressions using different delimiters reference one another.
Modified:
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.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=806416&r1=806415&r2=806416&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 Fri Aug 21 04:15:43 2009
@@ -26,6 +26,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Properties;
@@ -38,6 +39,8 @@
import org.codehaus.plexus.interpolation.SimpleRecursionInterceptor;
import org.codehaus.plexus.interpolation.StringSearchInterpolator;
import org.codehaus.plexus.interpolation.ValueSource;
+import org.codehaus.plexus.interpolation.multi.MultiDelimiterInterpolatorFilterReader;
+import org.codehaus.plexus.interpolation.multi.MultiDelimiterStringSearchInterpolator;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
@@ -231,39 +234,11 @@
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( '*' );
- if ( splitIdx < 0 )
- {
- delimiters[0] = delimiterPattern;
- delimiters[1] = delimiters[0];
- }
- else if ( splitIdx == delimiterPattern.length() - 1 )
- {
- delimiters[0] = delimiterPattern.substring( 0, delimiterPattern.length() - 1 );
- delimiters[1] = delimiters[0];
- }
- else
- {
- delimiters[0] = delimiterPattern.substring( 0, splitIdx );
- delimiters[1] = delimiterPattern.substring( splitIdx + 1 );
- }
-
- FileUtils.FilterWrapper wrapper = new Wrapper( delimiters, request.getMavenProject(), propertiesValueSource,
- request.getProjectStartExpressions(), request.getEscapeString(),
- request.isEscapeWindowsPaths() );
-
- defaultFilterWrappers.add( wrapper );
- }
+ FileUtils.FilterWrapper wrapper = new Wrapper( request.getDelimiters(), request.getMavenProject(), propertiesValueSource,
+ request.getProjectStartExpressions(), request.getEscapeString(),
+ request.isEscapeWindowsPaths() );
+
+ defaultFilterWrappers.add( wrapper );
}
return defaultFilterWrappers;
@@ -299,7 +274,7 @@
private static final class Wrapper extends FileUtils.FilterWrapper
{
- private String[] delimiters;
+ private LinkedHashSet delimiters;
private MavenProject project;
@@ -311,7 +286,7 @@
private boolean escapeWindowsPaths;
- Wrapper( String[] delimiters, MavenProject project, ValueSource propertiesValueSource,
+ Wrapper( LinkedHashSet delimiters, MavenProject project, ValueSource propertiesValueSource,
Collection projectStartExpressions, String escapeString, boolean escapeWindowsPaths )
{
super();
@@ -325,8 +300,8 @@
public Reader getReader( Reader reader )
{
- StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( delimiters[0],
- delimiters[1] );
+ MultiDelimiterStringSearchInterpolator interpolator = new MultiDelimiterStringSearchInterpolator();
+ interpolator.setDelimiterSpecs( delimiters );
RecursionInterceptor ri = null;
if ( projectStartExpressions != null && !projectStartExpressions.isEmpty() )
@@ -342,14 +317,12 @@
valueSource.setPropertiesValueSource( propertiesValueSource );
- propertiesInterpolator.addValueSource( valueSource );
- propertiesInterpolator.setEscapeString( escapeString );
+ interpolator.addValueSource( valueSource );
+ interpolator.setEscapeString( escapeString );
- InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader,
- propertiesInterpolator,
- delimiters[0],
- delimiters[1],
- ri );
+ MultiDelimiterInterpolatorFilterReader filterReader = new MultiDelimiterInterpolatorFilterReader( reader, interpolator );
+ filterReader.setRecursionInterceptor( ri );
+ filterReader.setDelimiterSpecs( delimiters );
filterReader.setInterpolateWithPrefixPattern( false );
filterReader.setEscapeString( escapeString );