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

Reply via email to