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"));
     }
 
 }

Reply via email to