You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/02/19 00:30:57 UTC
svn commit: r628920 - in /maven/plugins/trunk/maven-assembly-plugin/src:
main/java/org/apache/maven/plugin/assembly/utils/
test/java/org/apache/maven/plugin/assembly/archive/task/
test/java/org/apache/maven/plugin/assembly/utils/
Author: jdcasey
Date: Mon Feb 18 15:30:47 2008
New Revision: 628920
URL: http://svn.apache.org/viewvc?rev=628920&view=rev
Log:
[MASSEMBLY-256] Support project properties in outputFileNameMapping and outputDirectory.
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PropertiesInterpolationValueSource.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java?rev=628920&r1=628919&r2=628920&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java Mon Feb 18 15:30:47 2008
@@ -88,8 +88,9 @@
* A. MavenProject instance from current build
* 5. no prefix, using main project instance
* A. MavenProject instance from current build
- * 6. System properties
- * 7. environment variables.
+ * 6. properties of the main project
+ * 7. System properties
+ * 8. environment variables.
*
*/
public static String getOutputDirectory( String output, MavenProject mainProject, MavenProject artifactProject,
@@ -147,14 +148,17 @@
if ( mainProject != null )
{
interpolator.addValueSource( new ObjectBasedValueSource( mainProject ) );
+
+ // 6
+ interpolator.addValueSource( new PropertiesInterpolationValueSource( mainProject.getProperties() ) );
}
- // 6
+ // 7
interpolator.addValueSource( new PropertiesInterpolationValueSource( System.getProperties() ) );
try
{
- // 7
+ // 8
interpolator.addValueSource( new PropertiesInterpolationValueSource( CommandLineUtils.getSystemEnvVars( false ) ) );
}
catch ( IOException e )
@@ -199,8 +203,9 @@
* 4. no prefix, using main project instance
* A. MavenProject instance from current build
* 5. Support for special expressions, like ${dashClassifier?}
- * 6. System properties
- * 7. environment variables.
+ * 6. properties from main project
+ * 7. System properties
+ * 8. environment variables.
*
*/
public static String evaluateFileNameMapping( String expression, Artifact artifact, MavenProject mainProject, MavenProject artifactProject, String artifactProjectRefName )
@@ -280,12 +285,18 @@
// 5
interpolator.addValueSource( new PropertiesInterpolationValueSource( specialRules ) );
- // 6
+ if ( mainProject != null )
+ {
+ // 6
+ interpolator.addValueSource( new PropertiesInterpolationValueSource( mainProject.getProperties() ) );
+ }
+
+ // 7
interpolator.addValueSource( new PropertiesInterpolationValueSource( System.getProperties() ) );
try
{
- // 7
+ // 8
interpolator.addValueSource( new PropertiesInterpolationValueSource( CommandLineUtils.getSystemEnvVars( false ) ) );
}
catch ( IOException e )
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PropertiesInterpolationValueSource.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PropertiesInterpolationValueSource.java?rev=628920&r1=628919&r2=628920&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PropertiesInterpolationValueSource.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PropertiesInterpolationValueSource.java Mon Feb 18 15:30:47 2008
@@ -39,7 +39,7 @@
public Object getValue( String key )
{
- return properties.getProperty( key );
+ return properties == null ? null : properties.getProperty( key );
}
}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java?rev=628920&r1=628919&r2=628920&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java Mon Feb 18 15:30:47 2008
@@ -157,7 +157,9 @@
ProjectBuildingException pbe = new ProjectBuildingException( "test", "Test error." );
MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask(
- mockManager );
+ mockManager,
+ new MavenProject(
+ new Model() ) );
String gid = "org.test";
String aid = "test-dep";
@@ -226,7 +228,7 @@
ds.setFileMode( Integer.toString( 10, 8 ) );
MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask(
- mockManager );
+ mockManager, new MavenProject( new Model() ) );
ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "artifact", "version",
"jar", false );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java?rev=628920&r1=628919&r2=628920&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java Mon Feb 18 15:30:47 2008
@@ -29,6 +29,8 @@
import org.apache.maven.project.MavenProject;
import org.easymock.MockControl;
+import java.util.Properties;
+
import junit.framework.TestCase;
@@ -180,6 +182,14 @@
verifyOutputDir( null, null, null, null, null, "" );
}
+ public void testGetOutputDir_ShouldResolveProjectProperty() throws AssemblyFormattingException
+ {
+ Properties props = new Properties();
+ props.setProperty( "myProperty", "value" );
+
+ verifyOutputDir( "file.${myProperty}", null, null, null, null, null, "file.value/", null, true, props );
+ }
+
public void testEvalFileNameMapping_ShouldResolveArtifactIdAndBaseVersionInOutDir_UseArtifactInfo_WithValidMainProject()
throws AssemblyFormattingException
{
@@ -313,6 +323,19 @@
verifyEvalFileNameMapping( "file.${artifact.extension}", null, null, null, null, "ext", "file.ext" );
}
+ public void testEvalFileNameMapping_ShouldResolveProjectProperty() throws AssemblyFormattingException
+ {
+ Properties props = new Properties();
+ props.setProperty( "myProperty", "value" );
+
+ verifyEvalFileNameMapping( "file.${myProperty}", null, null, null, null, null, "file.value", null, true, props );
+ }
+
+ public void testEvalFileNameMapping_ShouldResolveSystemPropertyWithoutMainProjectPresent() throws AssemblyFormattingException
+ {
+ verifyEvalFileNameMapping( "file.${java.version}", null, null, null, null, null, "file." + System.getProperty( "java.version" ), "artifact.", false );
+ }
+
private void verifyEvalFileNameMapping( String expression, String classifier, String groupId, String artifactId,
String version, String extension, String checkValue )
throws AssemblyFormattingException
@@ -331,6 +354,23 @@
String version, String extension, String checkValue, String prefix, boolean usingMainProject )
throws AssemblyFormattingException
{
+ verifyEvalFileNameMapping( expression,
+ classifier,
+ groupId,
+ artifactId,
+ version,
+ extension,
+ checkValue,
+ prefix,
+ usingMainProject,
+ new Properties() );
+ }
+
+ private void verifyEvalFileNameMapping( String expression, String classifier, String groupId, String artifactId,
+ String version, String extension, String checkValue, String prefix, boolean usingMainProject,
+ Properties projectProperties )
+ throws AssemblyFormattingException
+ {
if ( artifactId == null )
{
artifactId = "artifact";
@@ -357,6 +397,8 @@
model.setArtifactId( artifactId );
model.setVersion( version );
+ model.setProperties( projectProperties );
+
project = new MavenProject( model );
MavenProject mainProject;
@@ -412,13 +454,24 @@
String projectFinalName, String checkValue, String prefix, boolean usingMainProject )
throws AssemblyFormattingException
{
+ verifyOutputDir( outDir, finalName, groupId, artifactId, version, projectFinalName, checkValue, prefix, usingMainProject, new Properties() );
+ }
+
+ private void verifyOutputDir( String outDir, String finalName, String groupId, String artifactId, String version,
+ String projectFinalName, String checkValue, String prefix, boolean usingMainProject,
+ Properties projectProperties )
+ throws AssemblyFormattingException
+ {
MavenProject project = null;
- if ( ( groupId != null ) || ( artifactId != null ) || ( version != null ) || ( projectFinalName != null ) )
+ if ( ( groupId != null ) || ( artifactId != null ) || ( version != null )
+ || ( projectFinalName != null ) || ( projectProperties != null ) )
{
Model model = new Model();
model.setGroupId( groupId );
model.setArtifactId( artifactId );
model.setVersion( version );
+
+ model.setProperties( projectProperties );
if ( projectFinalName != null )
{