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/09/10 09:46:30 UTC
svn commit: r693721 - in /maven/shared/trunk/maven-filtering: ./
src/main/java/org/apache/maven/shared/filtering/
src/test/java/org/apache/maven/shared/filtering/
src/test/units-files/maven-resources-filtering/
Author: olamy
Date: Wed Sep 10 00:46:29 2008
New Revision: 693721
URL: http://svn.apache.org/viewvc?rev=693721&view=rev
Log:
[MSHARED-51] ability to escape interpolation with \
Note the escape String will be configurable
But the default value \ will be use if the configurable field is null
Modified:
maven/shared/trunk/maven-filtering/pom.xml
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenProjectValueSource.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/PropertiesEscapingBackSlashValueSource.java
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
maven/shared/trunk/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt
Modified: maven/shared/trunk/maven-filtering/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/pom.xml?rev=693721&r1=693720&r2=693721&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/pom.xml (original)
+++ maven/shared/trunk/maven-filtering/pom.xml Wed Sep 10 00:46:29 2008
@@ -101,7 +101,7 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interpolation</artifactId>
- <version>1.3</version>
+ <version>1.6-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
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=693721&r1=693720&r2=693721&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 Wed Sep 10 00:46:29 2008
@@ -30,9 +30,8 @@
import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.interpolation.Interpolator;
import org.codehaus.plexus.interpolation.InterpolatorFilterReader;
-import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
+import org.codehaus.plexus.interpolation.StringSearchInterpolator;
import org.codehaus.plexus.interpolation.ValueSource;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.FileUtils;
@@ -91,11 +90,25 @@
}
+ /**
+ * @see org.apache.maven.shared.filtering.MavenFileFilter#getDefaultFilterWrappers(org.apache.maven.project.MavenProject, java.util.List, boolean, org.apache.maven.execution.MavenSession)
+ */
public List getDefaultFilterWrappers( final MavenProject mavenProject, List filters,
final boolean escapedBackslashesInFilePath, MavenSession mavenSession )
throws MavenFilteringException
{
+ return getDefaultFilterWrappers( mavenProject, filters, escapedBackslashesInFilePath, mavenSession, null );
+ }
+
+
+
+ public List getDefaultFilterWrappers( final MavenProject mavenProject, List filters,
+ final boolean escapedBackslashesInFilePath, MavenSession mavenSession,
+ MavenResourcesExecution mavenResourcesExecution )
+ throws MavenFilteringException
+ {
+
// here we build some properties which will be used to read some properties files
// to interpolate the expression ${ } in this properties file
@@ -142,14 +155,23 @@
final ValueSource propertiesValueSource =
new PropertiesEscapingBackSlashValueSource( escapedBackslashesInFilePath, filterProperties );
+ final String escapeString = mavenResourcesExecution == null ? MavenResourcesExecution.DEFAULT_ESCAPE_STRING
+ : mavenResourcesExecution.getEscapeString();
+
+
// support ${token}
FileUtils.FilterWrapper one = new FileUtils.FilterWrapper()
{
public Reader getReader( Reader reader )
{
- Interpolator propertiesInterpolator = new RegexBasedInterpolator( true );
- propertiesInterpolator.addValueSource( propertiesValueSource );
- return new InterpolatorFilterReader( reader, propertiesInterpolator );
+ StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator();
+ propertiesInterpolator.addValueSource( propertiesValueSource );
+ propertiesInterpolator.setEscapeString( escapeString );
+ InterpolatorFilterReader interpolatorFilterReader = new InterpolatorFilterReader( reader,
+ propertiesInterpolator );
+ interpolatorFilterReader.setInterpolateWithPrefixPattern( false );
+ interpolatorFilterReader.setEscapeString( escapeString );
+ return interpolatorFilterReader;
}
};
defaultFilterWrappers.add( one );
@@ -159,10 +181,17 @@
{
public Reader getReader( Reader reader )
{
- final RegexBasedInterpolator propertiesInterpolatorAtRegex = new RegexBasedInterpolator( "\\@", "(.+?)\\@" );
- propertiesInterpolatorAtRegex.setReusePatterns( true );
- propertiesInterpolatorAtRegex.addValueSource( propertiesValueSource );
- return new InterpolatorFilterReader( reader, propertiesInterpolatorAtRegex, "@", "@" );
+ StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( "@",
+ "@" );
+ propertiesInterpolator.addValueSource( propertiesValueSource );
+ propertiesInterpolator.setEscapeString( escapeString );
+ InterpolatorFilterReader interpolatorFilterReader = new InterpolatorFilterReader(
+ reader,
+ propertiesInterpolator,
+ "@", "@" );
+ interpolatorFilterReader.setInterpolateWithPrefixPattern( false );
+ interpolatorFilterReader.setEscapeString( escapeString );
+ return interpolatorFilterReader;
}
};
defaultFilterWrappers.add( second );
@@ -172,11 +201,16 @@
{
public Reader getReader( Reader reader )
{
- Interpolator mavenProjectInterpolator = new RegexBasedInterpolator( true );
+ StringSearchInterpolator mavenProjectInterpolator = new StringSearchInterpolator();
ValueSource valueSource = new MavenProjectValueSource( mavenProject, escapedBackslashesInFilePath );
mavenProjectInterpolator.addValueSource( valueSource );
- return new InterpolatorFilterReader( reader, mavenProjectInterpolator );
+ mavenProjectInterpolator.setEscapeString( escapeString );
+ InterpolatorFilterReader interpolatorFilterReader = new InterpolatorFilterReader( reader,
+ mavenProjectInterpolator );
+ interpolatorFilterReader.setInterpolateWithPrefixPattern( false );
+ interpolatorFilterReader.setEscapeString( escapeString );
+ return interpolatorFilterReader;
}
};
defaultFilterWrappers.add( third );
@@ -186,11 +220,17 @@
{
public Reader getReader( Reader reader )
{
- RegexBasedInterpolator mavenProjectInterpolator = new RegexBasedInterpolator( "\\@", "(.+?)\\@" );
- mavenProjectInterpolator.setReusePatterns( true );
+ StringSearchInterpolator mavenProjectInterpolator = new StringSearchInterpolator( "@", "@" );
ValueSource valueSource = new MavenProjectValueSource( mavenProject, escapedBackslashesInFilePath );
mavenProjectInterpolator.addValueSource( valueSource );
- return new InterpolatorFilterReader( reader, mavenProjectInterpolator, "@", "@" );
+ mavenProjectInterpolator.setEscapeString( escapeString );
+ InterpolatorFilterReader interpolatorFilterReader = new InterpolatorFilterReader(
+ reader,
+ mavenProjectInterpolator,
+ "@", "@" );
+ interpolatorFilterReader.setInterpolateWithPrefixPattern( false );
+ interpolatorFilterReader.setEscapeString( escapeString );
+ return interpolatorFilterReader;
}
};
defaultFilterWrappers.add( fourth );
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java?rev=693721&r1=693720&r2=693721&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java Wed Sep 10 00:46:29 2008
@@ -154,7 +154,7 @@
filterWrappers.addAll( mavenFileFilter.getDefaultFilterWrappers( mavenResourcesExecution.getMavenProject(),
mavenResourcesExecution.getFileFilters(),
true, mavenResourcesExecution
- .getMavenSession() ) );
+ .getMavenSession(), mavenResourcesExecution ) );
mavenResourcesExecution.setFilterWrappers( filterWrappers );
}
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java?rev=693721&r1=693720&r2=693721&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java Wed Sep 10 00:46:29 2008
@@ -65,8 +65,10 @@
* <li>interpolate with token ${} and values from sysProps, project.properties, filters and project filters.</li>
* <li>interpolate with token @ @ and values from sysProps, project.properties, filters and project filters.</li>
* <li>interpolate with token ${} and values from mavenProject interpolation.</li>
+ * <li>interpolation with token @ @ and values from mavenProject interpolation</li>
* </ul>
- *
+ * <b>default escape characters will be \</b>
+ * @deprecated use {@link #getDefaultFilterWrappers(MavenProject, List, boolean, MavenSession, MavenResourcesExecution)}
* @param mavenProject
* @param filters {@link List} of properties file
*
@@ -76,4 +78,18 @@
List getDefaultFilterWrappers( MavenProject mavenProject, List filters, boolean escapedBackslashesInFilePath,
MavenSession mavenSession )
throws MavenFilteringException;
+
+ /**
+ * @since 1.0-beta-2
+ * @param mavenProject
+ * @param filters
+ * @param escapedBackslashesInFilePath
+ * @param mavenSession
+ * @param mavenResourcesExecution
+ * @return
+ * @throws MavenFilteringException
+ */
+ List getDefaultFilterWrappers( MavenProject mavenProject, List filters, boolean escapedBackslashesInFilePath,
+ MavenSession mavenSession, MavenResourcesExecution mavenResourcesExecution )
+ throws MavenFilteringException;
}
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenProjectValueSource.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenProjectValueSource.java?rev=693721&r1=693720&r2=693721&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenProjectValueSource.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenProjectValueSource.java Wed Sep 10 00:46:29 2008
@@ -20,6 +20,8 @@
*/
import java.io.File;
+import java.util.Collections;
+import java.util.List;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.interpolation.ValueSource;
@@ -114,4 +116,15 @@
// we use default values here
return ( key.startsWith( "project." ) || key.startsWith( "pom." ) );
}
+
+ public void clearFeedback()
+ {
+ // nothing here
+ }
+
+ public List getFeedback()
+ {
+ // nothing here only NPE free
+ return Collections.EMPTY_LIST;
+ }
}
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java?rev=693721&r1=693720&r2=693721&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java Wed Sep 10 00:46:29 2008
@@ -41,6 +41,8 @@
public class MavenResourcesExecution
{
+ public static final String DEFAULT_ESCAPE_STRING = "\\";
+
/** @see org.apache.maven.model.Resource */
private List resources;
@@ -69,6 +71,12 @@
*/
private List projectStartExpressions = new ArrayList();
+ /**
+ * String which will escape interpolation mechanism : foo \${foo.bar} -> foo ${foo.bar}
+ * by default it will be {@value #DEFAULT_ESCAPE_STRING}
+ */
+ private String escapeString = DEFAULT_ESCAPE_STRING;
+
public MavenResourcesExecution()
{
@@ -293,5 +301,15 @@
{
this.projectStartExpressions = projectStartExpressions;
}
+
+ public String getEscapeString()
+ {
+ return escapeString;
+ }
+
+ public void setEscapeString( String escapeString )
+ {
+ this.escapeString = escapeString;
+ }
}
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/PropertiesEscapingBackSlashValueSource.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/PropertiesEscapingBackSlashValueSource.java?rev=693721&r1=693720&r2=693721&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/PropertiesEscapingBackSlashValueSource.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/PropertiesEscapingBackSlashValueSource.java Wed Sep 10 00:46:29 2008
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.util.Collections;
+import java.util.List;
import java.util.Properties;
import org.codehaus.plexus.interpolation.ValueSource;
@@ -52,5 +54,16 @@
String value = properties.getProperty( expression );
return escapedBackslashesInFilePath ? FilteringUtils.escapeWindowsPath( value ) : value;
}
+
+ public void clearFeedback()
+ {
+ // nothing here
+ }
+
+ public List getFeedback()
+ {
+ // nothing here only NPE free
+ return Collections.EMPTY_LIST;
+ }
}
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=693721&r1=693720&r2=693721&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 Wed Sep 10 00:46:29 2008
@@ -158,6 +158,9 @@
assertEquals( System.getProperty( "user.dir" ), result.getProperty( "userDir" ) );
assertEquals( System.getProperty( "java.version" ), result.getProperty( "javaVersion" ) );
+ assertEquals("${java.version}", result.getProperty( "escapeJavaVersion" ));
+ assertEquals("@user.dir@", result.getProperty( "escapeuserDir" ));
+
assertEquals( baseDir.toString(), result.get( "base" ) );
assertEquals( new File( baseDir.toString() ).getPath(), new File( result.getProperty( "base" ) ).getPath() );
Modified: maven/shared/trunk/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt?rev=693721&r1=693720&r2=693721&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt (original)
+++ maven/shared/trunk/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt Wed Sep 10 00:46:29 2008
@@ -26,4 +26,7 @@
emptyexpression2=${}
javaVersion=${java.version}
pomName=@pom.name@
-fooVersion=${foo.version}
\ No newline at end of file
+fooVersion=${foo.version}
+
+escapeJavaVersion=\${java.version}
+escapeuserDir=\@user.dir@
\ No newline at end of file