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

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

commit a62e59af0381dbf037644ac9dd4b12d42cbb7cb6
Author: Slawomir Jaranowski <s.jaranow...@gmail.com>
AuthorDate: Sun Dec 10 15:33:05 2023 +0100

    [MASSEMBLY-1013] Code cleanups
    
    - diamond operators
    - use NIO new(Input|Output)Stream
    - inline simple variables
    - simplify arguments of {{AssemblyArchiver#createArchive}}
    - minimize usage of deprecated apis
    - remove unnecessary casting
---
 .../assembly/AssemblerConfigurationSource.java     | 13 +++++-
 .../plugins/assembly/archive/AssemblyArchiver.java |  4 --
 .../assembly/archive/DefaultAssemblyArchiver.java  | 29 ++-----------
 .../archive/archiver/AssemblyProxyArchiver.java    |  4 +-
 .../assembly/archive/archiver/PrefixedFileSet.java |  3 +-
 .../archive/phase/FileItemAssemblyPhase.java       |  6 +--
 .../filter/AbstractLineAggregatingHandler.java     | 12 +-----
 .../filter/ComponentsXmlArchiverFileFilter.java    | 13 +++---
 .../filter/SimpleAggregatingDescriptorHandler.java |  8 ++--
 .../plugins/assembly/format/ReaderFormatter.java   |  3 +-
 .../io/ClasspathResourceLocatorStrategy.java       |  9 +----
 .../plugins/assembly/io/DefaultAssemblyReader.java |  8 ++--
 .../plugins/assembly/io/DefaultMessageHolder.java  |  8 ++--
 .../apache/maven/plugins/assembly/io/Locator.java  |  2 +-
 .../maven/plugins/assembly/io/MessageLevels.java   |  2 +-
 .../assembly/mojos/AbstractAssemblyMojo.java       | 16 ++------
 .../assembly/utils/AssemblyFormatUtils.java        |  3 +-
 .../maven/plugins/assembly/utils/FilterUtils.java  |  2 +-
 .../plugins/assembly/utils/LineEndingsUtils.java   | 11 +++--
 src/main/mdo/assembly-component.mdo                |  2 +-
 src/main/mdo/assembly.mdo                          |  2 +-
 .../archive/DefaultAssemblyArchiverTest.java       | 47 ++++++----------------
 .../archive/ManifestCreationFinalizerTest.java     | 10 ++---
 .../archiver/AssemblyProxyArchiverTest.java        |  9 +++--
 .../phase/AssemblyArchiverPhaseComparatorTest.java | 13 +++---
 .../archive/phase/FileItemAssemblyPhaseTest.java   | 39 ++++++++++++------
 .../archive/phase/ModuleSetAssemblyPhaseTest.java  |  6 +--
 .../assembly/archive/task/AddFileSetsTaskTest.java | 18 ++++-----
 .../artifact/DefaultDependencyResolverTest.java    |  2 -
 .../ComponentsXmlArchiverFileFilterTest.java       |  3 +-
 .../assembly/format/ReaderFormatterTest.java       |  8 ++--
 .../assembly/io/DefaultAssemblyReaderTest.java     | 19 +++++----
 .../assembly/testutils/PojoConfigSource.java       | 22 ++++++++++
 .../assembly/utils/LineEndingsUtilsTest.java       |  2 +-
 34 files changed, 162 insertions(+), 196 deletions(-)

diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java
 
b/src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java
index 58c47ad9..8b1a76c2 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java
@@ -29,7 +29,7 @@ import org.apache.maven.shared.filtering.MavenReaderFilter;
 import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
 
 /**
- *
+ * Assembly configuration
  */
 public interface AssemblerConfigurationSource {
     /**
@@ -212,4 +212,15 @@ public interface AssemblerConfigurationSource {
      * @return Override group name.
      */
     String getOverrideGroupName();
+
+    /**
+     * @return Indicates if zip archives being added to the assembly should be 
compressed again.
+     */
+    boolean isRecompressZippedFiles();
+
+    /**
+     *
+     * @return the merge manifest mode in the JarArchiver
+     */
+    String getMergeManifestMode();
 }
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 e90b2c7a..afd8d19e 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
@@ -50,8 +50,6 @@ public interface AssemblyArchiver {
      * @param fullName              The full name.
      * @param format                The format.
      * @param configSource          The {@link 
org.apache.maven.plugins.assembly.AssemblerConfigurationSource}
-     * @param recompressZippedFiles recompress zipped files.
-     * @param mergeManifestMode     How to handle already existing Manifest 
files (skip, merge, mergewithoutmain)
      * @param sourceDateEpoch       Timestamp for reproducible archive entries
      * @return The resulting archive file.
      * @throws ArchiveCreationException                                        
         when creation fails
@@ -63,8 +61,6 @@ public interface AssemblyArchiver {
             String fullName,
             String format,
             AssemblerConfigurationSource configSource,
-            boolean recompressZippedFiles,
-            String mergeManifestMode,
             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 9e54cddd..f4ea3038 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
@@ -28,7 +28,6 @@ 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.List;
 import java.util.Map;
 
@@ -113,7 +112,7 @@ public class DefaultAssemblyArchiver implements 
AssemblyArchiver {
 
     private List<AssemblyArchiverPhase> sortedPhases() {
         List<AssemblyArchiverPhase> sorted = new ArrayList<>(assemblyPhases);
-        Collections.sort(sorted, new AssemblyArchiverPhaseComparator());
+        sorted.sort(new AssemblyArchiverPhaseComparator());
         return sorted;
     }
 
@@ -126,8 +125,6 @@ public class DefaultAssemblyArchiver implements 
AssemblyArchiver {
             final String fullName,
             final String format,
             final AssemblerConfigurationSource configSource,
-            boolean recompressZippedFiles,
-            String mergeManifestMode,
             FileTime outputTimestamp)
             throws ArchiveCreationException, AssemblyFormattingException, 
InvalidAssemblerConfigurationException {
         validate(assembly);
@@ -167,8 +164,6 @@ public class DefaultAssemblyArchiver implements 
AssemblyArchiver {
                     basedir,
                     configSource,
                     containerHandlers,
-                    recompressZippedFiles,
-                    mergeManifestMode,
                     outputTimestamp);
 
             archiver.setDestFile(destFile);
@@ -257,8 +252,6 @@ public class DefaultAssemblyArchiver implements 
AssemblyArchiver {
      * @param finalName             The final name.
      * @param configSource          {@link AssemblerConfigurationSource}
      * @param containerHandlers     The list of {@link 
ContainerDescriptorHandler}
-     * @param recompressZippedFiles recompress zipped files.
-     * @param mergeManifestMode     how to handle already existing Manifest 
files
      * @return archiver Archiver generated
      * @throws org.codehaus.plexus.archiver.ArchiverException
      * @throws org.codehaus.plexus.archiver.manager.NoSuchArchiverException
@@ -269,18 +262,10 @@ public class DefaultAssemblyArchiver implements 
AssemblyArchiver {
             final String finalName,
             final AssemblerConfigurationSource configSource,
             final List<ContainerDescriptorHandler> containerHandlers,
-            boolean recompressZippedFiles,
-            String mergeManifestMode,
             FileTime outputTimestamp)
             throws NoSuchArchiverException {
-        Archiver archiver;
 
-        // one missing alias in plexus-archiver
-        if ("tzst".equals(format)) {
-            archiver = createTarZstArchiver();
-        } else {
-            archiver = archiverManager.getArchiver(format);
-        }
+        Archiver archiver = archiverManager.getArchiver(format);
 
         if (archiver instanceof TarArchiver) {
             ((TarArchiver) 
archiver).setLongfile(TarLongFileMode.valueOf(configSource.getTarLongFileMode()));
@@ -291,13 +276,13 @@ public class DefaultAssemblyArchiver implements 
AssemblyArchiver {
         }
 
         if (archiver instanceof AbstractZipArchiver) {
-            ((AbstractZipArchiver) 
archiver).setRecompressAddedZips(recompressZippedFiles);
+            ((AbstractZipArchiver) 
archiver).setRecompressAddedZips(configSource.isRecompressZippedFiles());
         }
 
         final List<FileSelector> extraSelectors = new ArrayList<>();
         final List<ArchiveFinalizer> extraFinalizers = new ArrayList<>();
         if (archiver instanceof JarArchiver) {
-            configureJarArchiver((JarArchiver) archiver, mergeManifestMode);
+            configureJarArchiver((JarArchiver) archiver, 
configSource.getMergeManifestMode());
 
             extraSelectors.add(new JarSecurityFileSelector());
 
@@ -462,10 +447,4 @@ public class DefaultAssemblyArchiver implements 
AssemblyArchiver {
             throw new RuntimeException(e.getCause());
         }
     }
-
-    protected Archiver createTarZstArchiver() throws NoSuchArchiverException {
-        final TarArchiver tarArchiver = (TarArchiver) 
archiverManager.getArchiver("tar");
-        tarArchiver.setCompression(TarArchiver.TarCompressionMethod.zstd);
-        return tarArchiver;
-    }
 }
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
 
b/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
index 2cf75ed3..4a9658c4 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
@@ -19,10 +19,10 @@
 package org.apache.maven.plugins.assembly.archive.archiver;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.Charset;
+import java.nio.file.Files;
 import java.nio.file.attribute.FileTime;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -815,7 +815,7 @@ public class AssemblyProxyArchiver implements Archiver {
 
         @Override
         public InputStream getContents() throws IOException {
-            return new FileInputStream(inputFile);
+            return Files.newInputStream(inputFile.toPath());
         }
 
         @Override
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/PrefixedFileSet.java
 
b/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/PrefixedFileSet.java
index 98c0e9b5..a3171aaa 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/PrefixedFileSet.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/PrefixedFileSet.java
@@ -85,8 +85,7 @@ class PrefixedFileSet implements FileSet {
     @Override
     public FileSelector[] getFileSelectors() {
         FileSelector[] sel = fileSet.getFileSelectors();
-        final FileSelector[] selectors1 = selectors;
-        return combineSelectors(sel, selectors1);
+        return combineSelectors(sel, selectors);
     }
 
     /**
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhase.java
 
b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhase.java
index 8a9797ac..dd34c43e 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhase.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhase.java
@@ -22,10 +22,10 @@ import javax.inject.Named;
 import javax.inject.Singleton;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.SequenceInputStream;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -127,7 +127,7 @@ public class FileItemAssemblyPhase implements 
AssemblyArchiverPhase, PhaseOrder
 
             try {
                 final InputStreamTransformer fileSetTransformers = 
ReaderFormatter.getFileSetTransformers(
-                        configSource, fileItem.isFiltered(), 
Collections.<String>emptySet(), fileItem.getLineEnding());
+                        configSource, fileItem.isFiltered(), 
Collections.emptySet(), fileItem.getLineEnding());
 
                 final PlexusIoResource restoUse;
                 if (!fileItem.getSources().isEmpty()) {
@@ -138,7 +138,7 @@ public class FileItemAssemblyPhase implements 
AssemblyArchiverPhase, PhaseOrder
                         if (!AssemblyFileUtils.isAbsolutePath(contentSource)) {
                             contentSource = new File(basedir, 
contentSourcePath);
                         }
-                        content.add(new FileInputStream(contentSource));
+                        
content.add(Files.newInputStream(contentSource.toPath()));
                     }
 
                     String name = PlexusIoFileResource.getName(source);
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
 
b/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
index 93190791..b20d2eb3 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
@@ -20,7 +20,6 @@ package org.apache.maven.plugins.assembly.filter;
 
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
@@ -77,7 +76,7 @@ abstract class AbstractLineAggregatingHandler implements 
ContainerDescriptorHand
                 f.deleteOnExit();
 
                 try (PrintWriter writer =
-                        new PrintWriter(new OutputStreamWriter(new 
FileOutputStream(f), getEncoding()))) {
+                        new PrintWriter(new 
OutputStreamWriter(Files.newOutputStream(f.toPath()), getEncoding()))) {
                     for (final String line : entry.getValue()) {
                         writer.println(line);
                     }
@@ -113,15 +112,8 @@ abstract class AbstractLineAggregatingHandler implements 
ContainerDescriptorHand
 
         if (fileInfo.isFile() && fileMatches(fileInfo)) {
             name = getOutputPathPrefix(fileInfo) + new File(name).getName();
-
-            List<String> lines = catalog.get(name);
-            if (lines == null) {
-                lines = new ArrayList<>();
-                catalog.put(name, lines);
-            }
-
+            List<String> lines = catalog.computeIfAbsent(name, k -> new 
ArrayList<>());
             readLines(fileInfo, lines);
-
             return false;
         }
 
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
 
b/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
index c5f1960a..e835452e 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
@@ -92,7 +92,9 @@ public class ComponentsXmlArchiverFileFilter implements 
ContainerDescriptorHandl
             final File f = Files.createTempFile("maven-assembly-plugin", 
"tmp").toFile();
             f.deleteOnExit();
 
-            try (Writer fileWriter = new 
XmlStreamWriter(Files.newOutputStream(f.toPath()))) {
+            try (Writer fileWriter = XmlStreamWriter.builder()
+                    .setOutputStream(Files.newOutputStream(f.toPath()))
+                    .get()) {
                 final Xpp3Dom dom = new Xpp3Dom("component-set");
                 final Xpp3Dom componentDom = new Xpp3Dom("components");
                 dom.addChild(componentDom);
@@ -153,13 +155,12 @@ public class ComponentsXmlArchiverFileFilter implements 
ContainerDescriptorHandl
             }
 
             if 
(ComponentsXmlArchiverFileFilter.COMPONENTS_XML_PATH.equals(entry)) {
-                try (Reader reader = new BufferedReader(new 
XmlStreamReader(fileInfo.getContents()))) {
+                try (Reader reader = new 
BufferedReader(XmlStreamReader.builder()
+                        .setInputStream(fileInfo.getContents())
+                        .get())) {
                     addComponentsXml(reader);
                 } catch (final XmlPullParserException e) {
-                    final IOException error =
-                            new IOException("Error finalizing component-set 
for archive. Reason: " + e.getMessage(), e);
-
-                    throw error;
+                    throw new IOException("Error finalizing component-set for 
archive. Reason: " + e.getMessage(), e);
                 }
                 return false;
             } else {
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
 
b/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
index 21fd5138..af30cf56 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
@@ -21,8 +21,6 @@ package org.apache.maven.plugins.assembly.filter;
 import javax.inject.Named;
 
 import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
@@ -112,11 +110,11 @@ public class SimpleAggregatingDescriptorHandler 
implements ContainerDescriptorHa
         return f;
     }
 
-    private Writer getWriter(File f) throws FileNotFoundException {
+    private Writer getWriter(File f) throws IOException {
         Writer writer;
         writer = AssemblyFileUtils.isPropertyFile(f)
-                ? new OutputStreamWriter(new FileOutputStream(f), 
StandardCharsets.ISO_8859_1)
-                : new OutputStreamWriter(new FileOutputStream(f)); // Still 
platform encoding
+                ? new OutputStreamWriter(Files.newOutputStream(f.toPath()), 
StandardCharsets.ISO_8859_1)
+                : new OutputStreamWriter(Files.newOutputStream(f.toPath())); 
// Still platform encoding
         return writer;
     }
 
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java 
b/src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java
index 3f7daf71..f4e0e407 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java
@@ -82,8 +82,7 @@ public class ReaderFormatter {
             
filterRequest.setInjectProjectBuildFilters(configSource.isIncludeProjectBuildFilters());
             return configSource.getMavenReaderFilter().filter(filterRequest);
         } catch (MavenFilteringException e) {
-            IOException ioe = new IOException("Error filtering file '" + 
source + "': " + e.getMessage(), e);
-            throw ioe;
+            throw new IOException("Error filtering file '" + source + "': " + 
e.getMessage(), e);
         }
     }
 
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/io/ClasspathResourceLocatorStrategy.java
 
b/src/main/java/org/apache/maven/plugins/assembly/io/ClasspathResourceLocatorStrategy.java
index 99f8bdcc..f22c3dc7 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/io/ClasspathResourceLocatorStrategy.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/io/ClasspathResourceLocatorStrategy.java
@@ -25,12 +25,6 @@ import java.net.URL;
  */
 class ClasspathResourceLocatorStrategy implements LocatorStrategy {
 
-    private String tempFilePrefix = "location.";
-
-    private String tempFileSuffix = ".cpurl";
-
-    private boolean tempFileDeleteOnExit = true;
-
     /**
      * Create instance.
      */
@@ -45,8 +39,7 @@ class ClasspathResourceLocatorStrategy implements 
LocatorStrategy {
         Location location = null;
 
         if (resource != null) {
-            location = new URLLocation(
-                    resource, locationSpecification, tempFilePrefix, 
tempFileSuffix, tempFileDeleteOnExit);
+            location = new URLLocation(resource, locationSpecification, 
"location.", ".cpurl", true);
         } else {
             messageHolder.addMessage(
                     "Failed to resolve classpath resource: " + 
locationSpecification + " from classloader: " + cloader);
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java 
b/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
index bc4cbf32..c5cefac7 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
@@ -113,10 +113,8 @@ public class DefaultAssemblyReader implements 
AssemblyReader {
         }
 
         if ((descriptorSourceDirectory != null) && 
descriptorSourceDirectory.isDirectory()) {
-            // CHECKSTYLE_OFF: LineLength
-            locator.setStrategies(Collections.<LocatorStrategy>singletonList(
-                    new 
RelativeFileLocatorStrategy(descriptorSourceDirectory)));
-            // CHECKSTYLE_ON: LineLength
+            locator.setStrategies(
+                    Collections.singletonList(new 
RelativeFileLocatorStrategy(descriptorSourceDirectory)));
 
             final DirectoryScanner scanner = new DirectoryScanner();
             scanner.setBasedir(descriptorSourceDirectory);
@@ -297,7 +295,7 @@ public class DefaultAssemblyReader implements 
AssemblyReader {
             LOGGER.debug("Failed to print debug message with assembly 
descriptor listing, and message: " + message, e);
         }
 
-        LOGGER.debug(message + "\n\n" + sWriter.toString() + "\n\n");
+        LOGGER.debug(message + "\n\n" + sWriter + "\n\n");
     }
 
     /**
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/io/DefaultMessageHolder.java 
b/src/main/java/org/apache/maven/plugins/assembly/io/DefaultMessageHolder.java
index fbf26717..c9d431eb 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/io/DefaultMessageHolder.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/io/DefaultMessageHolder.java
@@ -148,11 +148,11 @@ class DefaultMessageHolder implements MessageHolder {
 
     /** {@inheritDoc} */
     public String render() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
 
         int counter = 1;
         for (Iterator<Message> it = messages.iterator(); it.hasNext(); ) {
-            Message message = (Message) it.next();
+            Message message = it.next();
 
             int ml = message.getMessageLevel();
 
@@ -169,7 +169,7 @@ class DefaultMessageHolder implements MessageHolder {
 
             if (content.length() > label.length() + 3) {
                 buffer.append('[').append(counter++).append("] ");
-                buffer.append(content.toString());
+                buffer.append(content);
 
                 if (it.hasNext()) {
                     buffer.append("\n\n");
@@ -243,7 +243,7 @@ class DefaultMessageHolder implements MessageHolder {
                 PrintWriter pw = new PrintWriter(sw);
                 error.printStackTrace(pw);
 
-                buffer.append(sw.toString());
+                buffer.append(sw);
             }
 
             return buffer;
diff --git a/src/main/java/org/apache/maven/plugins/assembly/io/Locator.java 
b/src/main/java/org/apache/maven/plugins/assembly/io/Locator.java
index 99047745..eca66f77 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/io/Locator.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/io/Locator.java
@@ -92,7 +92,7 @@ final class Locator {
         Location location = null;
 
         for (Iterator<LocatorStrategy> it = strategies.iterator(); location == 
null && it.hasNext(); ) {
-            LocatorStrategy strategy = (LocatorStrategy) it.next();
+            LocatorStrategy strategy = it.next();
 
             location = strategy.resolve(locationSpecification, messageHolder);
         }
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/io/MessageLevels.java 
b/src/main/java/org/apache/maven/plugins/assembly/io/MessageLevels.java
index 66be82ec..e9996845 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/io/MessageLevels.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/io/MessageLevels.java
@@ -100,7 +100,7 @@ final class MessageLevels {
      */
     static String getLevelLabel(int messageLevel) {
         if (messageLevel > -1 && LEVEL_NAMES.size() > messageLevel) {
-            return (String) LEVEL_NAMES.get(messageLevel);
+            return LEVEL_NAMES.get(messageLevel);
         }
 
         throw new IllegalArgumentException("Invalid message level: " + 
messageLevel);
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 ec794d0c..d81b3056 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
@@ -480,14 +480,7 @@ public abstract class AbstractAssemblyMojo extends 
AbstractMojo implements Assem
                 }
 
                 for (final String format : effectiveFormats) {
-                    final File destFile = assemblyArchiver.createArchive(
-                            assembly,
-                            fullName,
-                            format,
-                            this,
-                            isRecompressZippedFiles(),
-                            getMergeManifestMode(),
-                            outputDate);
+                    final File destFile = 
assemblyArchiver.createArchive(assembly, fullName, format, this, outputDate);
 
                     final MavenProject project = getProject();
                     final String type = project.getArtifact().getType();
@@ -619,9 +612,6 @@ public abstract class AbstractAssemblyMojo extends 
AbstractMojo implements Assem
         this.descriptors = descriptors;
     }
 
-    @Override
-    public abstract MavenProject getProject();
-
     @Override
     public File getSiteDirectory() {
         return siteDirectory;
@@ -781,10 +771,12 @@ public abstract class AbstractAssemblyMojo extends 
AbstractMojo implements Assem
         return encoding;
     }
 
-    boolean isRecompressZippedFiles() {
+    @Override
+    public boolean isRecompressZippedFiles() {
         return recompressZippedFiles;
     }
 
+    @Override
     public String getMergeManifestMode() {
         return mergeManifestMode;
     }
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
 
b/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
index e85650e4..b039e5eb 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
@@ -264,8 +264,7 @@ public final class AssemblyFormatUtils {
             }
 
             if (value.contains("." + sep)) {
-                List<String> parts = new ArrayList<>();
-                parts.addAll(Arrays.asList(value.split(sep.replace("\\", 
"\\\\"))));
+                List<String> parts = new 
ArrayList<>(Arrays.asList(value.split(sep.replace("\\", "\\\\"))));
 
                 for (ListIterator<String> it = parts.listIterator(); 
it.hasNext(); ) {
                     String part = it.next();
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java 
b/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
index fb2f55b3..b0f54cf4 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
@@ -101,7 +101,7 @@ public final class FilterUtils {
 
         final AndArtifactFilter filter = new AndArtifactFilter();
 
-        if (additionalFilters != null && additionalFilters.length > 0) {
+        if (additionalFilters != null) {
             for (final ArtifactFilter additionalFilter : additionalFilters) {
                 if (additionalFilter != null) {
                     filter.add(additionalFilter);
diff --git 
a/src/main/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtils.java 
b/src/main/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtils.java
index 9e284258..ead560c6 100644
--- 
a/src/main/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtils.java
+++ 
b/src/main/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtils.java
@@ -21,13 +21,12 @@ package org.apache.maven.plugins.assembly.utils;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.RandomAccessFile;
+import java.nio.file.Files;
 
 import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
 
@@ -94,20 +93,20 @@ public final class LineEndingsUtils {
     private static BufferedReader getBufferedReader(File source, String 
encoding) throws IOException {
         if (encoding == null) {
             // platform encoding
-            return new BufferedReader(new InputStreamReader(new 
FileInputStream(source)));
+            return new BufferedReader(new 
InputStreamReader(Files.newInputStream(source.toPath())));
         } else {
             // MASSEMBLY-371
-            return new BufferedReader(new InputStreamReader(new 
FileInputStream(source), encoding));
+            return new BufferedReader(new 
InputStreamReader(Files.newInputStream(source.toPath()), encoding));
         }
     }
 
     private static BufferedWriter getBufferedWriter(File dest, String 
encoding) throws IOException {
         if (encoding == null) {
             // platform encoding
-            return new BufferedWriter(new OutputStreamWriter(new 
FileOutputStream(dest)));
+            return new BufferedWriter(new 
OutputStreamWriter(Files.newOutputStream(dest.toPath())));
         } else {
             // MASSEMBLY-371
-            return new BufferedWriter(new OutputStreamWriter(new 
FileOutputStream(dest), encoding));
+            return new BufferedWriter(new 
OutputStreamWriter(Files.newOutputStream(dest.toPath()), encoding));
         }
     }
 
diff --git a/src/main/mdo/assembly-component.mdo 
b/src/main/mdo/assembly-component.mdo
index 0499f1b5..3c1d15ac 100644
--- a/src/main/mdo/assembly-component.mdo
+++ b/src/main/mdo/assembly-component.mdo
@@ -22,7 +22,7 @@
 -->
 
 <model xmlns="http://codehaus-plexus.github.io/MODELLO/2.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="https://codehaus-plexus.github.io/MODELLO/2.0.0 
http://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd";
+       xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/2.0.0 
https://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd";
        xml.namespace="http://maven.apache.org/ASSEMBLY-COMPONENT/${version}";
        
xml.schemaLocation="https://maven.apache.org/xsd/assembly-component-${version}.xsd";>
 
diff --git a/src/main/mdo/assembly.mdo b/src/main/mdo/assembly.mdo
index 1e0790ab..7372a208 100644
--- a/src/main/mdo/assembly.mdo
+++ b/src/main/mdo/assembly.mdo
@@ -24,7 +24,7 @@
 -->
 
 <model xmlns="http://codehaus-plexus.github.io/MODELLO/2.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="https://codehaus-plexus.github.io/MODELLO/2.0.0 
http://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd";
+       xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/2.0.0 
https://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd";
        xml.namespace="http://maven.apache.org/ASSEMBLY/${version}";
        
xml.schemaLocation="https://maven.apache.org/xsd/assembly-${version}.xsd";>
 
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 4c52231b..730469cc 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
@@ -28,7 +28,6 @@ import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import 
org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
 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;
@@ -96,8 +95,8 @@ public class DefaultAssemblyArchiverTest {
 
     @Test(expected = InvalidAssemblerConfigurationException.class)
     public void failWhenAssemblyIdIsNull() throws Exception {
-        final DefaultAssemblyArchiver archiver = 
createSubject(Collections.<AssemblyArchiverPhase>emptyList());
-        archiver.createArchive(new Assembly(), "full-name", "zip", null, 
false, null, null);
+        final DefaultAssemblyArchiver archiver = 
createSubject(Collections.emptyList());
+        archiver.createArchive(new Assembly(), "full-name", "zip", null, null);
     }
 
     @Test
@@ -125,7 +124,7 @@ public class DefaultAssemblyArchiverTest {
 
         final DefaultAssemblyArchiver subject = 
createSubject(Collections.singletonList(phase));
 
-        subject.createArchive(assembly, "full-name", "zip", configSource, 
false, null, null);
+        subject.createArchive(assembly, "full-name", "zip", configSource, 
null);
 
         // result of easymock migration, should be assert of expected result 
instead of verifying methodcalls
         verify(configSource).getArchiverConfig();
@@ -184,7 +183,7 @@ public class DefaultAssemblyArchiverTest {
 
         final DefaultAssemblyArchiver subject = createSubject(new 
ArrayList<>());
 
-        subject.createArchiver("dummy", false, "finalName", configSource, 
null, false, null, null);
+        subject.createArchiver("dummy", false, "finalName", configSource, 
null, null);
 
         assertEquals(simpleConfig, archiver.getSimpleConfig());
 
@@ -209,7 +208,7 @@ public class DefaultAssemblyArchiverTest {
 
         final DefaultAssemblyArchiver subject = createSubject(new 
ArrayList<>());
 
-        subject.createArchiver("tar", false, "finalName", configSource, null, 
false, null, null);
+        subject.createArchiver("tar", false, "finalName", configSource, null, 
null);
 
         assertNull(ttArchiver.compressionMethod);
         assertEquals(TarLongFileMode.fail, ttArchiver.longFileMode);
@@ -243,10 +242,11 @@ public class DefaultAssemblyArchiverTest {
         when(configSource.getProject()).thenReturn(new MavenProject(new 
Model()));
         when(configSource.getWorkingDirectory()).thenReturn(new File("."));
         when(configSource.isIgnorePermissions()).thenReturn(true);
+        when(configSource.isRecompressZippedFiles()).thenReturn(false);
 
         final DefaultAssemblyArchiver subject = createSubject(new 
ArrayList<>());
 
-        subject.createArchiver("war", false, null, configSource, null, false, 
null, null);
+        subject.createArchiver("war", false, null, configSource, null, null);
 
         assertNotNull(twArchiver.expectWebXml);
         assertFalse(twArchiver.expectWebXml);
@@ -281,10 +281,11 @@ public class DefaultAssemblyArchiverTest {
         when(configSource.getOverrideUserName()).thenReturn("root");
         when(configSource.getWorkingDirectory()).thenReturn(new File("."));
         when(configSource.isIgnorePermissions()).thenReturn(true);
+        when(configSource.isRecompressZippedFiles()).thenReturn(false);
 
         final DefaultAssemblyArchiver subject = createSubject(new 
ArrayList<>());
 
-        subject.createArchiver("zip", false, null, configSource, null, false, 
null, null);
+        subject.createArchiver("zip", false, null, configSource, null, null);
 
         // result of easymock migration, should be assert of expected result 
instead of verifying methodcalls
         verify(configSource).getArchiverConfig();
@@ -311,8 +312,9 @@ public class DefaultAssemblyArchiverTest {
         PojoConfigSource configSource = new PojoConfigSource();
         configSource.setTarLongFileMode(TarLongFileMode.fail.name());
         configSource.setWorkingDirectory(new File(""));
+        configSource.setRecompressZippedFiles(false);
 
-        subject.createArchiver("tar", true, "", configSource, null, false, 
null, null);
+        subject.createArchiver("tar", true, "", configSource, null, null);
 
         assertNull(new TestTarArchiver().compressionMethod);
         assertEquals(TarLongFileMode.fail, archiver.longFileMode);
@@ -321,37 +323,15 @@ public class DefaultAssemblyArchiverTest {
         verify(archiverManager).getArchiver("tar");
     }
 
-    @Test
-    public void 
testCreateTarArchiver_TZstFormat_ShouldInitializeZstCompression() throws 
Exception {
-        final TestTarArchiver archiver = new TestTarArchiver();
-
-        when(archiverManager.getArchiver("tar")).thenReturn(archiver);
-
-        final DefaultAssemblyArchiver subject = createSubject(new 
ArrayList<>());
-
-        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);
-
-        // result of easymock migration, should be assert of expected result 
instead of verifying methodcalls
-        verify(archiverManager).getArchiver("tar");
-    }
-
     @Test
     public void 
testCreateTarArchiver_InvalidFormat_ShouldFailWithInvalidCompression() throws 
Exception {
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
 
         when(archiverManager.getArchiver("tar.ZZZ")).thenThrow(new 
NoSuchArchiverException("no archiver"));
 
         final DefaultAssemblyArchiver subject = createSubject(new 
ArrayList<>());
 
         try {
-            subject.createArchiver("tar.ZZZ", true, "", null, null, false, 
null, null);
+            subject.createArchiver("tar.ZZZ", true, "", null, null, null);
 
             fail("Invalid compression formats should throw an error.");
         } catch (final NoSuchArchiverException e) {
@@ -363,8 +343,7 @@ public class DefaultAssemblyArchiverTest {
     }
 
     private DefaultAssemblyArchiver createSubject(final 
List<AssemblyArchiverPhase> phases) {
-        return new DefaultAssemblyArchiver(
-                archiverManager, phases, Collections.<String, 
ContainerDescriptorHandler>emptyMap(), container);
+        return new DefaultAssemblyArchiver(archiverManager, phases, 
Collections.emptyMap(), container);
     }
 
     private static final class TestTarArchiver extends TarArchiver {
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizerTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizerTest.java
index a9d77cfe..7ac378a0 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizerTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizerTest.java
@@ -27,14 +27,12 @@ import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.Arrays;
 import java.util.Collections;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.maven.archiver.MavenArchiveConfiguration;
 import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.archiver.ArchiveFinalizer;
 import org.codehaus.plexus.archiver.jar.JarArchiver;
 import org.junit.Rule;
 import org.junit.Test;
@@ -72,14 +70,13 @@ public class ManifestCreationFinalizerTest {
 
         Path manifestFile = tempDir.toPath().resolve("MANIFEST.MF");
 
-        Files.write(manifestFile, Arrays.asList("Main-Class: Stuff\n"), 
StandardCharsets.UTF_8);
+        Files.write(manifestFile, Collections.singletonList("Main-Class: 
Stuff\n"), StandardCharsets.UTF_8);
 
         config.setManifestFile(manifestFile.toFile());
 
         JarArchiver archiver = new JarArchiver();
 
-        archiver.setArchiveFinalizers(
-                Collections.<ArchiveFinalizer>singletonList(new 
ManifestCreationFinalizer(null, project, config)));
+        archiver.setArchiveFinalizers(Collections.singletonList(new 
ManifestCreationFinalizer(null, project, config)));
 
         File file = temporaryFolder.newFile();
 
@@ -113,8 +110,7 @@ public class ManifestCreationFinalizerTest {
 
         JarArchiver archiver = new JarArchiver();
 
-        archiver.setArchiveFinalizers(
-                Collections.<ArchiveFinalizer>singletonList(new 
ManifestCreationFinalizer(null, project, config)));
+        archiver.setArchiveFinalizers(Collections.singletonList(new 
ManifestCreationFinalizer(null, project, config)));
 
         File file = temporaryFolder.newFile();
 
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
index 60788eb1..c44afcbc 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
@@ -23,7 +23,7 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import org.codehaus.plexus.archiver.Archiver;
@@ -84,11 +84,11 @@ public class AssemblyProxyArchiverTest {
 
         Files.write(
                 sources.toPath().resolve("test-included.txt"),
-                Arrays.asList("This is included"),
+                Collections.singletonList("This is included"),
                 StandardCharsets.UTF_8);
         Files.write(
                 workdir.toPath().resolve("test-excluded.txt"),
-                Arrays.asList("This is excluded"),
+                Collections.singletonList("This is excluded"),
                 StandardCharsets.UTF_8);
 
         final TrackingArchiver tracker = new TrackingArchiver();
@@ -147,7 +147,8 @@ public class AssemblyProxyArchiverTest {
         archiver.setForced(true);
 
         final File dir = temporaryFolder.newFolder();
-        Files.write(dir.toPath().resolve("file.txt"), Arrays.asList("This is a 
test."), StandardCharsets.UTF_8);
+        Files.write(
+                dir.toPath().resolve("file.txt"), 
Collections.singletonList("This is a test."), StandardCharsets.UTF_8);
 
         archiver.addDirectory(dir);
 
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparatorTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparatorTest.java
index 9cc0c995..0925f15a 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparatorTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparatorTest.java
@@ -19,7 +19,6 @@
 package org.apache.maven.plugins.assembly.archive.phase;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
@@ -46,32 +45,32 @@ public class AssemblyArchiverPhaseComparatorTest {
         items.add(o1);
         Unordered1 u1 = new Unordered1();
         items.add(u1);
-        Collections.sort(items, new AssemblyArchiverPhaseComparator());
+        items.sort(new AssemblyArchiverPhaseComparator());
         assertSame(u1, items.get(0));
         assertSame(u2, items.get(1));
         assertSame(o1, items.get(2));
         assertSame(o2, items.get(3));
     }
 
-    class Basic implements AssemblyArchiverPhase {
+    static class Basic implements AssemblyArchiverPhase {
         public void execute(Assembly assembly, Archiver archiver, 
AssemblerConfigurationSource configSource)
                 throws ArchiveCreationException, AssemblyFormattingException, 
InvalidAssemblerConfigurationException,
                         DependencyResolutionException {}
     }
 
-    class Ordered1 extends Basic implements PhaseOrder {
+    static class Ordered1 extends Basic implements PhaseOrder {
         public int order() {
             return 20;
         }
     }
 
-    class Ordered2 extends Basic implements PhaseOrder {
+    static class Ordered2 extends Basic implements PhaseOrder {
         public int order() {
             return 30;
         }
     }
 
-    class Unordered1 extends Basic {}
+    static class Unordered1 extends Basic {}
 
-    class Unordered2 extends Basic {}
+    static class Unordered2 extends Basic {}
 }
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
index 079edf84..a7d1c52d 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
@@ -21,7 +21,7 @@ package org.apache.maven.plugins.assembly.archive.phase;
 import java.io.File;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.util.Arrays;
+import java.util.Collections;
 
 import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
@@ -76,7 +76,7 @@ public class FileItemAssemblyPhaseTest {
         final File basedir = temporaryFolder.getRoot();
 
         final File file = temporaryFolder.newFile("file.txt");
-        Files.write(file.toPath(), Arrays.asList("This is a test file."), 
StandardCharsets.UTF_8);
+        Files.write(file.toPath(), Collections.singletonList("This is a test 
file."), StandardCharsets.UTF_8);
 
         when(macCS.getBasedir()).thenReturn(basedir);
         when(macCS.getProject()).thenReturn(new MavenProject(new Model()));
@@ -110,7 +110,7 @@ public class FileItemAssemblyPhaseTest {
         final File basedir = temporaryFolder.getRoot();
 
         final File file = temporaryFolder.newFile("file.txt");
-        Files.write(file.toPath(), Arrays.asList("This is a test file."), 
StandardCharsets.UTF_8);
+        Files.write(file.toPath(), Collections.singletonList("This is a test 
file."), StandardCharsets.UTF_8);
 
         when(macCS.getBasedir()).thenReturn(basedir);
         when(macCS.getProject()).thenReturn(new MavenProject(new Model()));
@@ -144,16 +144,21 @@ public class FileItemAssemblyPhaseTest {
         final File basedir = temporaryFolder.getRoot();
 
         final File readmeFile = temporaryFolder.newFile("README.txt");
-        Files.write(readmeFile.toPath(), Arrays.asList("This is a test file 
for README.txt."), StandardCharsets.UTF_8);
+        Files.write(
+                readmeFile.toPath(),
+                Collections.singletonList("This is a test file for 
README.txt."),
+                StandardCharsets.UTF_8);
 
         final File licenseFile = temporaryFolder.newFile("LICENSE.txt");
         Files.write(
-                licenseFile.toPath(), Arrays.asList("This is a test file for 
LICENSE.txt."), StandardCharsets.UTF_8);
+                licenseFile.toPath(),
+                Collections.singletonList("This is a test file for 
LICENSE.txt."),
+                StandardCharsets.UTF_8);
 
         final File configFile = new File(temporaryFolder.newFolder("config"), 
"config.txt");
         Files.write(
                 configFile.toPath(),
-                Arrays.asList("This is a test file for config/config.txt"),
+                Collections.singletonList("This is a test file for 
config/config.txt"),
                 StandardCharsets.UTF_8);
 
         when(macCS.getBasedir()).thenReturn(basedir);
@@ -218,16 +223,21 @@ public class FileItemAssemblyPhaseTest {
         final File basedir = temporaryFolder.getRoot();
 
         final File readmeFile = temporaryFolder.newFile("README.txt");
-        Files.write(readmeFile.toPath(), Arrays.asList("This is a test file 
for README.txt."), StandardCharsets.UTF_8);
+        Files.write(
+                readmeFile.toPath(),
+                Collections.singletonList("This is a test file for 
README.txt."),
+                StandardCharsets.UTF_8);
 
         final File licenseFile = temporaryFolder.newFile("LICENSE.txt");
         Files.write(
-                licenseFile.toPath(), Arrays.asList("This is a test file for 
LICENSE.txt."), StandardCharsets.UTF_8);
+                licenseFile.toPath(),
+                Collections.singletonList("This is a test file for 
LICENSE.txt."),
+                StandardCharsets.UTF_8);
 
         final File configFile = new File(temporaryFolder.newFolder("config"), 
"config.txt");
         Files.write(
                 configFile.toPath(),
-                Arrays.asList("This is a test file for config/config.txt"),
+                Collections.singletonList("This is a test file for 
config/config.txt"),
                 StandardCharsets.UTF_8);
 
         when(macCS.getBasedir()).thenReturn(basedir);
@@ -295,16 +305,21 @@ public class FileItemAssemblyPhaseTest {
         final File basedir = temporaryFolder.getRoot();
 
         final File readmeFile = temporaryFolder.newFile("README.txt");
-        Files.write(readmeFile.toPath(), Arrays.asList("This is a test file 
for README.txt."), StandardCharsets.UTF_8);
+        Files.write(
+                readmeFile.toPath(),
+                Collections.singletonList("This is a test file for 
README.txt."),
+                StandardCharsets.UTF_8);
 
         final File licenseFile = temporaryFolder.newFile("LICENSE.txt");
         Files.write(
-                licenseFile.toPath(), Arrays.asList("This is a test file for 
LICENSE.txt."), StandardCharsets.UTF_8);
+                licenseFile.toPath(),
+                Collections.singletonList("This is a test file for 
LICENSE.txt."),
+                StandardCharsets.UTF_8);
 
         final File configFile = new File(temporaryFolder.newFolder("config"), 
"config.txt");
         Files.write(
                 configFile.toPath(),
-                Arrays.asList("This is a test file for config/config.txt"),
+                Collections.singletonList("This is a test file for 
config/config.txt"),
                 StandardCharsets.UTF_8);
 
         when(macCS.getBasedir()).thenReturn(basedir);
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
index 915e1f2e..ef2e9da4 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
@@ -69,11 +69,9 @@ public class ModuleSetAssemblyPhaseTest {
 
     private DependencyResolver dependencyResolver;
 
-    private ProjectBuilder projectBuilder;
-
     @Before
     public void setUp() {
-        this.projectBuilder = mock(ProjectBuilder.class);
+        ProjectBuilder projectBuilder = mock(ProjectBuilder.class);
         this.dependencyResolver = mock(DependencyResolver.class);
 
         this.phase = new ModuleSetAssemblyPhase(projectBuilder, 
dependencyResolver);
@@ -724,7 +722,7 @@ public class ModuleSetAssemblyPhaseTest {
         boolean failed = false;
 
         final Set<MavenProject> checkTooMany = new HashSet<>(moduleProjects);
-        checkTooMany.removeAll(check);
+        check.forEach(checkTooMany::remove);
 
         if (!checkTooMany.isEmpty()) {
             failed = true;
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
index 976f8a4c..671ecb45 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
@@ -56,7 +56,7 @@ public class AddFileSetsTaskTest {
 
         fs.setDirectory(dir.getAbsolutePath());
 
-        final File result = new AddFileSetsTask(new 
ArrayList<FileSet>()).getFileSetDirectory(fs, null, null);
+        final File result = new AddFileSetsTask(new 
ArrayList<>()).getFileSetDirectory(fs, null, null);
 
         assertEquals(dir.getAbsolutePath(), result.getAbsolutePath());
     }
@@ -67,7 +67,7 @@ public class AddFileSetsTaskTest {
 
         final FileSet fs = new FileSet();
 
-        final File result = new AddFileSetsTask(new 
ArrayList<FileSet>()).getFileSetDirectory(fs, dir, null);
+        final File result = new AddFileSetsTask(new 
ArrayList<>()).getFileSetDirectory(fs, dir, null);
 
         assertEquals(dir.getAbsolutePath(), result.getAbsolutePath());
     }
@@ -84,7 +84,7 @@ public class AddFileSetsTaskTest {
 
         fs.setDirectory(srcPath);
 
-        final File result = new AddFileSetsTask(new 
ArrayList<FileSet>()).getFileSetDirectory(fs, dir, null);
+        final File result = new AddFileSetsTask(new 
ArrayList<>()).getFileSetDirectory(fs, dir, null);
 
         assertEquals(srcDir.getAbsolutePath(), result.getAbsolutePath());
     }
@@ -101,7 +101,7 @@ public class AddFileSetsTaskTest {
 
         fs.setDirectory(srcPath);
 
-        final File result = new AddFileSetsTask(new 
ArrayList<FileSet>()).getFileSetDirectory(fs, null, dir);
+        final File result = new AddFileSetsTask(new 
ArrayList<>()).getFileSetDirectory(fs, null, dir);
 
         assertEquals(srcDir.getAbsolutePath(), result.getAbsolutePath());
     }
@@ -127,7 +127,7 @@ public class AddFileSetsTaskTest {
 
         DefaultAssemblyArchiverTest.setupInterpolators(configSource, project);
 
-        final AddFileSetsTask task = new AddFileSetsTask(new 
ArrayList<FileSet>());
+        final AddFileSetsTask task = new AddFileSetsTask(new ArrayList<>());
 
         task.setProject(project);
 
@@ -165,7 +165,7 @@ public class AddFileSetsTaskTest {
         project.setGroupId("GROUPID");
         DefaultAssemblyArchiverTest.setupInterpolators(configSource, project);
 
-        final AddFileSetsTask task = new AddFileSetsTask(new 
ArrayList<FileSet>());
+        final AddFileSetsTask task = new AddFileSetsTask(new ArrayList<>());
         task.setProject(project);
 
         task.addFileSet(fs, archiver, configSource, archiveBaseDir);
@@ -198,7 +198,7 @@ public class AddFileSetsTaskTest {
 
         DefaultAssemblyArchiverTest.setupInterpolators(configSource, project);
 
-        final AddFileSetsTask task = new AddFileSetsTask(new 
ArrayList<FileSet>());
+        final AddFileSetsTask task = new AddFileSetsTask(new ArrayList<>());
         task.setProject(project);
 
         task.addFileSet(fs, archiver, configSource, archiveBaseDir);
@@ -217,7 +217,7 @@ public class AddFileSetsTaskTest {
         final AssemblerConfigurationSource configSource = 
mock(AssemblerConfigurationSource.class);
         
when(configSource.getArchiveBaseDirectory()).thenReturn(archiveBaseDir);
 
-        final AddFileSetsTask task = new AddFileSetsTask(new 
ArrayList<FileSet>());
+        final AddFileSetsTask task = new AddFileSetsTask(new ArrayList<>());
 
         try {
             task.execute(null, configSource);
@@ -237,7 +237,7 @@ public class AddFileSetsTaskTest {
         final AssemblerConfigurationSource configSource = 
mock(AssemblerConfigurationSource.class);
         
when(configSource.getArchiveBaseDirectory()).thenReturn(archiveBaseDir);
 
-        final AddFileSetsTask task = new AddFileSetsTask(new 
ArrayList<FileSet>());
+        final AddFileSetsTask task = new AddFileSetsTask(new ArrayList<>());
 
         try {
             task.execute(null, configSource);
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
index 32c88ebe..dda82cb1 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
@@ -39,8 +39,6 @@ import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusTestCase;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
index 4b2abe87..108e0568 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
@@ -34,7 +34,6 @@ import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
 import org.codehaus.plexus.archiver.ArchiveEntry;
-import org.codehaus.plexus.archiver.ArchiveFinalizer;
 import org.codehaus.plexus.archiver.ArchivedFileSet;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
@@ -246,7 +245,7 @@ public class ComponentsXmlArchiverFileFilterTest {
 
         final File descriptorFile = new File(temporaryFolder.getRoot(), 
"descriptor.xml");
 
-        
archiver.setArchiveFinalizers(Collections.<ArchiveFinalizer>singletonList(filter));
+        archiver.setArchiveFinalizers(Collections.singletonList(filter));
 
         archiver.createArchive();
 
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/format/ReaderFormatterTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/format/ReaderFormatterTest.java
index b8513ca0..b82bdd2e 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/format/ReaderFormatterTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/format/ReaderFormatterTest.java
@@ -54,7 +54,7 @@ public class ReaderFormatterTest {
     public void lineDosFeed() throws IOException, AssemblyFormattingException {
         final PojoConfigSource cfg = getPojoConfigSource();
         InputStreamTransformer fileSetTransformers =
-                ReaderFormatter.getFileSetTransformers(cfg, true, 
Collections.<String>emptySet(), "dos");
+                ReaderFormatter.getFileSetTransformers(cfg, true, 
Collections.emptySet(), "dos");
         InputStream fud = fileSetTransformers.transform(dummyResource(), 
payload("This is a\ntest."));
         assertEquals("This is a\r\ntest.", readResultStream(fud));
     }
@@ -63,7 +63,7 @@ public class ReaderFormatterTest {
     public void lineDosFeed_withoutFiltering() throws IOException, 
AssemblyFormattingException {
         final PojoConfigSource cfg = getPojoConfigSource();
         InputStreamTransformer fileSetTransformers =
-                ReaderFormatter.getFileSetTransformers(cfg, false, 
Collections.<String>emptySet(), "dos");
+                ReaderFormatter.getFileSetTransformers(cfg, false, 
Collections.emptySet(), "dos");
         InputStream fud = fileSetTransformers.transform(dummyResource(), 
payload("This is a\ntest."));
         assertEquals("This is a\r\ntest.", readResultStream(fud));
     }
@@ -72,7 +72,7 @@ public class ReaderFormatterTest {
     public void lineUnixFeedWithInterpolation() throws IOException, 
AssemblyFormattingException {
         final PojoConfigSource cfg = getPojoConfigSource();
         InputStreamTransformer fileSetTransformers =
-                ReaderFormatter.getFileSetTransformers(cfg, true, 
Collections.<String>emptySet(), "unix");
+                ReaderFormatter.getFileSetTransformers(cfg, true, 
Collections.emptySet(), "unix");
         InputStream fud = fileSetTransformers.transform(
                 dummyResource(), payload("This is a test for project: 
${artifactId} @artifactId@."));
         assertEquals("This is a test for project: anArtifact anArtifact.", 
readResultStream(fud));
@@ -107,7 +107,7 @@ public class ReaderFormatterTest {
         cfg.setAdditionalProperties(additionalProperties);
 
         InputStreamTransformer transformer =
-                ReaderFormatter.getFileSetTransformers(cfg, true, 
Collections.<String>emptySet(), "unix");
+                ReaderFormatter.getFileSetTransformers(cfg, true, 
Collections.emptySet(), "unix");
 
         final InputStream inputStream = new ByteArrayInputStream(new byte[0]);
         PlexusIoResource resource = mock(PlexusIoResource.class);
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
index 0c1ed620..451c0c29 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
@@ -19,7 +19,6 @@
 package org.apache.maven.plugins.assembly.io;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.StringReader;
@@ -28,7 +27,6 @@ import java.io.Writer;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
@@ -277,7 +275,8 @@ public class DefaultAssemblyReaderTest {
 
         final File componentFile = temporaryFolder.newFile();
 
-        try (Writer writer = new OutputStreamWriter(new 
FileOutputStream(componentFile), "UTF-8")) {
+        try (Writer writer =
+                new 
OutputStreamWriter(Files.newOutputStream(componentFile.toPath()), 
StandardCharsets.UTF_8)) {
             final ComponentXpp3Writer componentWriter = new 
ComponentXpp3Writer();
 
             componentWriter.write(writer, component);
@@ -376,7 +375,8 @@ public class DefaultAssemblyReaderTest {
 
         component.addFileSet(fs);
 
-        try (Writer fw = new OutputStreamWriter(new 
FileOutputStream(componentsFile), "UTF-8")) {
+        try (Writer fw =
+                new 
OutputStreamWriter(Files.newOutputStream(componentsFile.toPath()), 
StandardCharsets.UTF_8)) {
             new ComponentXpp3Writer().write(fw, component);
         }
 
@@ -426,7 +426,8 @@ public class DefaultAssemblyReaderTest {
 
         component.addFileSet(fs);
 
-        try (Writer fw = new OutputStreamWriter(new 
FileOutputStream(componentsFile), "UTF-8")) {
+        try (Writer fw =
+                new 
OutputStreamWriter(Files.newOutputStream(componentsFile.toPath()), 
StandardCharsets.UTF_8)) {
             new ComponentXpp3Writer().write(fw, component);
         }
 
@@ -514,7 +515,8 @@ public class DefaultAssemblyReaderTest {
 
         DefaultAssemblyArchiverTest.setupInterpolators(configSource);
 
-        try (Writer writer = new OutputStreamWriter(new 
FileOutputStream(assemblyFile), "UTF-8")) {
+        try (Writer writer =
+                new 
OutputStreamWriter(Files.newOutputStream(assemblyFile.toPath()), 
StandardCharsets.UTF_8)) {
             new AssemblyXpp3Writer().write(writer, assembly);
         }
 
@@ -685,7 +687,7 @@ public class DefaultAssemblyReaderTest {
 
         Files.write(
                 basedir.toPath().resolve("readme.txt"),
-                Arrays.asList("This is just a readme file, not a descriptor."),
+                Collections.singletonList("This is just a readme file, not a 
descriptor."),
                 StandardCharsets.UTF_8);
 
         final List<Assembly> results = performReadAssemblies(basedir, null, 
null, basedir);
@@ -708,7 +710,8 @@ public class DefaultAssemblyReaderTest {
         for (final Assembly assembly : assemblies) {
             final File assemblyFile = new File(dir, assembly.getId() + ".xml");
 
-            try (Writer writer = new OutputStreamWriter(new 
FileOutputStream(assemblyFile), "UTF-8")) {
+            try (Writer writer =
+                    new 
OutputStreamWriter(Files.newOutputStream(assemblyFile.toPath()), 
StandardCharsets.UTF_8)) {
                 new AssemblyXpp3Writer().write(writer, assembly);
             }
 
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/testutils/PojoConfigSource.java
 
b/src/test/java/org/apache/maven/plugins/assembly/testutils/PojoConfigSource.java
index afe98aa0..468f787c 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/testutils/PojoConfigSource.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/testutils/PojoConfigSource.java
@@ -111,6 +111,10 @@ public class PojoConfigSource implements 
AssemblerConfigurationSource {
 
     private FixedStringSearchInterpolator mainProjectInterpolator;
 
+    private boolean recompressZippedFiles;
+
+    private String mergeManifestMode;
+
     public String getDescriptor() {
         return descriptor;
     }
@@ -451,4 +455,22 @@ public class PojoConfigSource implements 
AssemblerConfigurationSource {
     public String getOverrideGroupName() {
         return "root";
     }
+
+    @Override
+    public boolean isRecompressZippedFiles() {
+        return recompressZippedFiles;
+    }
+
+    public void setRecompressZippedFiles(boolean recompressZippedFiles) {
+        this.recompressZippedFiles = recompressZippedFiles;
+    }
+
+    @Override
+    public String getMergeManifestMode() {
+        return mergeManifestMode;
+    }
+
+    public void setMergeManifestMode(String mergeManifestMode) {
+        this.mergeManifestMode = mergeManifestMode;
+    }
 }
diff --git 
a/src/test/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtilsTest.java
 
b/src/test/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtilsTest.java
index 2827142f..45af4b0b 100644
--- 
a/src/test/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtilsTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtilsTest.java
@@ -60,7 +60,7 @@ public class LineEndingsUtilsTest {
 
     @Test
     public void shouldReturnNullAsLineEndingForKeep() {
-        assertEquals(null, LineEndings.keep.getLineEndingCharacters());
+        assertNull(LineEndings.keep.getLineEndingCharacters());
     }
 
     @Test

Reply via email to