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 90417eec10b90722c3a8a5fb05de465c44930c75
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Thu Oct 19 13:20:14 2023 -0400

    Add GzipUtils.getCompressedFileName(String) and deprecate
    getCompressedFilename(String)
    
    - Add GzipUtils.getUncompressedFileName(String) and deprecate
    getUncompressedFilename(String)
    - Add GzipUtils.isCompressedFileName(String) and deprecate
    isCompressedFilename(String)
---
 src/changes/changes.xml                            |  3 ++
 .../compress/compressors/gzip/GzipUtils.java       | 52 ++++++++++++++++++++
 .../compress/compressors/GzipUtilsTestCase.java    | 57 ++++++++++++++++++++++
 3 files changed, 112 insertions(+)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d3a55211..7e4ace91 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -60,6 +60,9 @@ The <action> type attribute can be add,update,fix,remove.
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add 
XYUtils.getCompressedFileName(String) and deprecate 
getCompressedFilename(String).</action>
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add 
XYUtils.getUncompressedFileName(String) and deprecate 
getUncompressedFilename(String).</action>
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add 
XYUtils.isCompressedFileName(String) and deprecate 
isCompressedFilename(String).</action>
+      <action type="add" dev="ggregory" due-to="Gary Gregory">Add 
GzipUtils.getCompressedFileName(String) and deprecate 
getCompressedFilename(String).</action>
+      <action type="add" dev="ggregory" due-to="Gary Gregory">Add 
GzipUtils.getUncompressedFileName(String) and deprecate 
getUncompressedFilename(String).</action>
+      <action type="add" dev="ggregory" due-to="Gary Gregory">Add 
GzipUtils.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/gzip/GzipUtils.java 
b/src/main/java/org/apache/commons/compress/compressors/gzip/GzipUtils.java
index a73b8a4a..59f647ee 100644
--- a/src/main/java/org/apache/commons/compress/compressors/gzip/GzipUtils.java
+++ b/src/main/java/org/apache/commons/compress/compressors/gzip/GzipUtils.java
@@ -68,11 +68,29 @@ public class GzipUtils {
      *
      * @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 gzip. Common file types with custom suffixes for
+     * compressed versions are automatically detected and correctly mapped.
+     * For example the name "package.tar" is mapped to "package.tgz". If no
+     * custom mapping is applicable, then the default ".gz" suffix is appended
+     * to the file name.
+     *
+     * @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 gzip-compressed file to the name that the
      * file should have after uncompression. Commonly used file type specific
@@ -85,22 +103,56 @@ public class GzipUtils {
      *
      * @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 gzip-compressed file to the name that the
+     * file should have after uncompression. Commonly used file type specific
+     * suffixes like ".tgz" or ".svgz" are automatically detected and
+     * correctly mapped. For example the name "package.tgz" is mapped to
+     * "package.tar". And any file names with the generic ".gz" suffix
+     * (or any other generic gzip suffix) is mapped to a name without that
+     * suffix. If no gzip 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 gzip suffixes in the given file name.
      *
      * @param fileName name of a file
      * @return {@code true} if the file name has a common gzip suffix,
      *         {@code false} otherwise
+     * @deprecated Use {@link #isCompressedFileName(String)}.
      */
+    @Deprecated
     public static boolean isCompressedFilename(final String fileName) {
         return fileNameUtil.isCompressedFileName(fileName);
     }
 
+    /**
+     * Detects common gzip suffixes in the given file name.
+     *
+     * @param fileName name of a file
+     * @return {@code true} if the file name has a common gzip 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 GzipUtils() {
     }
diff --git 
a/src/test/java/org/apache/commons/compress/compressors/GzipUtilsTestCase.java 
b/src/test/java/org/apache/commons/compress/compressors/GzipUtilsTestCase.java
index cea4373c..cb873caf 100644
--- 
a/src/test/java/org/apache/commons/compress/compressors/GzipUtilsTestCase.java
+++ 
b/src/test/java/org/apache/commons/compress/compressors/GzipUtilsTestCase.java
@@ -27,80 +27,137 @@ import org.junit.jupiter.api.Test;
 
 public class GzipUtilsTestCase {
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testGetCompressedFilename() {
         assertEquals(".gz", GzipUtils.getCompressedFilename(""));
+        assertEquals(".gz", GzipUtils.getCompressedFileName(""));
         assertEquals("x.gz", GzipUtils.getCompressedFilename("x"));
+        assertEquals("x.gz", GzipUtils.getCompressedFileName("x"));
 
         assertEquals("x.tgz", GzipUtils.getCompressedFilename("x.tar"));
+        assertEquals("x.tgz", GzipUtils.getCompressedFileName("x.tar"));
         assertEquals("x.svgz", GzipUtils.getCompressedFilename("x.svg"));
+        assertEquals("x.svgz", GzipUtils.getCompressedFileName("x.svg"));
         assertEquals("x.cpgz", GzipUtils.getCompressedFilename("x.cpio"));
+        assertEquals("x.cpgz", GzipUtils.getCompressedFileName("x.cpio"));
         assertEquals("x.wmz", GzipUtils.getCompressedFilename("x.wmf"));
+        assertEquals("x.wmz", GzipUtils.getCompressedFileName("x.wmf"));
         assertEquals("x.emz", GzipUtils.getCompressedFilename("x.emf"));
+        assertEquals("x.emz", GzipUtils.getCompressedFileName("x.emf"));
 
         assertEquals("x.svgz", GzipUtils.getCompressedFilename("x.SVG"));
+        assertEquals("x.svgz", GzipUtils.getCompressedFileName("x.SVG"));
         assertEquals("X.svgz", GzipUtils.getCompressedFilename("X.SVG"));
+        assertEquals("X.svgz", GzipUtils.getCompressedFileName("X.SVG"));
         assertEquals("X.svgz", GzipUtils.getCompressedFilename("X.svG"));
+        assertEquals("X.svgz", GzipUtils.getCompressedFileName("X.svG"));
 
         assertEquals("x.wmf .gz", GzipUtils.getCompressedFilename("x.wmf "));
+        assertEquals("x.wmf .gz", GzipUtils.getCompressedFileName("x.wmf "));
         assertEquals("x.wmf\n.gz", GzipUtils.getCompressedFilename("x.wmf\n"));
+        assertEquals("x.wmf\n.gz", GzipUtils.getCompressedFileName("x.wmf\n"));
         assertEquals("x.wmf.y.gz", GzipUtils.getCompressedFilename("x.wmf.y"));
+        assertEquals("x.wmf.y.gz", GzipUtils.getCompressedFileName("x.wmf.y"));
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testGetUncompressedFilename() {
         assertEquals("", GzipUtils.getUncompressedFilename(""));
+        assertEquals("", GzipUtils.getUncompressedFileName(""));
         assertEquals(".gz", GzipUtils.getUncompressedFilename(".gz"));
+        assertEquals(".gz", GzipUtils.getUncompressedFileName(".gz"));
 
         assertEquals("x.tar", GzipUtils.getUncompressedFilename("x.tgz"));
+        assertEquals("x.tar", GzipUtils.getUncompressedFileName("x.tgz"));
         assertEquals("x.tar", GzipUtils.getUncompressedFilename("x.taz"));
+        assertEquals("x.tar", GzipUtils.getUncompressedFileName("x.taz"));
         assertEquals("x.svg", GzipUtils.getUncompressedFilename("x.svgz"));
+        assertEquals("x.svg", GzipUtils.getUncompressedFileName("x.svgz"));
         assertEquals("x.cpio", GzipUtils.getUncompressedFilename("x.cpgz"));
+        assertEquals("x.cpio", GzipUtils.getUncompressedFileName("x.cpgz"));
         assertEquals("x.wmf", GzipUtils.getUncompressedFilename("x.wmz"));
+        assertEquals("x.wmf", GzipUtils.getUncompressedFileName("x.wmz"));
         assertEquals("x.emf", GzipUtils.getUncompressedFilename("x.emz"));
+        assertEquals("x.emf", GzipUtils.getUncompressedFileName("x.emz"));
         assertEquals("x", GzipUtils.getUncompressedFilename("x.gz"));
+        assertEquals("x", GzipUtils.getUncompressedFileName("x.gz"));
         assertEquals("x", GzipUtils.getUncompressedFilename("x.z"));
+        assertEquals("x", GzipUtils.getUncompressedFileName("x.z"));
         assertEquals("x", GzipUtils.getUncompressedFilename("x-gz"));
+        assertEquals("x", GzipUtils.getUncompressedFileName("x-gz"));
         assertEquals("x", GzipUtils.getUncompressedFilename("x-z"));
+        assertEquals("x", GzipUtils.getUncompressedFileName("x-z"));
         assertEquals("x", GzipUtils.getUncompressedFilename("x_z"));
+        assertEquals("x", GzipUtils.getUncompressedFileName("x_z"));
 
         assertEquals("x.svg", GzipUtils.getUncompressedFilename("x.SVGZ"));
+        assertEquals("x.svg", GzipUtils.getUncompressedFileName("x.SVGZ"));
         assertEquals("X.svg", GzipUtils.getUncompressedFilename("X.SVGZ"));
+        assertEquals("X.svg", GzipUtils.getUncompressedFileName("X.SVGZ"));
         assertEquals("X.svg", GzipUtils.getUncompressedFilename("X.svGZ"));
+        assertEquals("X.svg", GzipUtils.getUncompressedFileName("X.svGZ"));
 
         assertEquals("x.wmz ", GzipUtils.getUncompressedFilename("x.wmz "));
+        assertEquals("x.wmz ", GzipUtils.getUncompressedFileName("x.wmz "));
         assertEquals("x.wmz\n", GzipUtils.getUncompressedFilename("x.wmz\n"));
+        assertEquals("x.wmz\n", GzipUtils.getUncompressedFileName("x.wmz\n"));
         assertEquals("x.wmz.y", GzipUtils.getUncompressedFilename("x.wmz.y"));
+        assertEquals("x.wmz.y", GzipUtils.getUncompressedFileName("x.wmz.y"));
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testIsCompressedFilename() {
         assertFalse(GzipUtils.isCompressedFilename(""));
+        assertFalse(GzipUtils.isCompressedFileName(""));
         assertFalse(GzipUtils.isCompressedFilename(".gz"));
+        assertFalse(GzipUtils.isCompressedFileName(".gz"));
 
         assertTrue(GzipUtils.isCompressedFilename("x.tgz"));
+        assertTrue(GzipUtils.isCompressedFileName("x.tgz"));
         assertTrue(GzipUtils.isCompressedFilename("x.taz"));
+        assertTrue(GzipUtils.isCompressedFileName("x.taz"));
         assertTrue(GzipUtils.isCompressedFilename("x.svgz"));
+        assertTrue(GzipUtils.isCompressedFileName("x.svgz"));
         assertTrue(GzipUtils.isCompressedFilename("x.cpgz"));
+        assertTrue(GzipUtils.isCompressedFileName("x.cpgz"));
         assertTrue(GzipUtils.isCompressedFilename("x.wmz"));
+        assertTrue(GzipUtils.isCompressedFileName("x.wmz"));
         assertTrue(GzipUtils.isCompressedFilename("x.emz"));
+        assertTrue(GzipUtils.isCompressedFileName("x.emz"));
         assertTrue(GzipUtils.isCompressedFilename("x.gz"));
+        assertTrue(GzipUtils.isCompressedFileName("x.gz"));
         assertTrue(GzipUtils.isCompressedFilename("x.z"));
+        assertTrue(GzipUtils.isCompressedFileName("x.z"));
         assertTrue(GzipUtils.isCompressedFilename("x-gz"));
+        assertTrue(GzipUtils.isCompressedFileName("x-gz"));
         assertTrue(GzipUtils.isCompressedFilename("x-z"));
+        assertTrue(GzipUtils.isCompressedFileName("x-z"));
         assertTrue(GzipUtils.isCompressedFilename("x_z"));
+        assertTrue(GzipUtils.isCompressedFileName("x_z"));
 
         assertFalse(GzipUtils.isCompressedFilename("xxgz"));
+        assertFalse(GzipUtils.isCompressedFileName("xxgz"));
         assertFalse(GzipUtils.isCompressedFilename("xzz"));
+        assertFalse(GzipUtils.isCompressedFileName("xzz"));
         assertFalse(GzipUtils.isCompressedFilename("xaz"));
+        assertFalse(GzipUtils.isCompressedFileName("xaz"));
 
         assertTrue(GzipUtils.isCompressedFilename("x.SVGZ"));
+        assertTrue(GzipUtils.isCompressedFileName("x.SVGZ"));
         assertTrue(GzipUtils.isCompressedFilename("x.Svgz"));
+        assertTrue(GzipUtils.isCompressedFileName("x.Svgz"));
         assertTrue(GzipUtils.isCompressedFilename("x.svGZ"));
+        assertTrue(GzipUtils.isCompressedFileName("x.svGZ"));
 
         assertFalse(GzipUtils.isCompressedFilename("x.wmz "));
+        assertFalse(GzipUtils.isCompressedFileName("x.wmz "));
         assertFalse(GzipUtils.isCompressedFilename("x.wmz\n"));
+        assertFalse(GzipUtils.isCompressedFileName("x.wmz\n"));
         assertFalse(GzipUtils.isCompressedFilename("x.wmz.y"));
+        assertFalse(GzipUtils.isCompressedFileName("x.wmz.y"));
     }
 
 }

Reply via email to