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 b1caa7cef3733b24a4d682b8d8f1d7094200bb30 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Thu Oct 19 12:41:55 2023 -0400 Add LZMAUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String) - Add LZMAUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String) - Add LZMAUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String) --- src/changes/changes.xml | 3 ++ .../compress/compressors/lzma/LZMAUtils.java | 59 +++++++++++++++++++--- .../commons/compress/compressors/xz/XZUtils.java | 18 +++++++ .../compressors/lzma/LZMAUtilsTestCase.java | 25 +++++++++ 4 files changed, 98 insertions(+), 7 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index ff10b3ed..9b362e22 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -54,6 +54,9 @@ The <action> type attribute can be add,update,fix,remove. <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> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add LZMAUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String).</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add LZMAUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String).</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add LZMAUtils.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/lzma/LZMAUtils.java b/src/main/java/org/apache/commons/compress/compressors/lzma/LZMAUtils.java index 7e5ebd41..c10d8a68 100644 --- a/src/main/java/org/apache/commons/compress/compressors/lzma/LZMAUtils.java +++ b/src/main/java/org/apache/commons/compress/compressors/lzma/LZMAUtils.java @@ -25,7 +25,8 @@ import org.apache.commons.compress.compressors.FileNameUtil; import org.apache.commons.compress.utils.OsgiUtils; /** - * Utility code for the lzma compression format. + * Utility code for the LZMA compression format. + * * @ThreadSafe * @since 1.10 */ @@ -62,29 +63,60 @@ public class LZMAUtils { /** * Maps the given file name to the name that the file should have after - * compression with lzma. + * compression with LZMA. * * @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 name of a lzma-compressed file to the name that + * Maps the given file name to the name that the file should have after + * compression with LZMA. + * + * @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 LZMA-compressed file to the name that * the file should have after uncompression. Any file names with - * the generic ".lzma" suffix (or any other generic lzma suffix) - * is mapped to a name without that suffix. If no lzma suffix is + * the generic ".lzma" suffix (or any other generic LZMA suffix) + * is mapped to a name without that suffix. If no LZMA suffix is * detected, then the file name is returned unmapped. * * @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 LZMA-compressed file to the name that + * the file should have after uncompression. Any file names with + * the generic ".lzma" suffix (or any other generic LZMA suffix) + * is mapped to a name without that suffix. If no LZMA 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); + } + private static boolean internalIsLZMACompressionAvailable() { try { LZMACompressorInputStream.matches(null, 0); @@ -95,16 +127,29 @@ public class LZMAUtils { } /** - * Detects common lzma suffixes in the given file name. + * Detects common LZMA suffixes in the given file name. * * @param fileName name of a file - * @return {@code true} if the file name has a common lzma suffix, + * @return {@code true} if the file name has a common LZMA suffix, * {@code false} otherwise + * @deprecated Use {@link #isCompressedFileName(String)}. */ public static boolean isCompressedFilename(final String fileName) { return fileNameUtil.isCompressedFileName(fileName); } + /** + * Detects common LZMA suffixes in the given file name. + * + * @param fileName name of a file + * @return {@code true} if the file name has a common LZMA suffix, + * {@code false} otherwise + * @since 1.25.0 + */ + public static boolean isCompressedFileName(final String fileName) { + return fileNameUtil.isCompressedFileName(fileName); + } + /** * Are the classes required to support LZMA compression available? * @return true if the classes required to support LZMA diff --git a/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java b/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java index 54bf52f9..2dc89c32 100644 --- a/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java +++ b/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java @@ -74,11 +74,29 @@ public class XZUtils { * * @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 xz. 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.txz". If no + * custom mapping is applicable, then the default ".xz" 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 xz-compressed file to the name that the * file should have after uncompression. Commonly used file type specific diff --git a/src/test/java/org/apache/commons/compress/compressors/lzma/LZMAUtilsTestCase.java b/src/test/java/org/apache/commons/compress/compressors/lzma/LZMAUtilsTestCase.java index 48babdf8..d6b02e20 100644 --- a/src/test/java/org/apache/commons/compress/compressors/lzma/LZMAUtilsTestCase.java +++ b/src/test/java/org/apache/commons/compress/compressors/lzma/LZMAUtilsTestCase.java @@ -43,44 +43,69 @@ public class LZMAUtilsTestCase { } } + @SuppressWarnings("deprecation") @Test public void testGetCompressedFilename() { assertEquals(".lzma", LZMAUtils.getCompressedFilename("")); + assertEquals(".lzma", LZMAUtils.getCompressedFileName("")); assertEquals("x.lzma", LZMAUtils.getCompressedFilename("x")); + assertEquals("x.lzma", LZMAUtils.getCompressedFileName("x")); assertEquals("x.wmf .lzma", LZMAUtils.getCompressedFilename("x.wmf ")); + assertEquals("x.wmf .lzma", LZMAUtils.getCompressedFileName("x.wmf ")); assertEquals("x.wmf\n.lzma", LZMAUtils.getCompressedFilename("x.wmf\n")); + assertEquals("x.wmf\n.lzma", LZMAUtils.getCompressedFileName("x.wmf\n")); assertEquals("x.wmf.y.lzma", LZMAUtils.getCompressedFilename("x.wmf.y")); + assertEquals("x.wmf.y.lzma", LZMAUtils.getCompressedFileName("x.wmf.y")); } + @SuppressWarnings("deprecation") @Test public void testGetUncompressedFilename() { assertEquals("", LZMAUtils.getUncompressedFilename("")); + assertEquals("", LZMAUtils.getUncompressedFileName("")); assertEquals(".lzma", LZMAUtils.getUncompressedFilename(".lzma")); + assertEquals(".lzma", LZMAUtils.getUncompressedFileName(".lzma")); assertEquals("x", LZMAUtils.getUncompressedFilename("x.lzma")); + assertEquals("x", LZMAUtils.getUncompressedFileName("x.lzma")); assertEquals("x", LZMAUtils.getUncompressedFilename("x-lzma")); + assertEquals("x", LZMAUtils.getUncompressedFileName("x-lzma")); assertEquals("x.lzma ", LZMAUtils.getUncompressedFilename("x.lzma ")); + assertEquals("x.lzma ", LZMAUtils.getUncompressedFileName("x.lzma ")); assertEquals("x.lzma\n", LZMAUtils.getUncompressedFilename("x.lzma\n")); + assertEquals("x.lzma\n", LZMAUtils.getUncompressedFileName("x.lzma\n")); assertEquals("x.lzma.y", LZMAUtils.getUncompressedFilename("x.lzma.y")); + assertEquals("x.lzma.y", LZMAUtils.getUncompressedFileName("x.lzma.y")); } + @SuppressWarnings("deprecation") @Test public void testIsCompressedFilename() { assertFalse(LZMAUtils.isCompressedFilename("")); + assertFalse(LZMAUtils.isCompressedFileName("")); assertFalse(LZMAUtils.isCompressedFilename(".lzma")); + assertFalse(LZMAUtils.isCompressedFileName(".lzma")); assertTrue(LZMAUtils.isCompressedFilename("x.lzma")); + assertTrue(LZMAUtils.isCompressedFileName("x.lzma")); assertTrue(LZMAUtils.isCompressedFilename("x-lzma")); + assertTrue(LZMAUtils.isCompressedFileName("x-lzma")); assertFalse(LZMAUtils.isCompressedFilename("xxgz")); + assertFalse(LZMAUtils.isCompressedFileName("xxgz")); assertFalse(LZMAUtils.isCompressedFilename("lzmaz")); + assertFalse(LZMAUtils.isCompressedFileName("lzmaz")); assertFalse(LZMAUtils.isCompressedFilename("xaz")); + assertFalse(LZMAUtils.isCompressedFileName("xaz")); assertFalse(LZMAUtils.isCompressedFilename("x.lzma ")); + assertFalse(LZMAUtils.isCompressedFileName("x.lzma ")); assertFalse(LZMAUtils.isCompressedFilename("x.lzma\n")); + assertFalse(LZMAUtils.isCompressedFileName("x.lzma\n")); assertFalse(LZMAUtils.isCompressedFilename("x.lzma.y")); + assertFalse(LZMAUtils.isCompressedFileName("x.lzma.y")); } @Test