[Git][java-team/libcommons-compress-java][master] Removed the runtime dependency on commons-lang3
Emmanuel Bourg (@ebourg)
gitlab at salsa.debian.org
Thu Oct 24 18:44:35 BST 2024
Emmanuel Bourg pushed to branch master at Debian Java Maintainers / libcommons-compress-java
Commits:
61f81563 by Emmanuel Bourg at 2024-10-24T19:41:45+02:00
Removed the runtime dependency on commons-lang3
- - - - -
3 changed files:
- debian/changelog
- + debian/patches/remove-commons-lang-dependency.patch
- debian/patches/series
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,9 @@
+libcommons-compress-java (1.27.1-2) unstable; urgency=medium
+
+ * Removed the runtime dependency on commons-lang3
+
+ -- Emmanuel Bourg <ebourg at apache.org> Thu, 24 Oct 2024 19:41:30 +0200
+
libcommons-compress-java (1.27.1-1) unstable; urgency=medium
* New upstream release
=====================================
debian/patches/remove-commons-lang-dependency.patch
=====================================
@@ -0,0 +1,322 @@
+From 23877f8216243df6b2f1dddac2a02b8403d2435d Mon Sep 17 00:00:00 2001
+From: Emmanuel Bourg <ebourg at apache.org>
+Date: Thu, 24 Oct 2024 19:13:47 +0200
+Subject: [PATCH] Removed the runtime dependency on commons-lang3
+
+---
+ pom.xml | 3 +--
+ src/changes/changes.xml | 1 +
+ .../archivers/tar/TarArchiveEntry.java | 3 +--
+ .../archivers/tar/TarArchiveOutputStream.java | 5 ++--
+ .../compress/archivers/zip/BinaryTree.java | 5 ++--
+ .../compressors/deflate64/HuffmanDecoder.java | 4 +--
+ .../lz77support/LZ77Compressor.java | 6 ++---
+ .../compress/harmony/unpack200/Archive.java | 2 +-
+ .../unpack200/Pack200UnpackerAdapter.java | 27 ++++++++++---------
+ .../tar/TarArchiveOutputStreamTest.java | 4 +--
+ .../zip/ZipArchiveInputStreamTest.java | 5 ++--
+ .../compress/archivers/zip/ZipFileTest.java | 4 +--
+ .../BlockLZ4CompressorOutputStreamTest.java | 5 ++--
+ 13 files changed, 40 insertions(+), 34 deletions(-)
+
+--- a/pom.xml
++++ b/pom.xml
+@@ -64,8 +64,6 @@
+ javax.crypto.*;resolution:=optional,
+ org.apache.commons.io;resolution:=optional,
+ org.apache.commons.io.*;resolution:=optional,
+- org.apache.commons.lang3;resolution:=optional,
+- org.apache.commons.lang3.reflect;resolution:=optional,
+ org.apache.commons.codec;resolution:=optional,
+ org.apache.commons.codec.digest;resolution:=optional,
+ *
+@@ -218,6 +216,7 @@
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.16.0</version>
++ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+--- a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
++++ b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
+@@ -53,7 +53,6 @@
+ import org.apache.commons.compress.utils.ParsingUtils;
+ import org.apache.commons.compress.utils.TimeUtils;
+ import org.apache.commons.io.file.attribute.FileTimes;
+-import org.apache.commons.lang3.SystemProperties;
+
+ /**
+ * An entry in a <a href="https://www.gnu.org/software/tar/manual/html_node/Standard.html">Tar archive</a>.
+@@ -229,7 +228,7 @@
+ */
+ private static String normalizeFileName(String fileName, final boolean preserveAbsolutePath) {
+ if (!preserveAbsolutePath) {
+- final String property = SystemProperties.getOsName();
++ final String property = System.getProperty("os.name");
+ if (property != null) {
+ final String osName = property.toLowerCase(Locale.ROOT);
+
+--- a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java
++++ b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java
+@@ -32,6 +32,7 @@
+ import java.nio.file.Path;
+ import java.nio.file.attribute.FileTime;
+ import java.time.Instant;
++import java.util.Arrays;
+ import java.util.HashMap;
+ import java.util.Map;
+
+@@ -43,7 +44,6 @@
+ import org.apache.commons.io.Charsets;
+ import org.apache.commons.io.file.attribute.FileTimes;
+ import org.apache.commons.io.output.CountingOutputStream;
+-import org.apache.commons.lang3.ArrayFill;
+
+ /**
+ * The TarOutputStream writes a UNIX tar archive as an OutputStream. Methods are provided to put entries, and then write their contents by writing to this
+@@ -649,7 +649,8 @@
+ * Writes an EOF (end of archive) record to the tar archive. An EOF record consists of a record of all zeros.
+ */
+ private void writeEOFRecord() throws IOException {
+- writeRecord(ArrayFill.fill(recordBuf, (byte) 0));
++ Arrays.fill(recordBuf, (byte) 0);
++ writeRecord(recordBuf);
+ }
+
+ /**
+--- a/src/main/java/org/apache/commons/compress/archivers/zip/BinaryTree.java
++++ b/src/main/java/org/apache/commons/compress/archivers/zip/BinaryTree.java
+@@ -22,9 +22,9 @@
+ import java.io.EOFException;
+ import java.io.IOException;
+ import java.io.InputStream;
++import java.util.Arrays;
+
+ import org.apache.commons.compress.utils.IOUtils;
+-import org.apache.commons.lang3.ArrayFill;
+
+ /**
+ * Binary tree of positive values.
+@@ -140,7 +140,8 @@
+ if (depth < 0 || depth > 30) {
+ throw new IllegalArgumentException("depth must be bigger than 0 and not bigger than 30" + " but is " + depth);
+ }
+- tree = ArrayFill.fill(new int[(int) ((1L << depth + 1) - 1)], UNDEFINED);
++ tree = new int[(int) ((1L << depth + 1) - 1)];
++ Arrays.fill(tree, UNDEFINED);
+ }
+
+ /**
+--- a/src/main/java/org/apache/commons/compress/compressors/deflate64/HuffmanDecoder.java
++++ b/src/main/java/org/apache/commons/compress/compressors/deflate64/HuffmanDecoder.java
+@@ -31,7 +31,6 @@
+ import org.apache.commons.compress.utils.BitInputStream;
+ import org.apache.commons.compress.utils.ByteUtils;
+ import org.apache.commons.compress.utils.ExactMath;
+-import org.apache.commons.lang3.ArrayFill;
+
+ /**
+ * TODO This class can't be final because it is mocked by Mockito.
+@@ -362,7 +361,8 @@
+ Arrays.fill(FIXED_LITERALS, 256, 280, 7);
+ Arrays.fill(FIXED_LITERALS, 280, 288, 8);
+
+- FIXED_DISTANCE = ArrayFill.fill(new int[32], 5);
++ FIXED_DISTANCE = new int[32];
++ Arrays.fill(FIXED_DISTANCE, 5);
+ }
+
+ private static BinaryTreeNode buildTree(final int[] litTable) {
+--- a/src/main/java/org/apache/commons/compress/compressors/lz77support/LZ77Compressor.java
++++ b/src/main/java/org/apache/commons/compress/compressors/lz77support/LZ77Compressor.java
+@@ -19,10 +19,9 @@
+ package org.apache.commons.compress.compressors.lz77support;
+
+ import java.io.IOException;
++import java.util.Arrays;
+ import java.util.Objects;
+
+-import org.apache.commons.lang3.ArrayFill;
+-
+ /**
+ * Helper class for compression algorithms that use the ideas of LZ77.
+ *
+@@ -286,7 +285,8 @@
+ final int wSize = params.getWindowSize();
+ window = new byte[wSize * 2];
+ wMask = wSize - 1;
+- head = ArrayFill.fill(new int[HASH_SIZE], NO_MATCH);
++ head = new int[HASH_SIZE];
++ Arrays.fill(head, NO_MATCH);
+ prev = new int[wSize];
+ }
+
+--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java
++++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java
+@@ -78,7 +78,7 @@
+ this.inputStream = Pack200UnpackerAdapter.newBoundedInputStream(inputStream);
+ this.outputStream = outputStream;
+ if (inputStream instanceof FileInputStream) {
+- inputPath = Paths.get(Pack200UnpackerAdapter.readPathString((FileInputStream) inputStream));
++ inputPath = Pack200UnpackerAdapter.readPath((FileInputStream) inputStream);
+ } else {
+ inputPath = null;
+ }
+--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/Pack200UnpackerAdapter.java
++++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/Pack200UnpackerAdapter.java
+@@ -22,6 +22,7 @@
+ import java.io.FilterInputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
++import java.lang.reflect.Field;
+ import java.net.URISyntaxException;
+ import java.net.URL;
+ import java.nio.file.Files;
+@@ -34,7 +35,6 @@
+ import org.apache.commons.compress.java.util.jar.Pack200.Unpacker;
+ import org.apache.commons.io.input.BoundedInputStream;
+ import org.apache.commons.io.input.CloseShieldInputStream;
+-import org.apache.commons.lang3.reflect.FieldUtils;
+
+ /**
+ * This class provides the binding between the standard Pack200 interface and the internal interface for (un)packing.
+@@ -56,7 +56,7 @@
+ }
+
+ private static BoundedInputStream newBoundedInputStream(final FileInputStream fileInputStream) throws IOException {
+- return newBoundedInputStream(readPathString(fileInputStream));
++ return newBoundedInputStream(readPath(fileInputStream));
+ }
+
+ @SuppressWarnings("resource") // Caller closes.
+@@ -130,19 +130,16 @@
+ return newBoundedInputStream(Paths.get(url.toURI()));
+ }
+
+- @SuppressWarnings("unchecked")
+- private static <T> T readField(final Object object, final String fieldName) {
++ static Path readPath(final FileInputStream fis) {
+ try {
+- return (T) FieldUtils.readField(object, fieldName, true);
+- } catch (final IllegalAccessException e) {
+- return null;
++ Field field = FileInputStream.class.getDeclaredField("path");
++ field.setAccessible(true);
++ return Paths.get((String) field.get(fis));
++ } catch (NoSuchFieldException | IllegalAccessException e) {
++ throw new RuntimeException("Failed to read the path from the FileInputStream", e);
+ }
+ }
+
+- static String readPathString(final FileInputStream fis) {
+- return readField(fis, "path");
+- }
+-
+ /**
+ * Unwraps the given FilterInputStream to return its wrapped InputStream.
+ *
+@@ -150,7 +147,13 @@
+ * @return The wrapped InputStream
+ */
+ static InputStream unwrap(final FilterInputStream filterInputStream) {
+- return readField(filterInputStream, "in");
++ try {
++ Field field = FilterInputStream.class.getDeclaredField("in");
++ field.setAccessible(true);
++ return (InputStream) field.get(filterInputStream);
++ } catch (NoSuchFieldException | IllegalAccessException e) {
++ throw new RuntimeException("Failed to unwrap the FilterInputStream", e);
++ }
+ }
+
+ /**
+--- a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
++++ b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
+@@ -48,7 +48,6 @@
+ import org.apache.commons.compress.archivers.ArchiveStreamFactory;
+ import org.apache.commons.io.IOUtils;
+ import org.apache.commons.io.output.NullOutputStream;
+-import org.apache.commons.lang3.ArrayFill;
+ import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+@@ -148,7 +147,8 @@
+ assertThrows(IllegalArgumentException.class, () -> testPadding(0, fileName, contents));
+
+ // test with "content" that is an exact multiple of record length
+- final byte[] contents2 = ArrayFill.fill(new byte[2048], (byte) 42);
++ final byte[] contents2 = new byte[2048];
++ java.util.Arrays.fill(contents2, (byte) 42);
+ testPadding(TarConstants.DEFAULT_BLKSIZE, fileName, contents2);
+ }
+
+--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
++++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
+@@ -40,6 +40,7 @@
+ import java.nio.file.Path;
+ import java.nio.file.Paths;
+ import java.time.Instant;
++import java.util.Arrays;
+ import java.util.zip.ZipEntry;
+ import java.util.zip.ZipException;
+
+@@ -49,7 +50,6 @@
+ import org.apache.commons.compress.archivers.ArchiveStreamFactory;
+ import org.apache.commons.compress.utils.ByteUtils;
+ import org.apache.commons.io.IOUtils;
+-import org.apache.commons.lang3.ArrayFill;
+ import org.junit.jupiter.api.Test;
+ import org.junit.jupiter.params.ParameterizedTest;
+ import org.junit.jupiter.params.provider.ValueSource;
+@@ -666,7 +666,8 @@
+ try (ZipArchiveInputStream in = new ZipArchiveInputStream(newInputStream("bzip2-zip.zip"))) {
+ final ZipArchiveEntry ze = in.getNextZipEntry();
+ assertEquals(42, ze.getSize());
+- final byte[] expected = ArrayFill.fill(new byte[42], (byte) 'a');
++ final byte[] expected = new byte[42];
++ Arrays.fill(expected, (byte) 'a');
+ assertArrayEquals(expected, IOUtils.toByteArray(in));
+ }
+ }
+--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java
++++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java
+@@ -58,7 +58,6 @@
+ import org.apache.commons.compress.utils.SeekableInMemoryByteChannel;
+ import org.apache.commons.io.IOUtils;
+ import org.apache.commons.io.function.IORunnable;
+-import org.apache.commons.lang3.ArrayFill;
+ import org.apache.commons.lang3.SystemUtils;
+ import org.junit.Assume;
+ import org.junit.jupiter.api.AfterEach;
+@@ -944,7 +943,8 @@
+ zf = new ZipFile(archive);
+ final ZipArchiveEntry ze = zf.getEntry("lots-of-as");
+ assertEquals(42, ze.getSize());
+- final byte[] expected = ArrayFill.fill(new byte[42], (byte) 'a');
++ final byte[] expected = new byte[42];
++ Arrays.fill(expected, (byte) 'a');
+ try (InputStream inputStream = zf.getInputStream(ze)) {
+ assertArrayEquals(expected, IOUtils.toByteArray(inputStream));
+ }
+--- a/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorOutputStreamTest.java
++++ b/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorOutputStreamTest.java
+@@ -28,7 +28,6 @@
+ import java.util.Arrays;
+
+ import org.apache.commons.compress.compressors.lz77support.LZ77Compressor;
+-import org.apache.commons.lang3.ArrayFill;
+ import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+@@ -75,7 +74,9 @@
+ }
+
+ private byte[] prepareExpected(final int length) {
+- return ArrayFill.fill(new byte[length], (byte) -1);
++ final byte[] b = new byte[length];
++ Arrays.fill(b, (byte) -1);
++ return b;
+ }
+
+ @Test
=====================================
debian/patches/series
=====================================
@@ -2,3 +2,4 @@ disable-brotli.patch
disable-zstd.patch
disable-osgi-tests.patch
disable-harmony.patch
+remove-commons-lang-dependency.patch
View it on GitLab: https://salsa.debian.org/java-team/libcommons-compress-java/-/commit/61f81563af2ca939ac48f5404a0fba012ade73c4
--
View it on GitLab: https://salsa.debian.org/java-team/libcommons-compress-java/-/commit/61f81563af2ca939ac48f5404a0fba012ade73c4
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20241024/40bd9ed9/attachment.htm>
More information about the pkg-java-commits
mailing list