104 */
105 private static final Map<Type, LocaleProviderAdapter> adapterInstances = new ConcurrentHashMap<>();
106
107 /**
108 * Default fallback adapter type, which should return something meaningful in any case.
109 * This is either CLDR or FALLBACK.
110 */
111 static volatile LocaleProviderAdapter.Type defaultLocaleProviderAdapter;
112
113 /**
114 * Adapter lookup cache.
115 */
116 private static ConcurrentMap<Class<? extends LocaleServiceProvider>, ConcurrentMap<Locale, LocaleProviderAdapter>>
117 adapterCache = new ConcurrentHashMap<>();
118
119 static {
120 String order = GetPropertyAction.privilegedGetProperty("java.locale.providers");
121 List<Type> typeList = new ArrayList<>();
122
123 // Check user specified adapter preference
124 if (order != null && order.length() != 0) {
125 String[] types = order.split(",");
126 for (String type : types) {
127 type = type.trim().toUpperCase(Locale.ROOT);
128 if (type.equals("COMPAT")) {
129 type = "JRE";
130 }
131 try {
132 Type aType = Type.valueOf(type.trim().toUpperCase(Locale.ROOT));
133 if (!typeList.contains(aType)) {
134 typeList.add(aType);
135 }
136 } catch (IllegalArgumentException | UnsupportedOperationException e) {
137 // could be caused by the user specifying wrong
138 // provider name or format in the system property
139 LocaleServiceProviderPool.config(LocaleProviderAdapter.class, e.toString());
140 }
141 }
142 }
143
144 defaultLocaleProviderAdapter = Type.CLDR;
|
104 */
105 private static final Map<Type, LocaleProviderAdapter> adapterInstances = new ConcurrentHashMap<>();
106
107 /**
108 * Default fallback adapter type, which should return something meaningful in any case.
109 * This is either CLDR or FALLBACK.
110 */
111 static volatile LocaleProviderAdapter.Type defaultLocaleProviderAdapter;
112
113 /**
114 * Adapter lookup cache.
115 */
116 private static ConcurrentMap<Class<? extends LocaleServiceProvider>, ConcurrentMap<Locale, LocaleProviderAdapter>>
117 adapterCache = new ConcurrentHashMap<>();
118
119 static {
120 String order = GetPropertyAction.privilegedGetProperty("java.locale.providers");
121 List<Type> typeList = new ArrayList<>();
122
123 // Check user specified adapter preference
124 if (order != null && !order.isEmpty()) {
125 String[] types = order.split(",");
126 for (String type : types) {
127 type = type.trim().toUpperCase(Locale.ROOT);
128 if (type.equals("COMPAT")) {
129 type = "JRE";
130 }
131 try {
132 Type aType = Type.valueOf(type.trim().toUpperCase(Locale.ROOT));
133 if (!typeList.contains(aType)) {
134 typeList.add(aType);
135 }
136 } catch (IllegalArgumentException | UnsupportedOperationException e) {
137 // could be caused by the user specifying wrong
138 // provider name or format in the system property
139 LocaleServiceProviderPool.config(LocaleProviderAdapter.class, e.toString());
140 }
141 }
142 }
143
144 defaultLocaleProviderAdapter = Type.CLDR;
|