This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-compress.git
commit f59a682158941b4003bdd88f83b72e1a10e7231f Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Thu Oct 19 11:30:24 2023 -0400 Add BZip2Util.getCompressedFileName(String) and deprecate getCompressedFilename(String) - Add BZip2Util.getUncompressedFileName(String) and deprecate getUncompressedFilename(String) - Add BZip2Util.isCompressedFileName(String) and deprecate isCompressedFilename(String) --- src/changes/changes.xml | 3 ++ .../compress/compressors/bzip2/BZip2Utils.java | 51 ++++++++++++++++++++++ .../compress/compressors/BZip2UtilsTestCase.java | 35 +++++++++++++++ 3 files changed, 89 insertions(+) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index a71ea082..ff10b3ed 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -51,6 +51,9 @@ The <action> type attribute can be add,update,fix,remove. <action type="add" dev="ggregory" due-to="Gary Gregory">Add FileNameUtil.getCompressedFileName(String) and deprecate getCompressedFilename(String).</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add FileNameUtil.getUncompressedFileName(String) and deprecate getUncompressedFilename(String).</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add FileNameUtil.isCompressedFileName(String) and deprecate isCompressedFilename(String).</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add BZip2Utils.getCompressedFileName(String) and deprecate getCompressedFilename(String).</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add BZip2Utils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String).</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add BZip2Utils.isCompressedFileName(String) and deprecate isCompressedFilename(String).</action> <!-- FIX --> <!-- UPDATE --> <action type="update" dev="ggregory" due-to="Dependabot">Bump org.slf4j:slf4j-api from 2.0.8 to 2.0.9 #413.</action> diff --git a/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2Utils.java b/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2Utils.java index 2884d229..bf20d074 100644 --- a/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2Utils.java +++ b/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2Utils.java @@ -54,11 +54,28 @@ public abstract class BZip2Utils { * * @param fileName name of a file * @return name of the corresponding compressed file + * @deprecated Use {@link #getCompressedFileName(String)}. */ + @Deprecated public static String getCompressedFilename(final String fileName) { return fileNameUtil.getCompressedFileName(fileName); } + /** + * Maps the given file name to the name that the file should have after + * compression with bzip2. Currently this method simply appends the suffix + * ".bz2" to the file name based on the standard behavior of the "bzip2" + * program, but a future version may implement a more complex mapping if + * a new widely used naming pattern emerges. + * + * @param fileName name of a file + * @return name of the corresponding compressed file + * @since 1.25.0 + */ + public static String getCompressedFileName(final String fileName) { + return fileNameUtil.getCompressedFileName(fileName); + } + /** * Maps the given name of a bzip2-compressed file to the name that the * file should have after uncompression. Commonly used file type specific @@ -71,22 +88,56 @@ public abstract class BZip2Utils { * * @param fileName name of a file * @return name of the corresponding uncompressed file + * @deprecated Use {@link #getUncompressedFileName(String)}. */ + @Deprecated public static String getUncompressedFilename(final String fileName) { return fileNameUtil.getUncompressedFileName(fileName); } + /** + * Maps the given name of a bzip2-compressed file to the name that the + * file should have after uncompression. Commonly used file type specific + * suffixes like ".tbz" or ".tbz2" are automatically detected and + * correctly mapped. For example the name "package.tbz2" is mapped to + * "package.tar". And any file names with the generic ".bz2" suffix + * (or any other generic bzip2 suffix) is mapped to a name without that + * suffix. If no bzip2 suffix is detected, then the file name is returned + * unmapped. + * + * @param fileName name of a file + * @return name of the corresponding uncompressed file + * @since 1.25.0 + */ + public static String getUncompressedFileName(final String fileName) { + return fileNameUtil.getUncompressedFileName(fileName); + } + /** * Detects common bzip2 suffixes in the given file name. * * @param fileName name of a file * @return {@code true} if the file name has a common bzip2 suffix, * {@code false} otherwise + * @deprecated Use {@link #isCompressedFileName(String)}. */ + @Deprecated public static boolean isCompressedFilename(final String fileName) { return fileNameUtil.isCompressedFileName(fileName); } + /** + * Detects common bzip2 suffixes in the given file name. + * + * @param fileName name of a file + * @return {@code true} if the file name has a common bzip2 suffix, + * {@code false} otherwise + * @since 1.25.0 + */ + public static boolean isCompressedFileName(final String fileName) { + return fileNameUtil.isCompressedFileName(fileName); + } + /** Private constructor to prevent instantiation of this utility class. */ private BZip2Utils() { } diff --git a/src/test/java/org/apache/commons/compress/compressors/BZip2UtilsTestCase.java b/src/test/java/org/apache/commons/compress/compressors/BZip2UtilsTestCase.java index 8203bcb6..1e41c4ab 100644 --- a/src/test/java/org/apache/commons/compress/compressors/BZip2UtilsTestCase.java +++ b/src/test/java/org/apache/commons/compress/compressors/BZip2UtilsTestCase.java @@ -27,55 +27,90 @@ import org.junit.jupiter.api.Test; public class BZip2UtilsTestCase { + @SuppressWarnings("deprecation") @Test public void testGetCompressedFilename() { assertEquals(".bz2", BZip2Utils.getCompressedFilename("")); + assertEquals(".bz2", BZip2Utils.getCompressedFileName("")); assertEquals(" .bz2", BZip2Utils.getCompressedFilename(" ")); + assertEquals(" .bz2", BZip2Utils.getCompressedFileName(" ")); assertEquals("x.bz2", BZip2Utils.getCompressedFilename("x")); + assertEquals("x.bz2", BZip2Utils.getCompressedFileName("x")); assertEquals("X.bz2", BZip2Utils.getCompressedFilename("X")); + assertEquals("X.bz2", BZip2Utils.getCompressedFileName("X")); assertEquals("x.tar.bz2", BZip2Utils.getCompressedFilename("x.tar")); + assertEquals("x.tar.bz2", BZip2Utils.getCompressedFileName("x.tar")); assertEquals("x.tar.bz2", BZip2Utils.getCompressedFilename("x.TAR")); + assertEquals("x.tar.bz2", BZip2Utils.getCompressedFileName("x.TAR")); } + @SuppressWarnings("deprecation") @Test public void testGetUncompressedFilename() { assertEquals("", BZip2Utils.getUncompressedFilename("")); + assertEquals("", BZip2Utils.getUncompressedFileName("")); assertEquals(".bz2", BZip2Utils.getUncompressedFilename(".bz2")); + assertEquals(".bz2", BZip2Utils.getUncompressedFileName(".bz2")); assertEquals("x.tar", BZip2Utils.getUncompressedFilename("x.tbz2")); + assertEquals("x.tar", BZip2Utils.getUncompressedFileName("x.tbz2")); assertEquals("x.tar", BZip2Utils.getUncompressedFilename("x.tbz")); + assertEquals("x.tar", BZip2Utils.getUncompressedFileName("x.tbz")); assertEquals("x", BZip2Utils.getUncompressedFilename("x.bz2")); + assertEquals("x", BZip2Utils.getUncompressedFileName("x.bz2")); assertEquals("x", BZip2Utils.getUncompressedFilename("x.bz")); + assertEquals("x", BZip2Utils.getUncompressedFileName("x.bz")); assertEquals("x.tar", BZip2Utils.getUncompressedFilename("x.TBZ2")); + assertEquals("x.tar", BZip2Utils.getUncompressedFileName("x.TBZ2")); assertEquals("X.tar", BZip2Utils.getUncompressedFilename("X.Tbz2")); + assertEquals("X.tar", BZip2Utils.getUncompressedFileName("X.Tbz2")); assertEquals("X.tar", BZip2Utils.getUncompressedFilename("X.tbZ2")); + assertEquals("X.tar", BZip2Utils.getUncompressedFileName("X.tbZ2")); assertEquals("x.bz ", BZip2Utils.getUncompressedFilename("x.bz ")); + assertEquals("x.bz ", BZip2Utils.getUncompressedFileName("x.bz ")); assertEquals("x.tbz\n", BZip2Utils.getUncompressedFilename("x.tbz\n")); + assertEquals("x.tbz\n", BZip2Utils.getUncompressedFileName("x.tbz\n")); assertEquals("x.tbz2.y", BZip2Utils.getUncompressedFilename("x.tbz2.y")); + assertEquals("x.tbz2.y", BZip2Utils.getUncompressedFileName("x.tbz2.y")); } + @SuppressWarnings("deprecation") @Test public void testIsCompressedFilename() { assertFalse(BZip2Utils.isCompressedFilename("")); + assertFalse(BZip2Utils.isCompressedFileName("")); assertFalse(BZip2Utils.isCompressedFilename(".gz")); + assertFalse(BZip2Utils.isCompressedFileName(".gz")); assertTrue(BZip2Utils.isCompressedFilename("x.tbz2")); + assertTrue(BZip2Utils.isCompressedFileName("x.tbz2")); assertTrue(BZip2Utils.isCompressedFilename("x.tbz")); + assertTrue(BZip2Utils.isCompressedFileName("x.tbz")); assertTrue(BZip2Utils.isCompressedFilename("x.bz2")); + assertTrue(BZip2Utils.isCompressedFileName("x.bz2")); assertTrue(BZip2Utils.isCompressedFilename("x.bz")); + assertTrue(BZip2Utils.isCompressedFileName("x.bz")); + assertFalse(BZip2Utils.isCompressedFilename("xbz2")); assertFalse(BZip2Utils.isCompressedFilename("xbz2")); assertFalse(BZip2Utils.isCompressedFilename("xbz")); + assertFalse(BZip2Utils.isCompressedFileName("xbz")); assertTrue(BZip2Utils.isCompressedFilename("x.TBZ2")); + assertTrue(BZip2Utils.isCompressedFileName("x.TBZ2")); assertTrue(BZip2Utils.isCompressedFilename("x.Tbz2")); + assertTrue(BZip2Utils.isCompressedFileName("x.Tbz2")); assertTrue(BZip2Utils.isCompressedFilename("x.tbZ2")); + assertTrue(BZip2Utils.isCompressedFileName("x.tbZ2")); assertFalse(BZip2Utils.isCompressedFilename("x.bz ")); + assertFalse(BZip2Utils.isCompressedFileName("x.bz ")); assertFalse(BZip2Utils.isCompressedFilename("x.tbz\n")); + assertFalse(BZip2Utils.isCompressedFileName("x.tbz\n")); assertFalse(BZip2Utils.isCompressedFilename("x.tbz2.y")); + assertFalse(BZip2Utils.isCompressedFileName("x.tbz2.y")); } }