From e995f38a73fc4cc4147975fa61cd402b8de697a1 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Thu, 17 Nov 2011 13:27:41 +0000 Subject: [PATCH] make packagemapper take handledirsep into account. Submitted by Anthony Wat. PR 51086 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1203181 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 3 ++ .../tools/ant/util/GlobPatternMapper.java | 9 +++++ .../tools/ant/util/PackageNameMapper.java | 3 ++ .../antunit/types/{ => mappers}/glob-test.xml | 2 +- .../types/mappers/packagemapper-test.xml | 36 +++++++++++++++++++ 5 files changed, 52 insertions(+), 1 deletion(-) rename src/tests/antunit/types/{ => mappers}/glob-test.xml (98%) create mode 100644 src/tests/antunit/types/mappers/packagemapper-test.xml 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