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/06 23:27:37 UTC

svn commit: r692742 - in /maven/shared/trunk/maven-filtering/src: main/java/org/apache/maven/shared/filtering/ test/java/org/apache/maven/shared/filtering/ test/units-files/maven-resources-filtering/

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}
-pomName=@pom.name@
\ No newline at end of file
+pomName=@pom.name@
+fooVersion=${foo.version}
\ No newline at end of file