307 lines
13 KiB
Diff
307 lines
13 KiB
Diff
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
|
|
|