diff --git a/WHATSNEW b/WHATSNEW
index 01cef160f..1c075d716 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -101,6 +101,9 @@ Fixed bugs:
specify the destDir attribute.
Bugzilla Report 51947.
+ * packagemapper now honors the handleDirSep attribute.
+ Bugzilla Report 51068.
+
Other changes:
--------------
diff --git a/src/main/org/apache/tools/ant/util/GlobPatternMapper.java b/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
index 61e910d3a..1ba41285c 100644
--- a/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
+++ b/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
@@ -83,6 +83,15 @@ public class GlobPatternMapper implements FileNameMapper {
this.handleDirSep = handleDirSep;
}
+ /**
+ * Attribute specifying whether to ignore the difference
+ * between / and \ (the two common directory characters).
+ * @since Ant 1.8.3
+ */
+ public boolean getHandleDirSep() {
+ return handleDirSep;
+ }
+
/**
* Attribute specifying whether to ignore the case difference
* in the names.
diff --git a/src/main/org/apache/tools/ant/util/PackageNameMapper.java b/src/main/org/apache/tools/ant/util/PackageNameMapper.java
index bd3344866..2ccde5d14 100644
--- a/src/main/org/apache/tools/ant/util/PackageNameMapper.java
+++ b/src/main/org/apache/tools/ant/util/PackageNameMapper.java
@@ -40,6 +40,9 @@ public class PackageNameMapper extends GlobPatternMapper {
protected String extractVariablePart(String name) {
String var = name.substring(prefixLength,
name.length() - postfixLength);
+ if (getHandleDirSep()) {
+ var = name.replace('/', '.').replace('\\', '.');
+ }
return var.replace(File.separatorChar, '.');
}
}
diff --git a/src/tests/antunit/types/glob-test.xml b/src/tests/antunit/types/mappers/glob-test.xml
similarity index 98%
rename from src/tests/antunit/types/glob-test.xml
rename to src/tests/antunit/types/mappers/glob-test.xml
index c4626f5dd..c4d92da2d 100644
--- a/src/tests/antunit/types/glob-test.xml
+++ b/src/tests/antunit/types/mappers/glob-test.xml
@@ -20,7 +20,7 @@
name="glob-test"
default="antunit">
-
+
diff --git a/src/tests/antunit/types/mappers/packagemapper-test.xml b/src/tests/antunit/types/mappers/packagemapper-test.xml
new file mode 100644
index 000000000..f5cada734
--- /dev/null
+++ b/src/tests/antunit/types/mappers/packagemapper-test.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+ foo/bar
+
+
+
+
+ foo\bar
+
+
+
+
+
\ No newline at end of file