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