From bb7b8481bdce7eb8ac40b3dbfd0a567b3c754cd6 Mon Sep 17 00:00:00 2001 From: daniel-ju Date: Tue, 2 Jun 2020 14:22:39 -0400 Subject: [PATCH] ICU-21140 Fix cldr-to-icu tooling to work on Windows --- .../icu/tool/cldrtoicu/LdmlConverter.java | 2 +- .../cldrtoicu/ant/CleanOutputDirectoryTask.java | 5 +++-- .../tool/cldrtoicu/ant/ConvertIcuDataTask.java | 16 ++++++++++------ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/LdmlConverter.java b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/LdmlConverter.java index 7a5fe8d522e..ce0b6421012 100644 --- a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/LdmlConverter.java +++ b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/LdmlConverter.java @@ -242,7 +242,7 @@ public final class LdmlConverter { private static ImmutableList readLinesFromResource(String name) { try (InputStream in = LdmlConverter.class.getResourceAsStream(name)) { - return ImmutableList.copyOf(CharStreams.readLines(new InputStreamReader(in))); + return ImmutableList.copyOf(CharStreams.readLines(new InputStreamReader(in, UTF_8))); } catch (IOException e) { throw new RuntimeException("cannot read resource: " + name, e); } diff --git a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/CleanOutputDirectoryTask.java b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/CleanOutputDirectoryTask.java index ddd34ea9c8a..3c013d64bcb 100644 --- a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/CleanOutputDirectoryTask.java +++ b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/CleanOutputDirectoryTask.java @@ -100,8 +100,9 @@ public final class CleanOutputDirectoryTask extends Task { } @SuppressWarnings("unused") - public void setRoot(Path root) { - this.root = root; + public void setRoot(String root) { + // Use String here since on some systems Ant doesn't support automatically converting Path instances. + this.root = Paths.get(root); } @SuppressWarnings("unused") diff --git a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java index 4fa66fccff7..1a46ce40eb4 100644 --- a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java +++ b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java @@ -16,6 +16,7 @@ import static java.util.stream.Collectors.joining; import static org.unicode.cldr.api.CldrPath.parseDistinguishingPath; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -76,13 +77,15 @@ public final class ConvertIcuDataTask extends Task { private Predicate idFilter = id -> true; @SuppressWarnings("unused") - public void setOutputDir(Path path) { - config.setOutputDir(path); + public void setOutputDir(String path) { + // Use String here since on some systems Ant doesn't support automatically converting Path instances. + config.setOutputDir(Paths.get(path)); } @SuppressWarnings("unused") - public void setCldrDir(Path path) { - this.cldrPath = checkNotNull(path); + public void setCldrDir(String path) { + // Use String here since on some systems Ant doesn't support automatically converting Path instances. + this.cldrPath = checkNotNull(Paths.get(path)); } @SuppressWarnings("unused") @@ -108,8 +111,9 @@ public final class ConvertIcuDataTask extends Task { } @SuppressWarnings("unused") - public void setSpecialsDir(Path path) { - config.setSpecialsDir(path); + public void setSpecialsDir(String path) { + // Use String here since on some systems Ant doesn't support automatically converting Path instances. + config.setSpecialsDir(Paths.get(path)); } @SuppressWarnings("unused")