Author: olamy Date: Sat Sep 6 14:27:37 2008 New Revision: 692742 URL: http://svn.apache.org/viewvc?rev=692742&view=rev Log: [MSHARED-60] Filtering ${foo.file} evaluates to in full path to pom.xml
Modified: 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/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/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=692742&r1=692741&r2=692742&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 Sep 6 14:27:37 2008 @@ -39,6 +39,8 @@ private MavenProject project; private boolean escapedBackslashesInFilePath; + + private MavenResourcesExecution mavenResourcesExecution; public MavenProjectValueSource( MavenProject mavenProject ) { @@ -47,13 +49,24 @@ public MavenProjectValueSource( MavenProject mavenProject, boolean escapedBackslashesInFilePath ) { - super(); project = mavenProject; this.escapedBackslashesInFilePath = escapedBackslashesInFilePath; } + + public MavenProjectValueSource( MavenProject mavenProject, boolean escapedBackslashesInFilePath, + MavenResourcesExecution mavenResourcesExecution ) + { + super(); + + project = mavenProject; + + this.escapedBackslashesInFilePath = escapedBackslashesInFilePath; + + this.mavenResourcesExecution = mavenResourcesExecution; + } public Object getValue( String expression ) { @@ -65,7 +78,7 @@ Object value = null; try { - value = ReflectionValueExtractor.evaluate( "" + expression, project ); + value = ReflectionValueExtractor.evaluate( "" + expression, project, IsProjectExpression( expression ) ); if ( escapedBackslashesInFilePath && value != null && "java.lang.String".equals( value.getClass().getName() ) ) @@ -87,4 +100,18 @@ } return value; } + + private boolean IsProjectExpression( String key ) + { + if ( StringUtils.isEmpty( key ) ) + { + return false; + } + if ( mavenResourcesExecution != null ) + { + return mavenResourcesExecution.getProjectStartExpressions().contains( key ); + } + // we use default values here + return ( key.startsWith( "project." ) || key.startsWith( "pom." ) ); + } } 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=692742&r1=692741&r2=692742&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 Sat Sep 6 14:27:37 2008 @@ -62,10 +62,18 @@ private boolean useDefaultFilterWrappers = false; + /** + * List of String considered as expressions which contains values in the project/pom : pom project + * default value will be pom and project. + * + */ + private List projectStartExpressions = new ArrayList(); + public MavenResourcesExecution() { - // nothing here just add an empty constructor for java bean convention + projectStartExpressions.add( "pom" ); + projectStartExpressions.add( "project" ); } /** @@ -81,6 +89,7 @@ public MavenResourcesExecution( List resources, File outputDirectory, MavenProject mavenProject, String encoding, List fileFilters, List nonFilteredFileExtensions, MavenSession mavenSession ) { + this(); this.resources = resources; this.outputDirectory = outputDirectory; this.mavenProject = mavenProject; @@ -95,6 +104,7 @@ public MavenResourcesExecution( List resources, File outputDirectory, String encoding, List filterWrappers, File resourcesBaseDirectory, List nonFilteredFileExtensions ) { + this(); this.resources = resources; this.outputDirectory = outputDirectory; this.encoding = encoding; @@ -273,5 +283,15 @@ { this.useDefaultFilterWrappers = useDefaultFilterWrappers; } + + public List getProjectStartExpressions() + { + return projectStartExpressions; + } + + public void setProjectStartExpressions( List projectStartExpressions ) + { + this.projectStartExpressions = projectStartExpressions; + } } 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=692742&r1=692741&r2=692742&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 Sep 6 14:27:37 2008 @@ -148,7 +148,8 @@ assertEquals( "1.0", result.get( "version" ) ); assertEquals( "org.apache", result.get( "groupId" ) ); assertEquals( "bar", result.get( "foo" ) ); - + assertEquals( "${foo.version}", result.get( "fooVersion" ) ); + assertEquals( "@@", result.getProperty( "emptyexpression" ) ); assertEquals( "${}", result.getProperty( "emptyexpression2" ) ); assertEquals( System.getProperty( "user.dir" ), result.getProperty( "userDir" ) ); 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=692742&r1=692741&r2=692742&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 Sat Sep 6 14:27:37 2008 @@ -25,4 +25,5 @@ emptyexpression=@@ emptyexpression2=${} javaVersion=${java.version} [EMAIL PROTECTED]@ \ No newline at end of file [EMAIL PROTECTED]@ +fooVersion=${foo.version} \ No newline at end of file