You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/04/27 11:21:20 UTC
[maven-assembly-plugin] 01/01: [MASSEMBLY-765] add property
groupIdPath
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MASSEMBLY-765
in repository https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git
commit 919d18903deb11975d55adc38e4e864d54e0461e
Author: rfscholte <rf...@apache.org>
AuthorDate: Mon Apr 27 13:21:03 2020 +0200
[MASSEMBLY-765] add property groupIdPath
---
.../assembly/utils/AssemblyFormatUtils.java | 26 ++++++++++++----------
src/site/fml/faq.fml | 2 ++
.../archive/phase/FileSetAssemblyPhaseTest.java | 1 +
.../archive/phase/ModuleSetAssemblyPhaseTest.java | 4 +++-
.../assembly/archive/task/AddArtifactTaskTest.java | 1 +
.../archive/task/AddDependencySetsTaskTest.java | 9 ++++----
.../assembly/archive/task/AddFileSetsTaskTest.java | 4 ++++
.../assembly/utils/AssemblyFormatUtilsTest.java | 16 +++++++++++++
8 files changed, 45 insertions(+), 18 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java b/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
index f496d05..b5ac4e0 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
@@ -19,6 +19,16 @@ package org.apache.maven.plugins.assembly.utils;
* under the License.
*/
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Properties;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
@@ -27,20 +37,13 @@ import org.apache.maven.plugins.assembly.model.Assembly;
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.utils.Os;
import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
+import org.codehaus.plexus.interpolation.fixed.MapBasedValueSource;
import org.codehaus.plexus.interpolation.fixed.PrefixedObjectValueSource;
import org.codehaus.plexus.interpolation.fixed.PrefixedPropertiesValueSource;
import org.codehaus.plexus.interpolation.fixed.PropertiesBasedValueSource;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.StringUtils;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Properties;
-
/**
*
*/
@@ -141,18 +144,17 @@ public final class AssemblyFormatUtils
vs = new PrefixedObjectValueSource( "artifact.", artifactProject.getArtifact() );
}
+ final String groupIdPath = artifactProject.getGroupId().replace( '.', '/' );
+
return FixedStringSearchInterpolator.createWithPermittedNulls(
+ new MapBasedValueSource( Collections.singletonMap( "artifact.groupIdPath", groupIdPath ) ),
new PrefixedObjectValueSource( "artifact.", artifactProject ),
new PrefixedPropertiesValueSource( "artifact.properties.", artifactProject.getProperties() ), vs );
-
-
}
else
{
return FixedStringSearchInterpolator.empty();
}
-
-
}
@Nonnull
diff --git a/src/site/fml/faq.fml b/src/site/fml/faq.fml
index cc9cad2..ca7db3f 100644
--- a/src/site/fml/faq.fml
+++ b/src/site/fml/faq.fml
@@ -176,6 +176,8 @@ under the License.
<li><code>${artifact.baseVersion}</code> : The artifact base version (For a SNAPSHOT it will be always -SNAPSHOT and not its timestamp even if you didn't built it yourself).</li>
<li><code>${artifact.classifier}</code> : The artifact classifier.</li>
<li><code>${artifact.scope}</code> : The artifact scope.</li>
+ <li><code>${artifact.groupIdPath}</code> : The groupId of the artifact as path</li>
+ <li><code>${artifact.file.name}</code> : The name of the file attached to this artifact</li>
<li>...</li>
</ul>
You can use <code>${module.XXXXX}</code> when using it for your project modules artifacts.
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileSetAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileSetAssemblyPhaseTest.java
index 05f53e5..d24ada7 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileSetAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileSetAssemblyPhaseTest.java
@@ -80,6 +80,7 @@ public class FileSetAssemblyPhaseTest
assembly.addFileSet( fs );
final MavenProject project = new MavenProject( new Model() );
+ project.setGroupId( "GROUPID" );
final int dirMode = Integer.parseInt( "777", 8 );
final int fileMode = Integer.parseInt( "777", 8 );
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
index b215699..d3b65ad 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
@@ -156,6 +156,7 @@ public class ModuleSetAssemblyPhaseTest
final File basedir = temporaryFolder.getRoot();
final MavenProject artifactProject = new MavenProject( new Model() );
+ artifactProject.setGroupId( "GROUPID" );
artifactProject.setFile( new File( basedir, "pom.xml" ) );
Artifact artifact = mock( Artifact.class );
@@ -194,6 +195,7 @@ public class ModuleSetAssemblyPhaseTest
sources.setIncludeModuleDirectory( true );
final MavenProject artifactProject = new MavenProject( new Model() );
+ artifactProject.setGroupId( "GROUPID" );
final File basedir = temporaryFolder.getRoot();
@@ -234,7 +236,7 @@ public class ModuleSetAssemblyPhaseTest
final MavenProject project = new MavenProject( model );
final File basedir = temporaryFolder.getRoot();
-
+ project.setGroupId( "GROUPID" );
project.setFile( new File( basedir, "pom.xml" ) );
Artifact artifact = mock( Artifact.class );
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTaskTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTaskTest.java
index a9b8af8..75db5af 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTaskTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTaskTest.java
@@ -151,6 +151,7 @@ public class AddArtifactTaskTest
model.setVersion( version );
MavenProject project = new MavenProject( model );
+ project.setGroupId( "GROUPID" );
task.setProject( project );
task.execute( archiver, configSource );
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
index 064868f..0c60279 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
@@ -205,6 +205,7 @@ public class AddDependencySetsTaskTest
final File file = new File( "dep-artifact.jar" );
Artifact depArtifact = mock( Artifact.class );
+ when( depArtifact.getGroupId() ).thenReturn( "GROUPID" );
when( depArtifact.getArtifactId() ).thenReturn( aid );
when( depArtifact.getBaseVersion() ).thenReturn( version );
when( depArtifact.getFile() ).thenReturn( file );
@@ -306,17 +307,14 @@ public class AddDependencySetsTaskTest
when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
- if ( unpack )
- {
-
- }
- else
+ if ( !unpack )
{
when( configSource.getProject() ).thenReturn( project );
}
final MavenProject depProject = new MavenProject( new Model() );
+ depProject.setGroupId( "GROUPID" );
ProjectBuildingResult pbr = mock( ProjectBuildingResult.class );
when( pbr.getProject() ).thenReturn( depProject );
@@ -491,6 +489,7 @@ public class AddDependencySetsTaskTest
dependencySet.setUnpackOptions( unpackOptions );
final MavenProject project = new MavenProject( new Model() );
+ project.setGroupId( "GROUPID" );
ProjectBuildingRequest pbReq = mock( ProjectBuildingRequest.class );
ProjectBuildingResult pbRes = mock( ProjectBuildingResult.class );
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
index b6a4dc0..53998cd 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
@@ -136,6 +136,7 @@ public class AddFileSetsTaskTest
final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
final MavenProject project = new MavenProject( new Model() );
+ project.setGroupId( "GROUPID" );
project.setFile( new File( basedir, "pom.xml" ) );
DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
@@ -178,6 +179,7 @@ public class AddFileSetsTaskTest
final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
final MavenProject project = new MavenProject( new Model() );
+ project.setGroupId( "GROUPID" );
DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
@@ -212,6 +214,8 @@ public class AddFileSetsTaskTest
when( archiver.getOverrideFileMode() ).thenReturn( -1 );
final MavenProject project = new MavenProject( new Model() );
+ project.setGroupId( "GROUPID" );
+
DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
diff --git a/src/test/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtilsTest.java b/src/test/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtilsTest.java
index 40eb100..8c97ea9 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtilsTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtilsTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.io.File;
import java.util.Properties;
import org.apache.maven.artifact.Artifact;
@@ -38,6 +39,7 @@ import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
import org.apache.maven.plugins.assembly.model.Assembly;
import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
@@ -821,4 +823,18 @@ public class AssemblyFormatUtilsTest
assertTrue( AssemblyFormatUtils.isUnixRootReference( "/etc/home" ) );
}
+ @Test
+ public void groupIdPath()
+ {
+ Artifact artifact = mock( Artifact.class );
+ when( artifact.getFile() ).thenReturn( new File( "dir", "artifactId.jar" ) );
+
+ MavenProject project = mock( MavenProject.class );
+ when( project.getGroupId() ).thenReturn( "a.b.c" );
+ when( project.getArtifact() ).thenReturn( artifact );
+
+ FixedStringSearchInterpolator interpolator = AssemblyFormatUtils.artifactProjectInterpolator( project );
+ assertEquals( "a/b/c", interpolator.interpolate( "${artifact.groupIdPath}" ) );
+ assertEquals( "a/b/c/artifactId.jar", interpolator.interpolate( "${artifact.groupIdPath}/${artifact.file.name}" ) );
+ }
}