mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8304982: Emit warning for removal of COMPAT
provider
Reviewed-by: alanb
This commit is contained in:
parent
ee3023359c
commit
44f33ad1a9
4 changed files with 113 additions and 7 deletions
|
@ -120,18 +120,19 @@ import java.util.Locale;
|
|||
* property on the java launcher command line. Setting it at runtime with
|
||||
* {@link System#setProperty(String, String)} is discouraged and it may not affect
|
||||
* the order.
|
||||
* <p>
|
||||
* Java Runtime Environment provides the following four locale providers:
|
||||
* JDK Reference Implementation provides the following four
|
||||
* locale providers:
|
||||
* <ul>
|
||||
* <li> "CLDR": A provider based on Unicode Consortium's
|
||||
* <a href="http://cldr.unicode.org/">CLDR Project</a>.
|
||||
* <li> "COMPAT": represents the locale sensitive services that is compatible
|
||||
* with the prior JDK releases up to JDK8 (same as JDK8's "JRE").
|
||||
* with the prior JDK releases up to JDK 8 (same as JDK 8's "JRE"). This
|
||||
* provider is deprecated and will be removed in the future release of JDK.
|
||||
* <li> "SPI": represents the locale sensitive services implementing the subclasses of
|
||||
* this {@code LocaleServiceProvider} class.
|
||||
* <li> "HOST": A provider that reflects the user's custom settings in the
|
||||
* underlying operating system. This provider may not be available, depending
|
||||
* on the Java Runtime Environment implementation.
|
||||
* on the JDK Reference Implementation.
|
||||
* <li> "JRE": represents a synonym to "COMPAT". This name
|
||||
* is deprecated and will be removed in the future release of JDK.
|
||||
* </ul>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2023, 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
|
||||
|
@ -33,7 +33,6 @@ import java.text.spi.DateFormatSymbolsProvider;
|
|||
import java.text.spi.DecimalFormatSymbolsProvider;
|
||||
import java.text.spi.NumberFormatProvider;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
@ -125,13 +124,15 @@ public abstract class LocaleProviderAdapter {
|
|||
String order = GetPropertyAction.privilegedGetProperty("java.locale.providers");
|
||||
ArrayList<Type> typeList = new ArrayList<>();
|
||||
String invalidTypeMessage = null;
|
||||
String compatWarningMessage = null;
|
||||
|
||||
// Check user specified adapter preference
|
||||
if (order != null && !order.isEmpty()) {
|
||||
String[] types = order.split(",");
|
||||
for (String type : types) {
|
||||
type = type.trim().toUpperCase(Locale.ROOT);
|
||||
if (type.equals("COMPAT")) {
|
||||
if (type.equals("COMPAT") || type.equals("JRE")) {
|
||||
compatWarningMessage = "COMPAT locale provider will be removed in a future release";
|
||||
type = "JRE";
|
||||
}
|
||||
try {
|
||||
|
@ -169,6 +170,10 @@ public abstract class LocaleProviderAdapter {
|
|||
getLogger(LocaleProviderAdapter.class.getCanonicalName())
|
||||
.log(Logger.Level.INFO, invalidTypeMessage);
|
||||
}
|
||||
if (compatWarningMessage != null) {
|
||||
getLogger(LocaleProviderAdapter.class.getCanonicalName())
|
||||
.log(Logger.Level.WARNING, compatWarningMessage);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue