Update to plexus-archiver 2.6.1 and plexus-io 2.1.1

This commit is contained in:
Mikolaj Izdebski 2014-09-29 11:38:35 +02:00
parent 0ea53d7324
commit 09af70c929
2 changed files with 315 additions and 2 deletions

View File

@ -0,0 +1,306 @@
From 7c775e719a8f19aaa6ca6a4427f302ed2ddd9af8 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 29 Sep 2014 11:27:56 +0200
Subject: [PATCH] Update to plexus-archiver 2.6.1 and plexus-io 2.1.1
---
pom.xml | 4 +-
.../assembly/archive/DefaultAssemblyArchiver.java | 16 +++---
.../archive/archiver/AssemblyProxyArchiver.java | 59 ++++++++++++++++++++++
.../archive/DefaultAssemblyArchiverTest.java | 32 ++++++++----
.../ComponentsXmlArchiverFileFilterTest.java | 12 +++++
.../assembly/testutils/TrackingArchiverStub.java | 12 +++++
6 files changed, 115 insertions(+), 20 deletions(-)
diff --git a/pom.xml b/pom.xml
index 56de47a..01c0d6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,7 +122,7 @@ under the License.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
- <version>2.4.4</version>
+ <version>2.6.1</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
@@ -148,7 +148,7 @@ under the License.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-io</artifactId>
- <version>2.0.9</version>
+ <version>2.1.1</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
diff --git a/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java b/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
index 2347e91..d90c2d1 100644
--- a/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
+++ b/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
@@ -486,23 +486,29 @@ public class DefaultAssemblyArchiver
protected Archiver createTarArchiver( final String format, final String tarLongFileMode )
throws NoSuchArchiverException, ArchiverException
{
+ return createTarArchiver( format, TarLongFileMode.valueOf( tarLongFileMode ) );
+ }
+
+ protected Archiver createTarArchiver( final String format, final TarLongFileMode tarFileMode )
+ throws NoSuchArchiverException, ArchiverException
+ {
final TarArchiver tarArchiver = (TarArchiver) archiverManager.getArchiver( "tar" );
final int index = format.indexOf( '.' );
if ( index >= 0 )
{
// TODO: this needs a cleanup in plexus archiver - use a real
// typesafe enum
- final TarArchiver.TarCompressionMethod tarCompressionMethod = new TarArchiver.TarCompressionMethod();
+ final TarArchiver.TarCompressionMethod tarCompressionMethod;
// TODO: this should accept gz and bz2 as well so we can skip
// over the switch
final String compression = format.substring( index + 1 );
if ( "gz".equals( compression ) )
{
- tarCompressionMethod.setValue( "gzip" );
+ tarCompressionMethod = TarArchiver.TarCompressionMethod.gzip;
}
else if ( "bz2".equals( compression ) )
{
- tarCompressionMethod.setValue( "bzip2" );
+ tarCompressionMethod = TarArchiver.TarCompressionMethod.bzip2;
}
else
{
@@ -512,10 +518,6 @@ public class DefaultAssemblyArchiver
tarArchiver.setCompression( tarCompressionMethod );
}
- final TarLongFileMode tarFileMode = new TarLongFileMode();
-
- tarFileMode.setValue( tarLongFileMode );
-
tarArchiver.setLongfile( tarFileMode );
return tarArchiver;
diff --git a/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java b/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
index 56783b6..a9b061e 100644
--- a/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
+++ b/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
@@ -39,6 +39,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
@@ -490,6 +491,58 @@ public class AssemblyProxyArchiver
}
}
+ public void addSymlink( final String symlinkName, final int permissions, final String symlinkDestination )
+ throws ArchiverException
+ {
+ if ( acceptFile( new File(symlinkName ) ))
+ {
+ inPublicApi.set( Boolean.TRUE );
+ try
+ {
+ debug( "Adding file: " + symlinkName + " to archive location: " + rootPrefix + symlinkDestination );
+
+ if ( dryRun )
+ {
+ debug( "DRY RUN: Skipping delegated call to: " + getMethodName() );
+ }
+ else
+ {
+ delegate.addSymlink( symlinkName, permissions, rootPrefix + symlinkDestination );
+ }
+ }
+ finally
+ {
+ inPublicApi.set( null );
+ }
+ }
+ }
+
+ public void addSymlink( final String symlinkName, final String symlinkDestination )
+ throws ArchiverException
+ {
+ if ( acceptFile( new File(symlinkName ) ))
+ {
+ inPublicApi.set( Boolean.TRUE );
+ try
+ {
+ debug( "Adding file: " + symlinkName + " to archive location: " + rootPrefix + symlinkDestination );
+
+ if ( dryRun )
+ {
+ debug( "DRY RUN: Skipping delegated call to: " + getMethodName() );
+ }
+ else
+ {
+ delegate.addSymlink( symlinkName, rootPrefix + symlinkDestination );
+ }
+ }
+ finally
+ {
+ inPublicApi.set( null );
+ }
+ }
+ }
+
public void createArchive()
throws ArchiverException, IOException
{
@@ -862,6 +915,12 @@ public class AssemblyProxyArchiver
return inputFile.isFile();
}
+ public boolean isSymbolicLink()
+ {
+ // return Files.isSymbolicLink( inputFile.toPath() );
+ return false;
+ }
+
}
public void addResource( final PlexusIoResource resource, final String destFileName, final int permissions )
diff --git a/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java b/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
index 9e52aff..0786021 100644
--- a/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
+++ b/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
@@ -299,7 +299,7 @@ public class DefaultAssemblyArchiverTest
final AssemblerConfigurationSource configSource = (AssemblerConfigurationSource) configCtl.getMock();
configSource.getTarLongFileMode();
- configCtl.setReturnValue( TarLongFileMode.FAIL, MockControl.ZERO_OR_MORE );
+ configCtl.setReturnValue( TarLongFileMode.fail.toString(), MockControl.ZERO_OR_MORE );
configSource.isDryRun();
configCtl.setReturnValue( false, MockControl.ZERO_OR_MORE );
@@ -332,7 +332,7 @@ public class DefaultAssemblyArchiverTest
subject.createArchiver( "tar", false, "finalName", configSource, null, false);
assertNull( ttArchiver.compressionMethod );
- assertEquals( TarLongFileMode.FAIL, ttArchiver.longFileMode.getValue() );
+ assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
mm.verifyAll();
}
@@ -571,10 +571,10 @@ public class DefaultAssemblyArchiverTest
final DefaultAssemblyArchiver subject =
createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
- subject.createTarArchiver( "tar", TarLongFileMode.FAIL );
+ subject.createTarArchiver( "tar", TarLongFileMode.fail );
assertNull( ttArchiver.compressionMethod );
- assertEquals( TarLongFileMode.FAIL, ttArchiver.longFileMode.getValue() );
+ assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
mm.verifyAll();
}
@@ -596,10 +596,10 @@ public class DefaultAssemblyArchiverTest
final DefaultAssemblyArchiver subject =
createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
- subject.createTarArchiver( "tar.gz", TarLongFileMode.FAIL );
+ subject.createTarArchiver( "tar.gz", TarLongFileMode.fail );
- assertEquals( "gzip", ttArchiver.compressionMethod.getValue() );
- assertEquals( TarLongFileMode.FAIL, ttArchiver.longFileMode.getValue() );
+ assertEquals( "gzip", ttArchiver.compressionMethod.toString() );
+ assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
mm.verifyAll();
}
@@ -621,10 +621,10 @@ public class DefaultAssemblyArchiverTest
final DefaultAssemblyArchiver subject =
createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
- subject.createTarArchiver( "tar.bz2", TarLongFileMode.FAIL );
+ subject.createTarArchiver( "tar.bz2", TarLongFileMode.fail );
- assertEquals( "bzip2", ttArchiver.compressionMethod.getValue() );
- assertEquals( TarLongFileMode.FAIL, ttArchiver.longFileMode.getValue() );
+ assertEquals( "bzip2", ttArchiver.compressionMethod.toString() );
+ assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
mm.verifyAll();
}
@@ -648,7 +648,7 @@ public class DefaultAssemblyArchiverTest
try
{
- subject.createTarArchiver( "tar.Z", null );
+ subject.createTarArchiver( "tar.Z", (TarLongFileMode) null );
fail( "Invalid compression formats should throw an error." );
}
@@ -904,6 +904,16 @@ public class DefaultAssemblyArchiverTest
{
}
+ public void addSymlink( String arg0, String arg1 )
+ throws ArchiverException
+ {
+ }
+
+ public void addSymlink( String arg0, int arg1, String arg2 )
+ throws ArchiverException
+ {
+ }
+
public void addResource( final PlexusIoResource arg0, final String arg1, final int arg2 )
throws ArchiverException
{
diff --git a/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java b/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
index dc89740..4580748 100644
--- a/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
+++ b/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
@@ -441,6 +441,18 @@ public class ComponentsXmlArchiverFileFilterTest
throw new UnsupportedOperationException( "not supported" );
}
+ public void addSymlink( final String symlinkName, final int permissions, final String symlinkDestination )
+ throws ArchiverException
+ {
+ throw new UnsupportedOperationException( "not supported" );
+ }
+
+ public void addSymlink( final String symlinkName, final String symlinkDestination )
+ throws ArchiverException
+ {
+ throw new UnsupportedOperationException( "not supported" );
+ }
+
public void createArchive()
throws ArchiverException, IOException
{
diff --git a/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java b/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java
index 8279a82..27cde88 100644
--- a/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java
+++ b/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java
@@ -106,6 +106,18 @@ public class TrackingArchiverStub
added.add( new Addition( inputFile, destFileName, null, null, permissions ) );
}
+ public void addSymlink( final String symlinkName, final String symlinkDestination )
+ throws ArchiverException
+ {
+ added.add( new Addition( symlinkName, symlinkDestination, null, null, -1 ) );
+ }
+
+ public void addSymlink( final String symlinkName, final int permissions, final String symlinkDestination )
+ throws ArchiverException
+ {
+ added.add( new Addition( symlinkName, symlinkDestination, null, null, permissions ) );
+ }
+
public void addArchivedFileSet( final File archiveFile )
throws ArchiverException
{
--
1.9.3

View File

@ -1,12 +1,15 @@
Name: maven-assembly-plugin
Version: 2.4.1
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Maven Assembly Plugin
License: ASL 2.0
URL: http://maven.apache.org/plugins/maven-assembly-plugin/
Source0: http://repo2.maven.org/maven2/org/apache/maven/plugins/%{name}/%{version}/%{name}-%{version}-source-release.zip
BuildArch: noarch
Source0: http://repo2.maven.org/maven2/org/apache/maven/plugins/%{name}/%{version}/%{name}-%{version}-source-release.zip
Patch0: 0001-Update-to-plexus-archiver-2.6.1-and-plexus-io-2.1.1.patch
BuildRequires: maven-local
BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
BuildRequires: mvn(org.apache.maven.plugins:maven-plugins:pom:)
@ -44,6 +47,7 @@ This package provides %{summary}.
%prep
%setup -q
%patch0 -p1
%build
# Tests need easymockclassextension version 2.x, which is incompatible
@ -61,6 +65,9 @@ This package provides %{summary}.
%doc LICENSE NOTICE
%changelog
* Mon Sep 29 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.4.1-2
- Update to plexus-archiver 2.6.1 and plexus-io 2.1.1
* Mon Aug 4 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.4.1-1
- Update to upstream version 2.4.1