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

cstamas pushed a commit to branch drop-commons-collections
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git

commit 8bdc116585f1f78031ea34ce14a6a102e31d9327
Author: Tamas Cservenak <[email protected]>
AuthorDate: Mon May 27 13:35:02 2024 +0200

    Drop commons-collections
    
    Single class mildly used it. Simple replacement added.
---
 .github/workflows/maven-verify.yml                 |  1 -
 pom.xml                                            | 37 ++++++++--------------
 .../apache/maven/plugins/shade/DefaultShader.java  | 30 +++++++++---------
 .../properties/io/NoCloseOutputStream.java         |  2 +-
 4 files changed, 30 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/maven-verify.yml 
b/.github/workflows/maven-verify.yml
index c021920..1204718 100644
--- a/.github/workflows/maven-verify.yml
+++ b/.github/workflows/maven-verify.yml
@@ -26,4 +26,3 @@ jobs:
     uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v4
     with:
           ff-jdk: "21"
-          ff-jdk-distribution: "corretto"
diff --git a/pom.xml b/pom.xml
index 4581fde..f405a95 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,7 @@
   </contributors>
 
   <prerequisites>
-    <maven>${mavenVersion}</maven>
+    <maven>3.6.3</maven>
   </prerequisites>
 
   <scm>
@@ -79,12 +79,11 @@
   </distributionManagement>
 
   <properties>
-    <mavenVersion>3.6.3</mavenVersion>
+    <mavenVersion>3.9.7</mavenVersion>
     <javaVersion>8</javaVersion>
-    <sisu.version>0.3.5</sisu.version>
     <currentVersion>${project.version}</currentVersion>
     <asmVersion>9.7</asmVersion>
-    <slf4j.version>1.7.32</slf4j.version>
+    <slf4j.version>1.7.36</slf4j.version>
     
<project.build.outputTimestamp>2024-04-20T15:33:41Z</project.build.outputTimestamp>
   </properties>
 
@@ -93,12 +92,12 @@
       <dependency>
         <groupId>org.eclipse.sisu</groupId>
         <artifactId>org.eclipse.sisu.inject</artifactId>
-        <version>${sisu.version}</version>
+        <version>${version.sisu-maven-plugin}</version>
       </dependency>
       <dependency>
         <groupId>org.eclipse.sisu</groupId>
         <artifactId>org.eclipse.sisu.plexus</artifactId>
-        <version>${sisu.version}</version>
+        <version>${version.sisu-maven-plugin}</version>
       </dependency>
       <dependency>
         <groupId>com.google.inject</groupId>
@@ -144,10 +143,7 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-xml</artifactId>
+      <version>3.5.1</version>
     </dependency>
 
     <!-- DI -->
@@ -185,21 +181,21 @@
       <artifactId>maven-dependency-tree</artifactId>
       <version>3.2.1</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-compress</artifactId>
+      <version>1.26.2</version>
+    </dependency>
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
-      <version>2.13.0</version>
+      <version>2.16.1</version>
     </dependency>
     <dependency>
       <groupId>org.vafer</groupId>
       <artifactId>jdependency</artifactId>
       <version>2.10</version>
     </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-collections4</artifactId>
-      <version>4.4</version>
-    </dependency>
 
     <!-- Test -->
     <!-- Used by: TransformerTesterRule only -->
@@ -228,13 +224,13 @@
     <dependency>
       <groupId>org.xmlunit</groupId>
       <artifactId>xmlunit-legacy</artifactId>
-      <version>2.9.1</version>
+      <version>2.10.0</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
-      <version>2.28.2</version>
+      <version>3.12.4</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -255,11 +251,6 @@
       <version>3.3.0</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-compress</artifactId>
-      <version>1.26.1</version>
-    </dependency>
   </dependencies>
 
   <build>
diff --git a/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java 
b/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java
index c11978e..d8a9c65 100644
--- a/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java
+++ b/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java
@@ -24,7 +24,6 @@ import javax.inject.Singleton;
 import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -32,16 +31,19 @@ import java.io.OutputStreamWriter;
 import java.io.PushbackInputStream;
 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.Calendar;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Enumeration;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.Callable;
@@ -54,8 +56,6 @@ import java.util.zip.CRC32;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipException;
 
-import org.apache.commons.collections4.MultiValuedMap;
-import org.apache.commons.collections4.multimap.HashSetValuedHashMap;
 import org.apache.commons.compress.archivers.zip.ExtraFieldUtils;
 import org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp;
 import org.apache.commons.compress.archivers.zip.ZipExtraField;
@@ -137,26 +137,26 @@ public class DefaultShader implements Shader {
             goThroughAllJarEntriesForManifestTransformer(shadeRequest, 
resources, manifestTransformer, out);
 
             // CHECKSTYLE_OFF: MagicNumber
-            MultiValuedMap<String, File> duplicates = new 
HashSetValuedHashMap<>(10000, 3);
+            Map<String, HashSet<File>> duplicates = new HashMap<>();
             // CHECKSTYLE_ON: MagicNumber
 
             shadeJars(shadeRequest, resources, transformers, out, duplicates, 
packageMapper);
 
             // CHECKSTYLE_OFF: MagicNumber
-            MultiValuedMap<Collection<File>, String> overlapping = new 
HashSetValuedHashMap<>(20, 15);
+            Map<Collection<File>, HashSet<String>> overlapping = new 
HashMap<>();
             // CHECKSTYLE_ON: MagicNumber
 
             for (String clazz : duplicates.keySet()) {
                 Collection<File> jarz = duplicates.get(clazz);
                 if (jarz.size() > 1) {
-                    overlapping.put(jarz, clazz);
+                    overlapping.computeIfAbsent(jarz, k -> new 
HashSet<>()).add(clazz);
                 }
             }
 
             // Log a summary of duplicates
             logSummaryOfDuplicates(overlapping);
 
-            if (overlapping.keySet().size() > 0) {
+            if (!overlapping.keySet().isEmpty()) {
                 showOverlappingWarning();
             }
 
@@ -230,7 +230,7 @@ public class DefaultShader implements Shader {
             Set<String> resources,
             List<ResourceTransformer> transformers,
             JarOutputStream jos,
-            MultiValuedMap<String, File> duplicates,
+            Map<String, HashSet<File>> duplicates,
             DefaultPackageMapper packageMapper)
             throws IOException {
         for (File jar : shadeRequest.getJars()) {
@@ -262,7 +262,7 @@ public class DefaultShader implements Shader {
             List<ResourceTransformer> transformers,
             DefaultPackageMapper packageMapper,
             JarOutputStream jos,
-            MultiValuedMap<String, File> duplicates,
+            Map<String, HashSet<File>> duplicates,
             File jar,
             File current,
             String prefix,
@@ -308,7 +308,7 @@ public class DefaultShader implements Shader {
                         new Callable<InputStream>() {
                             @Override
                             public InputStream call() throws Exception {
-                                return new FileInputStream(file);
+                                return Files.newInputStream(file.toPath());
                             }
                         },
                         name,
@@ -326,7 +326,7 @@ public class DefaultShader implements Shader {
             List<ResourceTransformer> transformers,
             DefaultPackageMapper packageMapper,
             JarOutputStream jos,
-            MultiValuedMap<String, File> duplicates,
+            Map<String, HashSet<File>> duplicates,
             File jar,
             List<Filter> jarFilters)
             throws IOException {
@@ -387,7 +387,7 @@ public class DefaultShader implements Shader {
             List<ResourceTransformer> transformers,
             DefaultPackageMapper packageMapper,
             JarOutputStream jos,
-            MultiValuedMap<String, File> duplicates,
+            Map<String, HashSet<File>> duplicates,
             File jar,
             Callable<InputStream> inputProvider,
             String name,
@@ -406,7 +406,7 @@ public class DefaultShader implements Shader {
                 }
             }
 
-            duplicates.put(name, jar);
+            duplicates.computeIfAbsent(name, k -> new HashSet<>()).add(jar);
             if (name.endsWith(".class")) {
                 addRemappedClass(jos, jar, name, time, in, packageMapper);
             } else if (shadeRequest.isShadeSourcesContent() && 
name.endsWith(".java")) {
@@ -426,7 +426,7 @@ public class DefaultShader implements Shader {
 
                     addResource(resources, jos, mappedName, inputProvider, 
time, method);
                 } else {
-                    duplicates.removeMapping(name, jar);
+                    duplicates.computeIfAbsent(name, k -> new 
HashSet<>()).remove(jar);
                 }
             }
         }
@@ -471,7 +471,7 @@ public class DefaultShader implements Shader {
         logger.warn("See 
https://maven.apache.org/plugins/maven-shade-plugin/";);
     }
 
-    private void logSummaryOfDuplicates(MultiValuedMap<Collection<File>, 
String> overlapping) {
+    private void logSummaryOfDuplicates(Map<Collection<File>, HashSet<String>> 
overlapping) {
         for (Collection<File> jarz : overlapping.keySet()) {
             List<String> jarzS = new ArrayList<>();
 
diff --git 
a/src/main/java/org/apache/maven/plugins/shade/resource/properties/io/NoCloseOutputStream.java
 
b/src/main/java/org/apache/maven/plugins/shade/resource/properties/io/NoCloseOutputStream.java
index 30b4e48..e5fdcef 100644
--- 
a/src/main/java/org/apache/maven/plugins/shade/resource/properties/io/NoCloseOutputStream.java
+++ 
b/src/main/java/org/apache/maven/plugins/shade/resource/properties/io/NoCloseOutputStream.java
@@ -22,7 +22,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 
 /**
- * Simple output stream replacing close call by a simpe flush.
+ * Simple output stream replacing close call by a simple flush.
  * Useful for output streams nesting streams (like jar output streams) and 
using a stream encoder.
  */
 public class NoCloseOutputStream extends OutputStream {

Reply via email to