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 2024/05/10 06:55:23 UTC

(maven-dependency-analyzer) 01/01: [MSHARED-1395] Remove dependency on commons-io

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

sjaranowski pushed a commit to branch MSHARED-1395
in repository https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git

commit 9ac1b641571824766cacecd35e52249866024d98
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Fri May 10 08:55:11 2024 +0200

    [MSHARED-1395] Remove dependency on commons-io
---
 pom.xml                                                  |  6 ------
 .../analyzer/asm/DependencyClassFileVisitor.java         | 16 ++++++++++++++--
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/pom.xml b/pom.xml
index 7df05e5..72068c4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -110,12 +110,6 @@
       <version>${slf4jVersion}</version>
     </dependency>
 
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-      <version>2.16.1</version>
-    </dependency>
-
     <!-- testing support -->
     <dependency>
       <groupId>org.junit.jupiter</groupId>
diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
index 8f70116..20485b4 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
@@ -18,11 +18,11 @@
  */
 package org.apache.maven.shared.dependency.analyzer.asm;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Set;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.maven.shared.dependency.analyzer.ClassFileVisitor;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.ClassReader;
@@ -41,6 +41,8 @@ import org.slf4j.LoggerFactory;
  * @see #getDependencies()
  */
 public class DependencyClassFileVisitor implements ClassFileVisitor {
+    private static final int BUF_SIZE = 8192;
+
     private final ResultCollector resultCollector = new ResultCollector();
 
     private final Logger logger = LoggerFactory.getLogger(getClass());
@@ -54,7 +56,7 @@ public class DependencyClassFileVisitor implements ClassFileVisitor {
     @Override
     public void visitClass(String className, InputStream in) {
         try {
-            byte[] byteCode = IOUtils.toByteArray(in);
+            byte[] byteCode = toByteArray(in);
             ClassReader reader = new ClassReader(byteCode);
 
             final Set<String> constantPoolClassRefs = ConstantPoolParser.getConstantPoolClassReferences(byteCode);
@@ -82,6 +84,16 @@ public class DependencyClassFileVisitor implements ClassFileVisitor {
         }
     }
 
+    private byte[] toByteArray(InputStream in) throws IOException {
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        byte[] buffer = new byte[BUF_SIZE];
+        int i;
+        while ((i = in.read(buffer)) > 0) {
+            out.write(buffer, 0, i);
+        }
+        return out.toByteArray();
+    }
+
     /**
      * <p>getDependencies.</p>
      *