You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2023/05/06 16:07:53 UTC

[maven-assembly-plugin] branch MASSEMBLY-988 created (now b46cd154)

This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a change to branch MASSEMBLY-988
in repository https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git


      at b46cd154 [MASSEMBLY-988] Use newer plexus-archiver methods, code cleanup

This branch includes the following new commits:

     new b46cd154 [MASSEMBLY-988] Use newer plexus-archiver methods, code cleanup

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-assembly-plugin] 01/01: [MASSEMBLY-988] Use newer plexus-archiver methods, code cleanup

Posted by sj...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch MASSEMBLY-988
in repository https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git

commit b46cd15422aa5354a7de8e5796729bd492bf7ba3
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Sat May 6 18:07:24 2023 +0200

    [MASSEMBLY-988] Use newer plexus-archiver methods, code cleanup
---
 .../formats/src/assemblies/format-test.xml         |   2 +
 src/it/projects/basic-features/formats/verify.bsh  |  24 +++
 .../plugins/assembly/archive/AssemblyArchiver.java |   4 +-
 .../assembly/archive/DefaultAssemblyArchiver.java  |  73 ++------
 .../assembly/mojos/AbstractAssemblyMojo.java       |  11 +-
 .../archive/DefaultAssemblyArchiverTest.java       | 193 ++++-----------------
 6 files changed, 87 insertions(+), 220 deletions(-)

diff --git a/src/it/projects/basic-features/formats/src/assemblies/format-test.xml b/src/it/projects/basic-features/formats/src/assemblies/format-test.xml
index a283046d..e742f472 100644
--- a/src/it/projects/basic-features/formats/src/assemblies/format-test.xml
+++ b/src/it/projects/basic-features/formats/src/assemblies/format-test.xml
@@ -34,6 +34,8 @@ under the License.
     <format>tar.snappy</format>
     <format>tar.xz</format>
     <format>txz</format>
+    <format>tar.zst</format>
+    <format>tzst</format>
   </formats>
   <includeBaseDirectory>false</includeBaseDirectory>
   <files>
diff --git a/src/it/projects/basic-features/formats/verify.bsh b/src/it/projects/basic-features/formats/verify.bsh
index a7330fb5..cb7286a7 100644
--- a/src/it/projects/basic-features/formats/verify.bsh
+++ b/src/it/projects/basic-features/formats/verify.bsh
@@ -168,4 +168,28 @@ catch( IOException e )
     result = false;
 }
 
+try
+{
+    File assembly = new File( basedir, "target/assemblies/format-test-1.0.tar.zst" );
+    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.tzst" );
+    result = result && assembly.exists();
+    result = result && assembly.isFile();
+}
+catch( IOException e )
+{
+    e.printStackTrace();
+    result = false;
+}
+
 return result;
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/AssemblyArchiver.java b/src/main/java/org/apache/maven/plugins/assembly/archive/AssemblyArchiver.java
index efadb58f..e90b2c7a 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/AssemblyArchiver.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/AssemblyArchiver.java
@@ -19,7 +19,7 @@
 package org.apache.maven.plugins.assembly.archive;
 
 import java.io.File;
-import java.util.Date;
+import java.nio.file.attribute.FileTime;
 
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
@@ -65,6 +65,6 @@ public interface AssemblyArchiver {
             AssemblerConfigurationSource configSource,
             boolean recompressZippedFiles,
             String mergeManifestMode,
-            Date sourceDateEpoch)
+            FileTime sourceDateEpoch)
             throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException;
 }
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java b/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
index a1128706..9e54cddd 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
@@ -26,9 +26,9 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.nio.file.attribute.FileTime;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -128,7 +128,7 @@ public class DefaultAssemblyArchiver implements AssemblyArchiver {
             final AssemblerConfigurationSource configSource,
             boolean recompressZippedFiles,
             String mergeManifestMode,
-            Date outputTimestamp)
+            FileTime outputTimestamp)
             throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException {
         validate(assembly);
 
@@ -271,21 +271,25 @@ public class DefaultAssemblyArchiver implements AssemblyArchiver {
             final List<ContainerDescriptorHandler> containerHandlers,
             boolean recompressZippedFiles,
             String mergeManifestMode,
-            Date outputTimestamp)
+            FileTime outputTimestamp)
             throws NoSuchArchiverException {
         Archiver archiver;
-        if ("txz".equals(format)
-                || "tgz".equals(format)
-                || "tbz2".equals(format)
-                || "tzst".equals(format)
-                || format.startsWith("tar")) {
-            archiver = createTarArchiver(format, TarLongFileMode.valueOf(configSource.getTarLongFileMode()));
-        } else if ("war".equals(format)) {
-            archiver = createWarArchiver();
+
+        // one missing alias in plexus-archiver
+        if ("tzst".equals(format)) {
+            archiver = createTarZstArchiver();
         } else {
             archiver = archiverManager.getArchiver(format);
         }
 
+        if (archiver instanceof TarArchiver) {
+            ((TarArchiver) archiver).setLongfile(TarLongFileMode.valueOf(configSource.getTarLongFileMode()));
+        }
+
+        if (archiver instanceof WarArchiver) {
+            ((WarArchiver) archiver).setExpectWebXml(false);
+        }
+
         if (archiver instanceof AbstractZipArchiver) {
             ((AbstractZipArchiver) archiver).setRecompressAddedZips(recompressZippedFiles);
         }
@@ -323,13 +327,12 @@ public class DefaultAssemblyArchiver implements AssemblyArchiver {
             archiver = new DryRunArchiver(archiver, LOGGER);
         }
 
-        archiver.setUseJvmChmod(configSource.isUpdateOnly());
         archiver.setIgnorePermissions(configSource.isIgnorePermissions());
         archiver.setForced(!configSource.isUpdateOnly());
 
         // configure for Reproducible Builds based on outputTimestamp value
         if (outputTimestamp != null) {
-            archiver.configureReproducible(outputTimestamp);
+            archiver.configureReproducibleBuild(outputTimestamp);
         }
 
         if (configSource.getOverrideUid() != null) {
@@ -460,49 +463,9 @@ public class DefaultAssemblyArchiver implements AssemblyArchiver {
         }
     }
 
-    protected Archiver createWarArchiver() throws NoSuchArchiverException {
-        final WarArchiver warArchiver = (WarArchiver) archiverManager.getArchiver("war");
-        warArchiver.setIgnoreWebxml(false); // See MNG-1274
-
-        return warArchiver;
-    }
-
-    protected Archiver createTarArchiver(final String format, final TarLongFileMode tarLongFileMode)
-            throws NoSuchArchiverException {
+    protected Archiver createTarZstArchiver() throws NoSuchArchiverException {
         final TarArchiver tarArchiver = (TarArchiver) archiverManager.getArchiver("tar");
-        final int index = format.indexOf('.');
-        if (index >= 0) {
-            TarArchiver.TarCompressionMethod tarCompressionMethod;
-            // TODO: this should accept gz and bz2 as well so we can skip
-            // TODO: over the switch
-            final String compression = format.substring(index + 1);
-            if ("gz".equals(compression)) {
-                tarCompressionMethod = TarArchiver.TarCompressionMethod.gzip;
-            } else if ("bz2".equals(compression)) {
-                tarCompressionMethod = TarArchiver.TarCompressionMethod.bzip2;
-            } else if ("xz".equals(compression)) {
-                tarCompressionMethod = TarArchiver.TarCompressionMethod.xz;
-            } else if ("snappy".equals(compression)) {
-                tarCompressionMethod = TarArchiver.TarCompressionMethod.snappy;
-            } else if ("zst".equals(compression)) {
-                tarCompressionMethod = TarArchiver.TarCompressionMethod.zstd;
-            } else {
-                // TODO: better handling
-                throw new IllegalArgumentException("Unknown compression format: " + compression);
-            }
-            tarArchiver.setCompression(tarCompressionMethod);
-        } else if ("tgz".equals(format)) {
-            tarArchiver.setCompression(TarArchiver.TarCompressionMethod.gzip);
-        } else if ("tbz2".equals(format)) {
-            tarArchiver.setCompression(TarArchiver.TarCompressionMethod.bzip2);
-        } else if ("txz".equals(format)) {
-            tarArchiver.setCompression(TarArchiver.TarCompressionMethod.xz);
-        } else if ("tzst".equals(format)) {
-            tarArchiver.setCompression(TarArchiver.TarCompressionMethod.zstd);
-        }
-
-        tarArchiver.setLongfile(tarLongFileMode);
-
+        tarArchiver.setCompression(TarArchiver.TarCompressionMethod.zstd);
         return tarArchiver;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java b/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java
index 466234d2..d5eeea79 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java
@@ -19,8 +19,8 @@
 package org.apache.maven.plugins.assembly.mojos;
 
 import java.io.File;
+import java.nio.file.attribute.FileTime;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 import java.util.Properties;
 
@@ -475,8 +475,9 @@ public abstract class AbstractAssemblyMojo extends AbstractMojo implements Assem
         // TODO: include dependencies marked for distribution under certain formats
         // TODO: how, might we plug this into an installer, such as NSIS?
 
-        MavenArchiver mavenArchiver = new MavenArchiver();
-        Date outputDate = mavenArchiver.parseOutputTimestamp(outputTimestamp);
+        FileTime outputDate = MavenArchiver.parseBuildOutputTimestamp(outputTimestamp)
+                .map(FileTime::from)
+                .orElse(null);
 
         boolean warnedAboutMainProjectArtifact = false;
         for (final Assembly assembly : assemblies) {
@@ -484,10 +485,10 @@ public abstract class AbstractAssemblyMojo extends AbstractMojo implements Assem
                 final String fullName = AssemblyFormatUtils.getDistributionName(assembly, this);
 
                 List<String> effectiveFormats = formats;
-                if (effectiveFormats == null || effectiveFormats.size() == 0) {
+                if (effectiveFormats == null || effectiveFormats.isEmpty()) {
                     effectiveFormats = assembly.getFormats();
                 }
-                if (effectiveFormats == null || effectiveFormats.size() == 0) {
+                if (effectiveFormats == null || effectiveFormats.isEmpty()) {
                     throw new MojoFailureException(
                             "No formats specified in the execution parameters or the assembly descriptor.");
                 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
index 83267c51..4c52231b 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
@@ -31,6 +31,7 @@ import org.apache.maven.plugins.assembly.archive.phase.AssemblyArchiverPhase;
 import org.apache.maven.plugins.assembly.filter.ContainerDescriptorHandler;
 import org.apache.maven.plugins.assembly.model.Assembly;
 import org.apache.maven.plugins.assembly.mojos.AbstractAssemblyMojo;
+import org.apache.maven.plugins.assembly.testutils.PojoConfigSource;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.DefaultPlexusContainer;
 import org.codehaus.plexus.PlexusContainer;
@@ -39,6 +40,7 @@ import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.diags.NoOpArchiver;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
 import org.codehaus.plexus.archiver.tar.TarArchiver;
 import org.codehaus.plexus.archiver.tar.TarLongFileMode;
 import org.codehaus.plexus.archiver.war.WarArchiver;
@@ -53,6 +55,7 @@ import org.mockito.junit.MockitoJUnitRunner;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
@@ -137,7 +140,7 @@ public class DefaultAssemblyArchiverTest {
         verify(configSource).isDryRun();
         verify(configSource).isIgnoreDirFormatExtensions();
         verify(configSource).isIgnorePermissions();
-        verify(configSource, times(2)).isUpdateOnly();
+        verify(configSource).isUpdateOnly();
 
         verify(phase).execute(eq(assembly), any(Archiver.class), eq(configSource));
 
@@ -179,7 +182,7 @@ public class DefaultAssemblyArchiverTest {
         when(configSource.getOverrideGid()).thenReturn(0);
         when(configSource.getOverrideGroupName()).thenReturn("root");
 
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
+        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<>());
 
         subject.createArchiver("dummy", false, "finalName", configSource, null, false, null, null);
 
@@ -204,7 +207,7 @@ public class DefaultAssemblyArchiverTest {
         when(configSource.getOverrideGid()).thenReturn(0);
         when(configSource.getOverrideGroupName()).thenReturn("root");
 
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
+        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<>());
 
         subject.createArchiver("tar", false, "finalName", configSource, null, false, null, null);
 
@@ -221,13 +224,13 @@ public class DefaultAssemblyArchiverTest {
         verify(configSource).getWorkingDirectory();
         verify(configSource).isDryRun();
         verify(configSource).isIgnorePermissions();
-        verify(configSource, times(2)).isUpdateOnly();
+        verify(configSource).isUpdateOnly();
 
         verify(archiverManager).getArchiver("tar");
     }
 
     @Test
-    public void testCreateArchiver_ShouldCreateWarArchiverWithIgnoreWebxmlSetToFalse() throws Exception {
+    public void testCreateArchiver_ShouldCreateWarArchiverWitEexpectWebXmlSetToFalse() throws Exception {
         final TestWarArchiver twArchiver = new TestWarArchiver();
 
         when(archiverManager.getArchiver("war")).thenReturn(twArchiver);
@@ -241,11 +244,12 @@ public class DefaultAssemblyArchiverTest {
         when(configSource.getWorkingDirectory()).thenReturn(new File("."));
         when(configSource.isIgnorePermissions()).thenReturn(true);
 
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
+        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<>());
 
         subject.createArchiver("war", false, null, configSource, null, false, null, null);
 
-        assertFalse(twArchiver.ignoreWebxml);
+        assertNotNull(twArchiver.expectWebXml);
+        assertFalse(twArchiver.expectWebXml);
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify(configSource).getArchiverConfig();
@@ -259,7 +263,7 @@ public class DefaultAssemblyArchiverTest {
         verify(configSource).getWorkingDirectory();
         verify(configSource).isDryRun();
         verify(configSource).isIgnorePermissions();
-        verify(configSource, times(2)).isUpdateOnly();
+        verify(configSource).isUpdateOnly();
 
         verify(archiverManager).getArchiver("war");
     }
@@ -278,7 +282,7 @@ public class DefaultAssemblyArchiverTest {
         when(configSource.getWorkingDirectory()).thenReturn(new File("."));
         when(configSource.isIgnorePermissions()).thenReturn(true);
 
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
+        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<>());
 
         subject.createArchiver("zip", false, null, configSource, null, false, null, null);
 
@@ -291,157 +295,26 @@ public class DefaultAssemblyArchiverTest {
         verify(configSource).getWorkingDirectory();
         verify(configSource).isDryRun();
         verify(configSource).isIgnorePermissions();
-        verify(configSource, times(2)).isUpdateOnly();
+        verify(configSource).isUpdateOnly();
 
         verify(archiverManager).getArchiver("zip");
     }
 
-    @Test
-    public void testCreateWarArchiver_ShouldDisableIgnoreWebxmlOption() throws Exception {
-        final TestWarArchiver twArchiver = new TestWarArchiver();
-
-        when(archiverManager.getArchiver("war")).thenReturn(twArchiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
-
-        subject.createWarArchiver();
-
-        assertFalse(twArchiver.ignoreWebxml);
-
-        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("war");
-    }
-
     @Test
     public void testCreateTarArchiver_ShouldNotInitializeCompression() throws Exception {
         final TestTarArchiver archiver = new TestTarArchiver();
 
         when(archiverManager.getArchiver("tar")).thenReturn(archiver);
 
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
-
-        subject.createTarArchiver("tar", TarLongFileMode.fail);
-
-        assertNull(new TestTarArchiver().compressionMethod);
-        assertEquals(TarLongFileMode.fail, archiver.longFileMode);
-
-        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
-    }
-
-    @Test
-    public void testCreateTarArchiver_TarGzFormat_ShouldInitializeGZipCompression() throws Exception {
-        final TestTarArchiver archiver = new TestTarArchiver();
-
-        when(archiverManager.getArchiver("tar")).thenReturn(archiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
-
-        subject.createTarArchiver("tar.gz", TarLongFileMode.fail);
-
-        assertEquals(TarArchiver.TarCompressionMethod.gzip, archiver.compressionMethod);
-        assertEquals(TarLongFileMode.fail, archiver.longFileMode);
-
-        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
-    }
-
-    @Test
-    public void testCreateTarArchiver_TgzFormat_ShouldInitializeGZipCompression() throws Exception {
-        final TestTarArchiver archiver = new TestTarArchiver();
-
-        when(archiverManager.getArchiver("tar")).thenReturn(archiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
-
-        subject.createTarArchiver("tgz", TarLongFileMode.fail);
-
-        assertEquals(TarArchiver.TarCompressionMethod.gzip, archiver.compressionMethod);
-        assertEquals(TarLongFileMode.fail, archiver.longFileMode);
-
-        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
-    }
-
-    @Test
-    public void testCreateTarArchiver_TarBz2Format_ShouldInitializeBZipCompression() throws Exception {
-        final TestTarArchiver archiver = new TestTarArchiver();
-
-        when(archiverManager.getArchiver("tar")).thenReturn(archiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
-
-        subject.createTarArchiver("tar.bz2", TarLongFileMode.fail);
-
-        assertEquals(TarArchiver.TarCompressionMethod.bzip2, archiver.compressionMethod);
-        assertEquals(TarLongFileMode.fail, archiver.longFileMode);
-
-        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
-    }
-
-    @Test
-    public void testCreateTarArchiver_Tbz2Format_ShouldInitializeBZipCompression() throws Exception {
-        final TestTarArchiver archiver = new TestTarArchiver();
-
-        when(archiverManager.getArchiver("tar")).thenReturn(archiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
-
-        subject.createTarArchiver("tbz2", TarLongFileMode.fail);
-
-        assertEquals(TarArchiver.TarCompressionMethod.bzip2, archiver.compressionMethod);
-        assertEquals(TarLongFileMode.fail, archiver.longFileMode);
-
-        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
-    }
-
-    @Test
-    public void testCreateTarArchiver_TarXzFormat_ShouldInitializeXzCompression() throws Exception {
-        final TestTarArchiver archiver = new TestTarArchiver();
-
-        when(archiverManager.getArchiver("tar")).thenReturn(archiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
-
-        subject.createTarArchiver("tar.xz", TarLongFileMode.fail);
-
-        assertEquals(TarArchiver.TarCompressionMethod.xz, archiver.compressionMethod);
-        assertEquals(TarLongFileMode.fail, archiver.longFileMode);
-
-        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
-    }
-
-    @Test
-    public void testCreateTarArchiver_TXzFormat_ShouldInitializeXzCompression() throws Exception {
-        final TestTarArchiver archiver = new TestTarArchiver();
-
-        when(archiverManager.getArchiver("tar")).thenReturn(archiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
+        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<>());
 
-        subject.createTarArchiver("txz", TarLongFileMode.fail);
+        PojoConfigSource configSource = new PojoConfigSource();
+        configSource.setTarLongFileMode(TarLongFileMode.fail.name());
+        configSource.setWorkingDirectory(new File(""));
 
-        assertEquals(TarArchiver.TarCompressionMethod.xz, archiver.compressionMethod);
-        assertEquals(TarLongFileMode.fail, archiver.longFileMode);
+        subject.createArchiver("tar", true, "", configSource, null, false, null, null);
 
-        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
-    }
-
-    @Test
-    public void testCreateTarArchiver_TarZstFormat_ShouldInitializeZstCompression() throws Exception {
-        final TestTarArchiver archiver = new TestTarArchiver();
-
-        when(archiverManager.getArchiver("tar")).thenReturn(archiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
-
-        subject.createTarArchiver("tar.zst", TarLongFileMode.fail);
-
-        assertEquals(TarArchiver.TarCompressionMethod.zstd, archiver.compressionMethod);
+        assertNull(new TestTarArchiver().compressionMethod);
         assertEquals(TarLongFileMode.fail, archiver.longFileMode);
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
@@ -454,9 +327,13 @@ public class DefaultAssemblyArchiverTest {
 
         when(archiverManager.getArchiver("tar")).thenReturn(archiver);
 
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
+        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<>());
 
-        subject.createTarArchiver("tzst", TarLongFileMode.fail);
+        PojoConfigSource configSource = new PojoConfigSource();
+        configSource.setTarLongFileMode(TarLongFileMode.fail.name());
+        configSource.setWorkingDirectory(new File(""));
+
+        subject.createArchiver("tzst", true, "", configSource, null, false, null, null);
 
         assertEquals(TarArchiver.TarCompressionMethod.zstd, archiver.compressionMethod);
         assertEquals(TarLongFileMode.fail, archiver.longFileMode);
@@ -469,20 +346,20 @@ public class DefaultAssemblyArchiverTest {
     public void testCreateTarArchiver_InvalidFormat_ShouldFailWithInvalidCompression() throws Exception {
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        when(archiverManager.getArchiver("tar")).thenReturn(ttArchiver);
+        when(archiverManager.getArchiver("tar.ZZZ")).thenThrow(new NoSuchArchiverException("no archiver"));
 
-        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<AssemblyArchiverPhase>());
+        final DefaultAssemblyArchiver subject = createSubject(new ArrayList<>());
 
         try {
-            subject.createTarArchiver("tar.Z", null);
+            subject.createArchiver("tar.ZZZ", true, "", null, null, false, null, null);
 
             fail("Invalid compression formats should throw an error.");
-        } catch (final IllegalArgumentException e) {
+        } catch (final NoSuchArchiverException e) {
             // expected.
         }
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
+        verify(archiverManager).getArchiver("tar.ZZZ");
     }
 
     private DefaultAssemblyArchiver createSubject(final List<AssemblyArchiverPhase> phases) {
@@ -516,12 +393,12 @@ public class DefaultAssemblyArchiverTest {
 
     private static final class TestWarArchiver extends WarArchiver {
 
-        boolean ignoreWebxml;
+        Boolean expectWebXml;
 
         @Override
-        public void setIgnoreWebxml(final boolean ignore) {
-            ignoreWebxml = ignore;
-            super.setIgnoreWebxml(ignore);
+        public void setExpectWebXml(boolean expectWebXml) {
+            this.expectWebXml = expectWebXml;
+            super.setExpectWebXml(expectWebXml);
         }
     }