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
     {


Reply via email to