8165605: Thai resources in jdk.localedata cause split package issue with java.base

Reviewed-by: mchung, erikj
This commit is contained in:
Naoto Sato 2016-09-12 09:38:32 -07:00
parent 2ac4d6a7d3
commit 4c95fceb14
7 changed files with 38 additions and 76 deletions
jdk
make/gendata
src
java.base/share/classes/sun
jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins
jdk.localedata/share/classes/sun/text/resources/ext
test/tools/jlink/plugins

@ -81,7 +81,7 @@ UNICODEDATA := $(JDK_TOPDIR)/make/data/unicodedata/UnicodeData.txt
# output
BASE_DATA_PKG_DIR := $(JDK_OUTPUTDIR)/modules/java.base/sun/text/resources
LD_DATA_PKG_DIR := $(JDK_OUTPUTDIR)/modules/jdk.localedata/sun/text/resources
LD_DATA_PKG_DIR := $(JDK_OUTPUTDIR)/modules/jdk.localedata/sun/text/resources/ext
BIFILES := $(BASE_DATA_PKG_DIR)/CharacterBreakIteratorData \
$(BASE_DATA_PKG_DIR)/WordBreakIteratorData \
$(BASE_DATA_PKG_DIR)/LineBreakIteratorData \

@ -1,35 +0,0 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.text.resources;
import java.util.spi.ResourceBundleProvider;
/**
* An interface for the internal locale data provider for which {@code ResourceBundle}
* searches.
*/
public interface BreakIteratorRulesProvider extends ResourceBundleProvider {
}

@ -149,7 +149,10 @@ class BreakDictionary {
BufferedInputStream in;
try {
PrivilegedExceptionAction<BufferedInputStream> pa = () -> {
InputStream is = module.getResourceAsStream("sun/text/resources/" + dictionaryName);
String pathName = "jdk.localedata".equals(module.getName()) ?
"sun/text/resources/ext/" :
"sun/text/resources/";
InputStream is = module.getResourceAsStream(pathName + dictionaryName);
if (is == null) {
// Try to load the file with "java.base" module instance. Assumption
// here is that the fall back data files to be read should reside in

@ -444,7 +444,10 @@ class RuleBasedBreakIterator extends BreakIterator {
BufferedInputStream is;
try {
PrivilegedExceptionAction<BufferedInputStream> pa = () -> {
InputStream in = module.getResourceAsStream("sun/text/resources/" + datafile);
String pathName = "jdk.localedata".equals(module.getName()) ?
"sun/text/resources/ext/" :
"sun/text/resources/";
InputStream in = module.getResourceAsStream(pathName + datafile);
if (in == null) {
// Try to load the file with "java.base" module instance. Assumption
// here is that the fall back data files to be read should reside in

@ -264,8 +264,8 @@ public final class IncludeLocalesPlugin implements Plugin, ResourcePrevisitor {
// Add Thai BreakIterator related data files
if (tag.equals("th")) {
files.add(".+sun/text/resources/thai_dict");
files.add(".+sun/text/resources/[^_]+BreakIteratorData_th");
files.add(".+sun/text/resources/ext/thai_dict");
files.add(".+sun/text/resources/ext/[^_]+BreakIteratorData_th");
}
// Add Taiwan resource bundles for Hong Kong

@ -126,11 +126,10 @@ public class IncludeLocalesPluginTest {
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_es_419.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_es_AR.class"),
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
@ -165,11 +164,10 @@ public class IncludeLocalesPluginTest {
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class"),
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_th.class",
@ -206,11 +204,10 @@ public class IncludeLocalesPluginTest {
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_150.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_AT.class"),
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@ -235,11 +232,10 @@ public class IncludeLocalesPluginTest {
"/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_kok_IN.class",
"/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_pa_Guru_IN.class"),
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@ -261,11 +257,10 @@ public class IncludeLocalesPluginTest {
"--include-locales=th",
"jdk.localedata",
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class"),
List.of(
"/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
@ -290,11 +285,10 @@ public class IncludeLocalesPluginTest {
"/jdk.localedata/sun/text/resources/ext/FormatData_zh_TW.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@ -318,11 +312,10 @@ public class IncludeLocalesPluginTest {
"/jdk.localedata/sun/text/resources/ext/FormatData_zh_SG.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@ -346,11 +339,10 @@ public class IncludeLocalesPluginTest {
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_nb.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_nn.class"),
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@ -376,11 +368,10 @@ public class IncludeLocalesPluginTest {
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_iw.class",
"/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ji.class"),
List.of(
"/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/thai_dict",
"/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/thai_dict",
"/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
"/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
"/jdk.localedata/sun/text/resources/ext/FormatData_th.class",