Author: dennisl Date: Sun Jan 9 17:44:39 2011 New Revision: 1056985 URL: http://svn.apache.org/viewvc?rev=1056985&view=rev Log: [MRRESOURCES-46] project.properties not default provided to velocity for interpolation Submitted by: jieryn Reviewed by: Dennis Lundberg
o Patch applied with modifications. Thanks! Added: maven/plugins/trunk/maven-remote-resources-plugin/src/test/resources/PROPERTIES.txt.vm (with props) Modified: maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java maven/plugins/trunk/maven-remote-resources-plugin/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java Modified: maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java?rev=1056985&r1=1056984&r2=1056985&view=diff ============================================================================== --- maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java (original) +++ maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java Sun Jan 9 17:44:39 2011 @@ -96,6 +96,7 @@ import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.TreeMap; @@ -301,6 +302,14 @@ public class ProcessRemoteResourcesMojo private Map<String, String> properties = new HashMap<String, String>(); /** + * Whether to include properties defined in the project when filtering resources. + * + * @parameter default-value="false" + * @since 1.2 + */ + protected boolean includeProjectProperties = false; + + /** * The list of resources defined for the project. * * @parameter expression="${project.resources}" @@ -478,6 +487,15 @@ public class ProcessRemoteResourcesMojo locator.addSearchPath( "url", "" ); locator.setOutputDirectory( new File( project.getBuild().getDirectory() ) ); + if ( includeProjectProperties ) + { + final Properties projectProperties = project.getProperties(); + for ( Object key : projectProperties.keySet() ) + { + properties.put( key.toString(), projectProperties.get( key ).toString() ); + } + } + ClassLoader origLoader = Thread.currentThread().getContextClassLoader(); try { Modified: maven/plugins/trunk/maven-remote-resources-plugin/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-remote-resources-plugin/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java?rev=1056985&r1=1056984&r2=1056985&view=diff ============================================================================== --- maven/plugins/trunk/maven-remote-resources-plugin/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java (original) +++ maven/plugins/trunk/maven-remote-resources-plugin/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java Sun Jan 9 17:44:39 2011 @@ -257,6 +257,42 @@ public class RemoteResourcesMojoTest assertTrue( data.indexOf( "default-filterbundles" ) != -1 ); } + public void testFilteredBundlesWithProjectProperties() + throws Exception + { + final MavenProjectResourcesStub project = createTestProject( "default-filterbundles-two" ); + final ProcessRemoteResourcesMojo mojo = + lookupProcessMojoWithSettings( project, new String[]{"test-filtered-bundles:test-filtered-bundles:2"} ); + + mojo.includeProjectProperties = true; + setupDefaultProject( project ); + + project.addProperty( "testingPropertyOne", "maven" ); + project.addProperty( "testingPropertyTwo", "rules" ); + + ArtifactRepository repo = (ArtifactRepository) getVariableValueFromObject( mojo, "localRepository" ); + String path = repo.pathOf( new DefaultArtifact( "test-filtered-bundles", "test-filtered-bundles", + VersionRange.createFromVersion( "2" ), null, "jar", "", + new DefaultArtifactHandler() ) ); + + File file = new File( repo.getBasedir() + "/" + path + ".jar" ); + file.getParentFile().mkdirs(); + buildResourceBundle( "default-filterbundles-two-create", null, new String[]{"PROPERTIES.txt.vm"}, file ); + + mojo.execute(); + // executing a second time (example: forked lifecycle) should still work + mojo.execute(); + + file = (File) getVariableValueFromObject( mojo, "outputDirectory" ); + file = new File( file, "PROPERTIES.txt" ); + + assertTrue( file.exists() ); + + String data = FileUtils.fileRead( file ); + assertTrue( data.indexOf( "maven" ) != -1 ); + assertTrue( data.indexOf( "rules" ) != -1 ); + } + protected void buildResourceBundle( String id, String sourceEncoding, String resourceNames[], Added: maven/plugins/trunk/maven-remote-resources-plugin/src/test/resources/PROPERTIES.txt.vm URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-remote-resources-plugin/src/test/resources/PROPERTIES.txt.vm?rev=1056985&view=auto ============================================================================== --- maven/plugins/trunk/maven-remote-resources-plugin/src/test/resources/PROPERTIES.txt.vm (added) +++ maven/plugins/trunk/maven-remote-resources-plugin/src/test/resources/PROPERTIES.txt.vm Sun Jan 9 17:44:39 2011 @@ -0,0 +1,3 @@ +Some filtered text: +${testingPropertyOne} +${testingPropertyTwo} Propchange: maven/plugins/trunk/maven-remote-resources-plugin/src/test/resources/PROPERTIES.txt.vm ------------------------------------------------------------------------------ svn:eol-style = native