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:19 UTC

[maven-assembly-plugin] branch MASSEMBLY-765 created (now 919d189)

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a change to branch MASSEMBLY-765
in repository https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git.


      at 919d189  [MASSEMBLY-765] add property groupIdPath

This branch includes the following new commits:

     new 919d189  [MASSEMBLY-765] add property groupIdPath

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-assembly-plugin] 01/01: [MASSEMBLY-765] add property groupIdPath

Posted by rf...@apache.org.
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}" ) );
+    }
 }