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