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/11/15 23:42:57 UTC
svn commit: r717943 - 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/MSHARED-81/ src/test/units-files/MSHARED-81/filtered/
src/test/units...
Author: olamy
Date: Sat Nov 15 14:42:56 2008
New Revision: 717943
URL: http://svn.apache.org/viewvc?rev=717943&view=rev
Log:
[MSHARED-81] change in @ translation behavior in maven-resources-plugin 2.3
add unit test as the issue was in plexus-interpolation
Added:
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/expected-filtered.properties (with props)
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/filtered.properties (with props)
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/
maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/unfiltered.properties (with props)
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/MavenProjectValueSource.java
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java
Modified: maven/shared/trunk/maven-filtering/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/pom.xml?rev=717943&r1=717942&r2=717943&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/pom.xml (original)
+++ maven/shared/trunk/maven-filtering/pom.xml Sat Nov 15 14:42:56 2008
@@ -116,8 +116,22 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interpolation</artifactId>
- <version>1.6</version>
+ <version>1.7-SNAPSHOT</version>
</dependency>
</dependencies>
+ <!-- TODO remove when plexus-interpolation is released -->
+ <repositories>
+ <repository>
+ <id>codehaus.snapshot</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+
</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=717943&r1=717942&r2=717943&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 Sat Nov 15 14:42:56 2008
@@ -172,13 +172,13 @@
public Reader getReader( Reader reader )
{
StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator();
- propertiesInterpolator.addValueSource( propertiesValueSource );
+ MavenProjectValueSource valueSource = new MavenProjectValueSource( mavenProject, escapedBackslashesInFilePath );
+ valueSource.setPropertiesValueSource( propertiesValueSource );
+ propertiesInterpolator.addValueSource( valueSource );
propertiesInterpolator.setEscapeString( escapeString );
InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader, propertiesInterpolator );
filterReader.setInterpolateWithPrefixPattern( false );
filterReader.setEscapeString( escapeString );
- // first try it must be preserved
- filterReader.setPreserveEscapeString( true );
return filterReader;
}
};
@@ -190,54 +190,19 @@
public Reader getReader( Reader reader )
{
StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( "@", "@" );
- propertiesInterpolator.addValueSource( propertiesValueSource );
+ MavenProjectValueSource valueSource = new MavenProjectValueSource( mavenProject, escapedBackslashesInFilePath );
+ valueSource.setPropertiesValueSource( propertiesValueSource );
+ propertiesInterpolator.addValueSource( valueSource );
propertiesInterpolator.setEscapeString( escapeString );
InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader, propertiesInterpolator,
"@", "@" );
filterReader.setInterpolateWithPrefixPattern( false );
filterReader.setEscapeString( escapeString );
- filterReader.setPreserveEscapeString( true );
return filterReader;
}
};
defaultFilterWrappers.add( second );
- // support ${token} with mavenProject reflection
- FileUtils.FilterWrapper third = new FileUtils.FilterWrapper()
- {
- public Reader getReader( Reader reader )
- {
- StringSearchInterpolator mavenProjectInterpolator = new StringSearchInterpolator();
-
- ValueSource valueSource = new MavenProjectValueSource( mavenProject, escapedBackslashesInFilePath );
- mavenProjectInterpolator.addValueSource( valueSource );
- mavenProjectInterpolator.setEscapeString( escapeString );
- InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader, mavenProjectInterpolator );
- filterReader.setInterpolateWithPrefixPattern( false );
- filterReader.setEscapeString( escapeString );
- return filterReader;
- }
- };
- defaultFilterWrappers.add( third );
-
- // support @token@ with mavenProject reflection
- FileUtils.FilterWrapper fourth = new FileUtils.FilterWrapper()
- {
- public Reader getReader( Reader reader )
- {
- StringSearchInterpolator mavenProjectInterpolator = new StringSearchInterpolator( "@", "@" );
- ValueSource valueSource = new MavenProjectValueSource( mavenProject, escapedBackslashesInFilePath );
- mavenProjectInterpolator.addValueSource( valueSource );
- mavenProjectInterpolator.setEscapeString( escapeString );
- InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader, mavenProjectInterpolator,
- "@", "@" );
- filterReader.setInterpolateWithPrefixPattern( false );
- filterReader.setEscapeString( escapeString );
- return filterReader;
- }
- };
- defaultFilterWrappers.add( fourth );
-
return defaultFilterWrappers;
}
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=717943&r1=717942&r2=717943&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 Sat Nov 15 14:42:56 2008
@@ -43,33 +43,43 @@
private boolean escapedBackslashesInFilePath;
private MavenResourcesExecution mavenResourcesExecution;
-
- public MavenProjectValueSource( MavenProject mavenProject )
- {
- this( mavenProject, false );
- }
- public MavenProjectValueSource( MavenProject mavenProject, boolean escapedBackslashesInFilePath )
- {
+ /**
+ * @since 1.0-beta-3
+ */
+ private ValueSource propertiesValueSource;
- project = mavenProject;
+ public MavenProjectValueSource( MavenProject mavenProject )
+ {
+ this( mavenProject, false );
+ }
- this.escapedBackslashesInFilePath = escapedBackslashesInFilePath;
+ public MavenProjectValueSource( MavenProject mavenProject, boolean escapedBackslashesInFilePath )
+ {
+ this( mavenProject, escapedBackslashesInFilePath, null );
}
-
public MavenProjectValueSource( MavenProject mavenProject, boolean escapedBackslashesInFilePath,
MavenResourcesExecution mavenResourcesExecution )
{
- super();
+ this(mavenProject, escapedBackslashesInFilePath, mavenResourcesExecution, null);
+ }
- project = mavenProject;
+ /**
+ * @since 1.0-beta-3
+ */
+ public MavenProjectValueSource( MavenProject mavenProject, boolean escapedBackslashesInFilePath,
+ MavenResourcesExecution mavenResourcesExecution, ValueSource propertiesValueSource )
+ {
+ this.project = mavenProject;
this.escapedBackslashesInFilePath = escapedBackslashesInFilePath;
this.mavenResourcesExecution = mavenResourcesExecution;
+
+ this.propertiesValueSource = propertiesValueSource;
}
-
+
public Object getValue( String expression )
{
if ( expression == null || StringUtils.isEmpty( expression.toString() ) )
@@ -77,7 +87,18 @@
return null;
}
+
Object value = null;
+
+ if ( propertiesValueSource != null )
+ {
+ value = propertiesValueSource.getValue( expression );
+ if (value != null)
+ {
+ return value;
+ }
+ }
+
try
{
value = ReflectionValueExtractor.evaluate( "" + expression, project, isProjectExpression( expression ) );
@@ -127,4 +148,16 @@
// nothing here only NPE free
return Collections.EMPTY_LIST;
}
+
+ public ValueSource getPropertiesValueSource()
+ {
+ return propertiesValueSource;
+ }
+
+ public void setPropertiesValueSource( ValueSource propertiesValueSource )
+ {
+ this.propertiesValueSource = propertiesValueSource;
+ }
+
+
}
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=717943&r1=717942&r2=717943&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 Sat Nov 15 14:42:56 2008
@@ -562,5 +562,62 @@
}
}
+ /**
+ * unit test for MSHARED-81 : http://jira.codehaus.org/browse/MSHARED-81
+ */
+ public void testMSHARED81()
+ throws Exception
+ {
+ StubMavenProject mavenProject = new StubMavenProject( new File( "/foo/bar" ) );
+
+ mavenProject.setVersion( "1.0" );
+
+ mavenProject.addProperty( "escaped","this is escaped");
+ mavenProject.addProperty( "escaped.at","this is escaped.at");
+ mavenProject.addProperty( "foo","this is foo");
+ mavenProject.addProperty( "bar","this is bar");
+
+ MavenResourcesFiltering mavenResourcesFiltering = (MavenResourcesFiltering) lookup( MavenResourcesFiltering.class
+ .getName() );
+
+ List resources = new ArrayList();
+ resources.add( new Resource()
+ {
+ {
+ setDirectory( getBasedir() + "/src/test/units-files/MSHARED-81/resources" );
+ setFiltering( false );
+ }
+ } );
+ resources.add( new Resource()
+ {
+ {
+ setDirectory( getBasedir() + "/src/test/units-files/MSHARED-81/filtered" );
+ setFiltering( true );
+ }
+ } );
+ File output = new File( outputDirectory, "MSHARED-81" );
+ MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution( resources, output, mavenProject,
+ null, Collections.EMPTY_LIST,
+ Collections.EMPTY_LIST,
+ new StubMavenSession() );
+ mavenResourcesExecution.setIncludeEmptyDirs( true );
+ mavenResourcesExecution.setEscapeString( "\\" );
+ mavenResourcesFiltering.filterResources( mavenResourcesExecution );
+
+ Properties filteredResult = PropertyUtils.loadPropertyFile( new File( output, "filtered.properties" ), null );
+
+ Properties expectedFilteredResult = PropertyUtils.loadPropertyFile( new File( getBasedir()
+ + "/src/test/units-files/MSHARED-81", "expected-filtered.properties" ), null );
+
+ assertTrue( filteredResult.equals( expectedFilteredResult ) );
+
+ Properties nonFilteredResult = PropertyUtils.loadPropertyFile( new File( output, "unfiltered.properties" ),
+ null );
+
+ Properties expectedNonFilteredResult = PropertyUtils.loadPropertyFile( new File( getBasedir()
+ + "/src/test/units-files/MSHARED-81/resources", "unfiltered.properties" ), null );
+
+ assertTrue( nonFilteredResult.equals( expectedNonFilteredResult ) );
+ }
}
Modified: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java?rev=717943&r1=717942&r2=717943&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java (original)
+++ maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java Sat Nov 15 14:42:56 2008
@@ -51,6 +51,15 @@
this.properties = properties;
}
+ public void addProperty(String key, String value)
+ {
+ if (this.properties == null)
+ {
+ this.properties = new Properties();
+ }
+ this.properties.put( key, value );
+ }
+
public File getBasedir()
{
return basedir;
Added: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/expected-filtered.properties
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/expected-filtered.properties?rev=717943&view=auto
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/expected-filtered.properties (added)
+++ maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/expected-filtered.properties Sat Nov 15 14:42:56 2008
@@ -0,0 +1,34 @@
+#/*
+# * 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.
+# */
+escaped=${escaped}
+escaped.at=@escaped.at@
+foo=this is foo
+project.foo=${project.foo}
+bar=this is bar
+project.bar=@project.bar@
+not.a.property=${not.a.property}
+not.a.property.at=@not.a.property@
+version=1.0
+version.at=1.0
+project.version=1.0
+project.version.at=1.0
+target=@target@
+target.at=@target.at@
+project.target=@project.target@
+project.target.at=@project.target@
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/expected-filtered.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/expected-filtered.properties
------------------------------------------------------------------------------
svn:executable = *
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/expected-filtered.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/filtered.properties
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/filtered.properties?rev=717943&view=auto
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/filtered.properties (added)
+++ maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/filtered.properties Sat Nov 15 14:42:56 2008
@@ -0,0 +1,34 @@
+#/*
+# * 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.
+# */
+escaped=\${escaped}
+escaped.at=\@escaped.at@
+foo=${foo}
+project.foo=${project.foo}
+bar=@bar@
+project.bar=@project.bar@
+not.a.property=${not.a.property}
+not.a.property.at=@not.a.property@
+version=${version}
+version.at=@version@
+project.version=${project.version}
+project.version.at=@project.version@
+target=@target@
+target.at=@target.at@
+project.target=@project.target@
+project.target.at=@project.target@
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/filtered.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/filtered.properties
------------------------------------------------------------------------------
svn:executable = *
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/filtered/filtered.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/unfiltered.properties
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/unfiltered.properties?rev=717943&view=auto
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/unfiltered.properties (added)
+++ maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/unfiltered.properties Sat Nov 15 14:42:56 2008
@@ -0,0 +1,34 @@
+#/*
+# * 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.
+# */
+escaped=\${escaped}
+escaped.at=\@escaped.at@
+foo=${foo}
+project.foo=${project.foo}
+bar=@bar@
+project.bar=@project.bar@
+not.a.property=${not.a.property}
+not.a.property.at=@not.a.property@
+version=${version}
+version.at=@version@
+project.version=${project.version}
+project.version.at=@project.version@
+target=@target@
+target.at=@target.at@
+project.target=@project.target@
+project.target.at=@project.target@
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/unfiltered.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/unfiltered.properties
------------------------------------------------------------------------------
svn:executable = *
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/MSHARED-81/resources/unfiltered.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision