From 09af70c9290efcd100b9ca93b53860d85adbd9e9 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 29 Sep 2014 11:38:35 +0200 Subject: [PATCH] Update to plexus-archiver 2.6.1 and plexus-io 2.1.1 --- ...s-archiver-2.6.1-and-plexus-io-2.1.1.patch | 306 ++++++++++++++++++ maven-assembly-plugin.spec | 11 +- 2 files changed, 315 insertions(+), 2 deletions(-) create mode 100644 0001-Update-to-plexus-archiver-2.6.1-and-plexus-io-2.1.1.patch diff --git a/0001-Update-to-plexus-archiver-2.6.1-and-plexus-io-2.1.1.patch b/0001-Update-to-plexus-archiver-2.6.1-and-plexus-io-2.1.1.patch new file mode 100644 index 0000000..0760ac0 --- /dev/null +++ b/0001-Update-to-plexus-archiver-2.6.1-and-plexus-io-2.1.1.patch @@ -0,0 +1,306 @@ +From 7c775e719a8f19aaa6ca6a4427f302ed2ddd9af8 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +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. + + org.codehaus.plexus + plexus-archiver +- 2.4.4 ++ 2.6.1 + + + org.codehaus.plexus +@@ -148,7 +148,7 @@ under the License. + + org.codehaus.plexus + plexus-io +- 2.0.9 ++ 2.1.1 + + + org.codehaus.plexus +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(), 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(), 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(), 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 + diff --git a/maven-assembly-plugin.spec b/maven-assembly-plugin.spec index 020b030..d608bdb 100644 --- a/maven-assembly-plugin.spec +++ b/maven-assembly-plugin.spec @@ -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 - 2.4.1-2 +- Update to plexus-archiver 2.6.1 and plexus-io 2.1.1 + * Mon Aug 4 2014 Mikolaj Izdebski - 2.4.1-1 - Update to upstream version 2.4.1