You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2016/12/09 17:57:18 UTC

svn commit: r1773447 - in /maven/plugins/trunk/maven-assembly-plugin/src: it/projects/basic-features/formats/ it/projects/basic-features/formats/src/assemblies/ main/java/org/apache/maven/plugins/assembly/archive/ main/java/org/apache/maven/plugins/ass...

Author: michaelo
Date: Fri Dec  9 17:57:17 2016
New Revision: 1773447

URL: http://svn.apache.org/viewvc?rev=1773447&view=rev
Log:
[MASSEMBLY-711] Add support for generating XZ compressed tarballs (.tar.xz)

Submitted-by: Mat Booth <ma...@redhat.com>

This closes #99

Modified:
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/src/assemblies/format-test.xml
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/assembly.mdo
    maven/plugins/trunk/maven-assembly-plugin/src/site/apt/index.apt.vm
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/src/assemblies/format-test.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/src/assemblies/format-test.xml?rev=1773447&r1=1773446&r2=1773447&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/src/assemblies/format-test.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/src/assemblies/format-test.xml Fri Dec  9 17:57:17 2016
@@ -32,6 +32,8 @@ under the License.
     <format>jar</format>
     <format>war</format>
     <format>tar.snappy</format>
+    <format>tar.xz</format>
+    <format>txz</format>
   </formats>
   <includeBaseDirectory>false</includeBaseDirectory>
   <files>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/verify.bsh?rev=1773447&r1=1773446&r2=1773447&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/verify.bsh (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/formats/verify.bsh Fri Dec  9 17:57:17 2016
@@ -144,4 +144,28 @@ catch( IOException e )
     result = false;
 }
 
+try
+{
+    File assembly = new File( basedir, "target/assemblies/format-test-1.0.tar.xz" );
+    result = result && assembly.exists();
+    result = result && assembly.isFile();
+}
+catch( IOException e )
+{
+    e.printStackTrace();
+    result = false;
+}
+
+try
+{
+    File assembly = new File( basedir, "target/assemblies/format-test-1.0.txz" );
+    result = result && assembly.exists();
+    result = result && assembly.isFile();
+}
+catch( IOException e )
+{
+    e.printStackTrace();
+    result = false;
+}
+
 return result;

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java?rev=1773447&r1=1773446&r2=1773447&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java Fri Dec  9 17:57:17 2016
@@ -293,7 +293,7 @@ public class DefaultAssemblyArchiver
         throws NoSuchArchiverException
     {
         Archiver archiver;
-        if ( "tgz".equals( format ) || "tbz2".equals( format ) || format.startsWith( "tar" ) )
+        if ( "txz".equals( format ) || "tgz".equals( format ) || "tbz2".equals( format ) || format.startsWith( "tar" ) )
         {
             archiver = createTarArchiver( format, TarLongFileMode.valueOf( configSource.getTarLongFileMode() ) );
         }
@@ -514,6 +514,10 @@ public class DefaultAssemblyArchiver
             {
                 tarCompressionMethod = TarArchiver.TarCompressionMethod.bzip2;
             }
+            else if ( "xz".equals( compression ) )
+            {
+                tarCompressionMethod = TarArchiver.TarCompressionMethod.xz;
+            }
             else if ( "snappy".equals( compression ) )
             {
                 tarCompressionMethod = TarArchiver.TarCompressionMethod.snappy;
@@ -533,6 +537,10 @@ public class DefaultAssemblyArchiver
         {
             tarArchiver.setCompression( TarArchiver.TarCompressionMethod.bzip2 );
         }
+        else if ( "txz".equals( format ) )
+        {
+            tarArchiver.setCompression( TarArchiver.TarCompressionMethod.xz );
+        }
 
         tarArchiver.setLongfile( tarLongFileMode );
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java?rev=1773447&r1=1773446&r2=1773447&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java Fri Dec  9 17:57:17 2016
@@ -163,6 +163,7 @@ public abstract class AbstractAssemblyMo
      * <li><em>tar.gz</em> or <em>tgz</em> - Creates a gzip'd TAR format</li>
      * <li><em>tar.bz2</em> or <em>tbz2</em> - Creates a bzip'd TAR format</li>
      * <li><em>tar.snappy</em> - Creates a snappy'd TAR format</li>
+     * <li><em>tar.xz</em> or <em>txz</em> - Creates a xz'd TAR format</li>
      * </ul>
      */
     @Parameter

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/assembly.mdo
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/assembly.mdo?rev=1773447&r1=1773446&r2=1773447&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/assembly.mdo (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/assembly.mdo Fri Dec  9 17:57:17 2016
@@ -109,6 +109,7 @@
               <li><b>"tar.gz"</b> or <b>"tgz"</b> - Creates a gzip'd TAR format</li>
               <li><b>"tar.bz2"</b> or <b>"tbz2"</b> - Creates a bzip'd TAR format</li>
               <li><b>"tar.snappy"</b> - Creates a snappy'd TAR format</li>
+              <li><b>"tar.xz"</b> or <b>"txz"</b> - Creates a xz'd TAR format</li>
               <li><b>"jar"</b> - Creates a JAR format</li>
               <li><b>"dir"</b> - Creates an exploded directory format</li>
               <li><b>"war"</b> - Creates a WAR format</li>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/site/apt/index.apt.vm
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/site/apt/index.apt.vm?rev=1773447&r1=1773446&r2=1773447&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/site/apt/index.apt.vm (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/site/apt/index.apt.vm Fri Dec  9 17:57:17 2016
@@ -56,6 +56,8 @@ ${project.name}
 
     * tar.snappy
 
+    * tar.xz (or txz)
+
     * jar
 
     * dir

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java?rev=1773447&r1=1773446&r2=1773447&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java Fri Dec  9 17:57:17 2016
@@ -19,7 +19,6 @@ package org.apache.maven.plugins.assembl
  * under the License.
  */
 
-import junit.framework.Assert;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
@@ -50,6 +49,7 @@ import org.codehaus.plexus.logging.conso
 import org.codehaus.plexus.util.FileUtils;
 import org.easymock.classextension.EasyMockSupport;
 import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -479,6 +479,42 @@ public class DefaultAssemblyArchiverTest
         assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
 
         mm.verifyAll();
+    }
+
+    @Test
+    public void testCreateTarArchiver_TarXzFormat_ShouldInitializeXzCompression()
+        throws NoSuchArchiverException, ArchiverException
+    {
+        final EasyMockSupport mm = new EasyMockSupport();
+
+        final TestTarArchiver ttArchiver = new TestTarArchiver();
+
+        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+
+        subject.createTarArchiver( "tar.xz", TarLongFileMode.fail );
+
+        assertEquals( TarArchiver.TarCompressionMethod.xz, ttArchiver.compressionMethod );
+        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+
+        mm.verifyAll();
+    }
+
+    @Test
+    public void testCreateTarArchiver_TXzFormat_ShouldInitializeXzCompression()
+        throws NoSuchArchiverException, ArchiverException
+    {
+        final EasyMockSupport mm = new EasyMockSupport();
+
+        final TestTarArchiver ttArchiver = new TestTarArchiver();
+
+        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+
+        subject.createTarArchiver( "txz", TarLongFileMode.fail );
+
+        assertEquals( TarArchiver.TarCompressionMethod.xz, ttArchiver.compressionMethod );
+        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+
+        mm.verifyAll();
     }
 
     @Test