#62921 - Provide OOXMLLite alternative for Java 12+

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1846811 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andreas Beeker 2018-11-18 00:49:54 +00:00
parent c7cf08b50a
commit 7239d7c525
1 changed files with 17 additions and 4 deletions

View File

@ -75,7 +75,7 @@ public class TestExcelStyleDateFormatter {
String msg = "Failed testDates for locale " + locale + ", provider: " + provider + String msg = "Failed testDates for locale " + locale + ", provider: " + provider +
" and date " + d + ", having: " + result; " and date " + d + ", having: " + result;
int actIdx = (Locale.CHINESE.equals(locale) && jreVersion >= 12) ? 1 : 0; int actIdx = localeIndex(locale);
assertNotNull(msg, result); assertNotNull(msg, result);
assertTrue(msg, result.length() > actIdx); assertTrue(msg, result.length() > actIdx);
@ -85,6 +85,18 @@ public class TestExcelStyleDateFormatter {
} }
} }
/**
* Depending on the JRE version, the provider setting and the locale, a different result
* is expected and selected via an index
*/
private int localeIndex(Locale locale) {
final String provider = System.getProperty("java.locale.providers");
return jreVersion < 12 ||
!locale.equals (Locale.CHINESE) ||
(provider != null && provider.startsWith("JRE"))
? 0 : 1;
}
private Date parseDate(String dateStr) { private Date parseDate(String dateStr) {
try { try {
return DATE_FORMAT.parse(dateStr); return DATE_FORMAT.parse(dateStr);
@ -110,9 +122,10 @@ public class TestExcelStyleDateFormatter {
testMap.put(new Locale("ru", "RU"), testMap.put(new Locale("ru", "RU"),
"\u044f\u0444\u043c\u0430\u043c\u0438\u0438\u0430\u0441\u043e\u043d\u0434"); "\u044f\u0444\u043c\u0430\u043c\u0438\u0438\u0430\u0441\u043e\u043d\u0434");
testMap.put(Locale.CHINESE, jreVersion < 12 testMap.put(Locale.CHINESE, new String[]{
? "\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u5341\u5341" "\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u5341\u5341",
: "123456789111"); "123456789111"
}[localeIndex(Locale.CHINESE)]);
testMap.put(new Locale("tr", "TR"), testMap.put(new Locale("tr", "TR"),
"\u004f\u015e\u004d\u004e\u004d\u0048\u0054\u0041\u0045\u0045\u004b\u0041"); "\u004f\u015e\u004d\u004e\u004d\u0048\u0054\u0041\u0045\u0045\u004b\u0041");