-
CSR
-
Resolution: Approved
-
P4
-
None
-
behavioral
-
minimal
-
This is only a documentation change.
-
Java API
-
JDK
Summary
Add a table describing JDK releases vs. CLDR versions.
Problem
CLDR locale data is updated in each JDK feature release, but users cannot easily distinguish which version of CLDR is included in a JDK feature release.
Solution
Add a table to the class description of java.util.spi.LocaleServiceProvider
, mapping JDK feature releases to CLDR versions. This table will be non-normative because the use of CLDR locale data is an implementation characteristic of the JDK, not a mandate from the Java Platform Specification. In style, the table will look similar to the (normative) table in java.lang.Character
that maps Java Platform releases to Unicode versions.
As with Unicode versions, JDK update releases do not backport newer CLDR versions, since it would break compatibility. One exception is the mapping of Windows zones to IANA's TZ data base, which will be backported (if any) as a part of the time zone update process.
Specification
Add the following @implNote
to the end of the java.util.spi.LocaleServiceProvider
class description:
+ * @implNote The JDK uses locale data from the Unicode Consortium's
+ * <a href="http://cldr.unicode.org/">Common Locale Data Repository (CLDR)</a>
+ * to implement locale-sensitive APIs in the {@code java.util} and
+ * {@code java.text} packages. This locale data derives the set of locales
+ * supported by the Java runtime environment. The following table lists the
+ * version of CLDR used in each JDK release. Unless otherwise specified, all
+ * update releases in a given JDK release family use the same CLDR version.
+ * <table class="striped">
+ * <caption style="display:none">Shows JDK releases and supported CLDR versions</caption>
+ * <thead>
+ * <tr><th scope="col">JDK release</th>
+ * <th scope="col">CLDR version</th></tr>
+ * </thead>
+ * <tbody>
+ * <tr><th scope="row" style="text-align:left">JDK 22</th>
+ * <td>CLDR 44</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 21</th>
+ * <td>CLDR 43</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 20</th>
+ * <td>CLDR 42</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 19</th>
+ * <td>CLDR 41</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 18</th>
+ * <td>CLDR 39</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 17</th>
+ * <td>CLDR 39</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 16</th>
+ * <td>CLDR 38</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 15</th>
+ * <td>CLDR 37</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 14</th>
+ * <td>CLDR 36</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 13</th>
+ * <td>CLDR 35.1</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 12</th>
+ * <td>CLDR 33</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 11</th>
+ * <td>CLDR 33</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 10</th>
+ * <td>CLDR 29</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 9</th>
+ * <td>CLDR 29</td></tr>
+ * <tr><th scope="row" style="text-align:left">JDK 8</th>
+ * <td>CLDR 21.0.1</td></tr>
+ * </tbody>
+ * </table>
+ *
As an editorial matter, it is desirable to clarify some terminology in the class description for java.util.spi.LocaleServiceProvider
. This mainly means using the term "locale data provider" instead of "locale provider" (which could be confused with the "locale service provider" itself). The following changes are purely editorial:
- * Locale sensitive service provider interfaces are interfaces that
+ * Locale sensitive service provider interfaces are interfaces that
* correspond to locale sensitive classes in the {@code java.text}
- * and {@code java.util} packages. The interfaces enable the
+ * and {@code java.util} packages in order to provide the locale
+ * data used for each service. The interfaces enable the
* JDK Reference Implementation provides the following three
- * locale providers:
+ * locale data providers:
* <ul>
- * <li> "CLDR": A provider based on Unicode Consortium's
- * <a href="http://cldr.unicode.org/">CLDR Project</a>.
+ * <li> "CLDR": A locale data provider based on the Unicode Consortium's
+ * <a href="http://cldr.unicode.org/">Common Locale Data Repository (CLDR)</a>.
* <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
+ * <li> "HOST": A locale data provider that reflects the user's custom settings in the
* underlying operating system. This provider may not be available, depending
- * The default value for looking up the preferred locale providers is "CLDR",
- * so specifying "CLDR" is identical to the default behavior. Applications which
+ * The default value for looking up the preferred locale data providers is "CLDR",
+ * so specifying only "CLDR" is identical to the default behavior. Applications which
- csr of
-
JDK-8327242 Document supported CLDR versions in the javadoc
- Resolved