This is an automated email from the ASF dual-hosted git repository. elharo pushed a commit to branch dirname in repository https://gitbox.apache.org/repos/asf/maven-wagon.git
commit 04e8cd2b2fd106d1ad60b20d90bf0768d1fd1457 Author: Elliotte Rusty Harold <elh...@ibiblio.org> AuthorDate: Sat Jun 14 06:26:54 2025 -0400 [WAGON-643] Deprecate dirname and filename methods in favor of java.nio.file.Path --- .../src/main/java/org/apache/maven/wagon/PathUtils.java | 9 ++++++--- .../test/java/org/apache/maven/wagon/PathUtilsTest.java | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/wagon-provider-api/src/main/java/org/apache/maven/wagon/PathUtils.java b/wagon-provider-api/src/main/java/org/apache/maven/wagon/PathUtils.java index 5f7e61d7..e2f90e8d 100644 --- a/wagon-provider-api/src/main/java/org/apache/maven/wagon/PathUtils.java +++ b/wagon-provider-api/src/main/java/org/apache/maven/wagon/PathUtils.java @@ -37,9 +37,9 @@ private PathUtils() {} /** * Returns the directory path portion of a file specification string. - * Matches the equally named unix command. * - * @return The directory portion excluding the ending file separator. + * @return the directory portion excluding the ending file separator + * @deprecated use {@code Paths.get(path).getParent().toString} */ public static String dirname(final String path) { final int i = path.lastIndexOf("/"); @@ -50,13 +50,16 @@ public static String dirname(final String path) { /** * Returns the filename portion of a file specification string. * - * @return The filename string with extension. + * @return the filename string with extension + * @deprecated use {@code Paths.get(path).getFileName().toString} */ + @Deprecated public static String filename(final String path) { final int i = path.lastIndexOf("/"); return ((i >= 0) ? path.substring(i + 1) : path); } + @Deprecated public static String[] dirnames(final String path) { final String dirname = PathUtils.dirname(path); return split(dirname, "/", -1); diff --git a/wagon-provider-api/src/test/java/org/apache/maven/wagon/PathUtilsTest.java b/wagon-provider-api/src/test/java/org/apache/maven/wagon/PathUtilsTest.java index c2556eed..b5a0f491 100644 --- a/wagon-provider-api/src/test/java/org/apache/maven/wagon/PathUtilsTest.java +++ b/wagon-provider-api/src/test/java/org/apache/maven/wagon/PathUtilsTest.java @@ -24,7 +24,6 @@ /** * @author <a href="michal.mac...@dimatics.com">Michal Maczka</a> - * */ public class PathUtilsTest extends TestCase { public void testFilenameResolving() { @@ -43,7 +42,19 @@ public void testDirResolving() { assertEquals("dir1/dir2", PathUtils.dirname("dir1/dir2/filename")); } - public void testDirSpliting() { + // A characterization test that demonstrates the existing behavior does not + // match the Unix dirname function when a trailing slash is present. + public void testDirnameDoesNotStripTrailingSlash() { + assertEquals("dir1/dir2/filename", PathUtils.dirname("dir1/dir2/filename/")); + } + + // A characterization test that demonstrates the existing behavior does not + // match the Unix dirname function when a trailing slash is present. + public void testFilenameDoesNotStripTrailingSlash() { + assertEquals("", PathUtils.filename("dir1/dir2/filename/")); + } + + public void testDirSplitting() { final String path = "a/b/c"; final String[] dirs = PathUtils.dirnames(path);