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/26 14:26:07 UTC
[maven-assembly-plugin] branch MASSEMBLY-879 created (now 8054f50)
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a change to branch MASSEMBLY-879
in repository https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git.
at 8054f50 [MASSEMBLY-879] useDefaultExcludes has no effect in dependencySet/unpack
This branch includes the following new commits:
new 8054f50 [MASSEMBLY-879] useDefaultExcludes has no effect in dependencySet/unpack
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-879] useDefaultExcludes
has no effect in dependencySet/unpack
Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MASSEMBLY-879
in repository https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git
commit 8054f5097c890e8cc736f706ccc22db69684ddcd
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Apr 26 16:24:46 2020 +0200
[MASSEMBLY-879] useDefaultExcludes has no effect in dependencySet/unpack
---
.../assembly/archive/task/AddArtifactTask.java | 9 +++
.../archive/task/AddDependencySetsTask.java | 1 +
.../archive/task/AddDependencySetsTaskTest.java | 86 +++++++++++++++++++---
3 files changed, 86 insertions(+), 10 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTask.java b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTask.java
index 408d24d..6a281e7 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTask.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTask.java
@@ -66,6 +66,8 @@ public class AddArtifactTask
private List<String> excludes;
+ private boolean usingDefaultExcludes = true;
+
private MavenProject project;
private MavenProject moduleProject;
@@ -217,6 +219,7 @@ public class AddArtifactTask
fs.setExcludes( excludesArray );
fs.setPrefix( outputLocation );
fs.setStreamTransformer( transformer );
+ fs.setUsingDefaultExcludes( usingDefaultExcludes );
archiver.addFileSet( fs );
}
else
@@ -231,6 +234,7 @@ public class AddArtifactTask
afs.setExcludes( excludesArray );
afs.setPrefix( outputLocation );
afs.setStreamTransformer( transformer );
+ afs.setUsingDefaultExcludes( usingDefaultExcludes );
archiver.addArchivedFileSet( afs, encoding );
}
}
@@ -283,6 +287,11 @@ public class AddArtifactTask
this.excludes = excludes;
}
+ public void setUsingDefaultExcludes( boolean usingDefaultExcludes )
+ {
+ this.usingDefaultExcludes = usingDefaultExcludes;
+ }
+
public void setIncludes( final List<String> includes )
{
this.includes = includes;
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java
index ba11f00..f99aa27 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java
@@ -261,6 +261,7 @@ public class AddDependencySetsTask
{
task.setIncludes( opts.getIncludes() );
task.setExcludes( opts.getExcludes() );
+ task.setUsingDefaultExcludes( opts.isUseDefaultExcludes() );
}
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 654ffba..064868f 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
@@ -19,17 +19,29 @@ package org.apache.maven.plugins.assembly.archive.task;
* under the License.
*/
+import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
-import static org.mockito.Mockito.any;
+import static org.junit.Assert.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.isNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.execution.MavenSession;
@@ -40,6 +52,7 @@ import org.apache.maven.plugins.assembly.archive.ArchiveCreationException;
import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
import org.apache.maven.plugins.assembly.model.DependencySet;
+import org.apache.maven.plugins.assembly.model.UnpackOptions;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
@@ -48,22 +61,16 @@ import org.apache.maven.project.ProjectBuildingResult;
import org.codehaus.plexus.archiver.ArchivedFileSet;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.FileSet;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
import org.mockito.junit.MockitoJUnitRunner;
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
-
@RunWith( MockitoJUnitRunner.class )
public class AddDependencySetsTaskTest
{
@@ -456,4 +463,63 @@ public class AddDependencySetsTaskTest
assertSame( am1, result.iterator().next() );
}
+ // MASSEMBLY-879
+ @Test
+ public void useDefaultExcludes() throws Exception
+ {
+ Artifact zipArtifact = mock( Artifact.class );
+ when( zipArtifact.getGroupId() ).thenReturn( "some-artifact" );
+ when( zipArtifact.getArtifactId() ).thenReturn( "of-type-zip" );
+ when( zipArtifact.getId() ).thenReturn( "some-artifact:of-type-zip:1.0:zip" );
+ when( zipArtifact.getFile() ).thenReturn( temporaryFolder.newFile( "of-type-zip.zip" ) );
+
+ Artifact dirArtifact = mock( Artifact.class );
+ when( dirArtifact.getGroupId() ).thenReturn( "some-artifact" );
+ when( dirArtifact.getArtifactId() ).thenReturn( "of-type-zip" );
+ when( dirArtifact.getId() ).thenReturn( "some-artifact:of-type-zip:1.0:dir" );
+ when( dirArtifact.getFile() ).thenReturn( temporaryFolder.newFolder( "of-type-zip" ) );
+
+ final Set<Artifact> artifacts = new HashSet<>( Arrays.asList( zipArtifact, dirArtifact ) );
+
+ final DependencySet dependencySet = new DependencySet();
+ dependencySet.setUseProjectArtifact( false );
+ dependencySet.setIncludes( Collections.singletonList( "some-artifact:of-type-zip" ) );
+ dependencySet.setOutputDirectory( "MyOutputDir" );
+ dependencySet.setUnpack( true );
+ UnpackOptions unpackOptions = new UnpackOptions();
+ unpackOptions.setUseDefaultExcludes( false );
+ dependencySet.setUnpackOptions( unpackOptions );
+
+ final MavenProject project = new MavenProject( new Model() );
+
+ ProjectBuildingRequest pbReq = mock( ProjectBuildingRequest.class );
+ ProjectBuildingResult pbRes = mock( ProjectBuildingResult.class );
+ when( pbRes.getProject() ).thenReturn( project );
+
+ final ProjectBuilder projectBuilder = mock( ProjectBuilder.class );
+ when( projectBuilder.build( any( Artifact.class ), eq( pbReq ) ) ).thenReturn( pbRes );
+
+ final AddDependencySetsTask task = new AddDependencySetsTask( Collections.singletonList( dependencySet ),
+ artifacts, project, projectBuilder, mock( Logger.class ) );
+
+ final MavenSession session = mock( MavenSession.class );
+ when( session.getProjectBuildingRequest() ).thenReturn( pbReq );
+
+ final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+ when( configSource.getMavenSession() ).thenReturn( session );
+ DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
+
+ final Archiver archiver = mock( Archiver.class );
+
+ task.addDependencySet( dependencySet, archiver, configSource );
+
+ ArgumentCaptor<ArchivedFileSet> archivedFileSet = ArgumentCaptor.forClass( ArchivedFileSet.class );
+ verify( archiver ).addArchivedFileSet( archivedFileSet.capture(), isNull( Charset.class ) );
+ assertThat( archivedFileSet.getValue().isUsingDefaultExcludes(), is( false ) );
+
+ ArgumentCaptor<FileSet> fileSet = ArgumentCaptor.forClass( FileSet.class );
+ verify( archiver ).addFileSet( fileSet.capture() );
+ assertThat( fileSet.getValue().isUsingDefaultExcludes(), is( false ) );
+ }
+
}