Author: krosenvold
Date: Sun Sep 28 17:52:13 2014
New Revision: 1628092
URL: http://svn.apache.org/r1628092
Log:
[MASSEMBLY-712] Add symlink support by updating plexus archiver
Modified:
maven/plugins/trunk/maven-assembly-plugin/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java
Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=1628092&r1=1628091&r2=1628092&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Sun Sep 28 17:52:13 2014
@@ -125,7 +125,7 @@ under the License.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
- <version>2.5</version>
+ <version>2.6.1</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
@@ -151,7 +151,7 @@ under the License.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-io</artifactId>
- <version>2.0.12</version>
+ <version>2.1.1</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
@@ -167,7 +167,7 @@ under the License.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- <version>3.0.15</version>
+ <version>3.0.18</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java?rev=1628092&r1=1628091&r2=1628092&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
Sun Sep 28 17:52:13 2014
@@ -288,7 +288,7 @@ public class DefaultAssemblyArchiver
Archiver archiver;
if ( format.startsWith( "tar" ) )
{
- archiver = createTarArchiver( format,
configSource.getTarLongFileMode() );
+ archiver = createTarArchiver( format, TarLongFileMode.valueOf(
configSource.getTarLongFileMode()) );
}
else if ( "war".equals( format ) )
{
@@ -483,26 +483,24 @@ public class DefaultAssemblyArchiver
return warArchiver;
}
- protected Archiver createTarArchiver( final String format, final String
tarLongFileMode )
+ protected Archiver createTarArchiver( final String format, final
TarLongFileMode tarLongFileMode )
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();
+ 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,11 +510,7 @@ public class DefaultAssemblyArchiver
tarArchiver.setCompression( tarCompressionMethod );
}
- final TarLongFileMode tarFileMode = new TarLongFileMode();
-
- tarFileMode.setValue( tarLongFileMode );
-
- tarArchiver.setLongfile( tarFileMode );
+ tarArchiver.setLongfile( tarLongFileMode );
return tarArchiver;
}
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java?rev=1628092&r1=1628091&r2=1628092&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
Sun Sep 28 17:52:13 2014
@@ -349,6 +349,46 @@ public class AssemblyProxyArchiver
}
}
+ public void addSymlink( String symlinkName, String symlinkDestination)
+ throws ArchiverException
+ {
+ inPublicApi.set( Boolean.TRUE );
+ try {
+ if ( dryRun )
+ {
+ debug( "DRY RUN: Skipping delegated call to: " +
getMethodName() );
+ }
+ else
+ {
+ delegate.addSymlink( symlinkName, symlinkDestination );
+ }
+ } finally {
+ inPublicApi.set( null );
+ }
+
+
+ }
+
+ public void addSymlink(String symlinkName, int permissions, String
symlinkDestination )
+ throws ArchiverException
+ {
+ inPublicApi.set( Boolean.TRUE );
+ try {
+ if ( dryRun )
+ {
+ debug( "DRY RUN: Skipping delegated call to: " +
getMethodName() );
+ }
+ else
+ {
+ delegate.addSymlink( symlinkName, permissions,
symlinkDestination );
+ }
+
+ } finally {
+ inPublicApi.set( null );
+ }
+
+ }
+
public void addDirectory( final File directory, final String prefix )
throws ArchiverException
{
@@ -862,6 +902,10 @@ public class AssemblyProxyArchiver
return inputFile.isFile();
}
+ public boolean isSymbolicLink()
+ {
+ return false;
+ }
}
public void addResource( final PlexusIoResource resource, final String
destFileName, final int permissions )
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?rev=1628092&r1=1628091&r2=1628092&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
Sun Sep 28 17:52:13 2014
@@ -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( TarArchiver.TarCompressionMethod.gzip,
ttArchiver.compressionMethod );
+ 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( TarArchiver.TarCompressionMethod.bzip2,
ttArchiver.compressionMethod );
+ assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
mm.verifyAll();
}
@@ -909,6 +909,18 @@ public class DefaultAssemblyArchiverTest
{
}
+ public void addSymlink( String s, String s2 )
+ throws ArchiverException
+ {
+
+ }
+
+ public void addSymlink( String s, int i, String s2 )
+ throws ArchiverException
+ {
+
+ }
+
public void addResources( final PlexusIoResourceCollection arg0 )
throws ArchiverException
{
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java?rev=1628092&r1=1628091&r2=1628092&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
Sun Sep 28 17:52:13 2014
@@ -462,6 +462,18 @@ public class ComponentsXmlArchiverFileFi
throw new UnsupportedOperationException( "not supported" );
}
+ public void addSymlink( String s, String s2 )
+ throws ArchiverException
+ {
+ throw new UnsupportedOperationException( "not supported" );
+ }
+
+ public void addSymlink( String s, int i, String s2 )
+ throws ArchiverException
+ {
+ throw new UnsupportedOperationException( "not supported" );
+ }
+
@SuppressWarnings( "rawtypes" )
public Map getFiles()
{
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java?rev=1628092&r1=1628091&r2=1628092&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java
Sun Sep 28 17:52:13 2014
@@ -118,6 +118,19 @@ public class TrackingArchiverStub
added.add( new Addition( archiveFile, prefix, null, null, -1 ) );
}
+ public void addSymlink( String s, String s2 )
+ throws ArchiverException
+ {
+ added.add( new Addition( s, null, null, null, -1 ) );
+ }
+
+ public void addSymlink( String s, int i, String s2 )
+ throws ArchiverException
+ {
+ added.add( new Addition( s, null, null, null, -1 ) );
+
+ }
+
public void addArchivedFileSet( final File archiveFile, final String[]
includes, final String[] excludes )
throws ArchiverException
{