原文はこちら。
The original article was written by Nicolai Parlog (Developer Advocate at Oracle).
https://inside.java/2023/03/28/quality-heads-up/
OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDK Early Accessビルドを使ってのFOSSプロジェクトのテストを推進しています。
Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach
このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。
JDK 20 is now GA, JDK 21 Early-Access builds, and important heads-up!
https://mail.openjdk.org/pipermail/quality-discuss/2023-March/001117.html
このプログラムの詳細と参加方法については、上記wikiをご覧ください。
JDK 20 – Support for Unicode CLDR Version 42
JDKのロケールデータは、Unicode ConsortiumのUnicode Common Locale Data Repository(CLDR)に基づいています。2022年12月のQuality Outreachニュースレターで述べたように、JDK 20はCLDRを2022年10月にリリースされたバージョン42にアップグレードしました。
JDK 20 Rampdown Phase 1 & Valhalla LW4 Early-Access builds
https://mail.openjdk.org/pipermail/quality-discuss/2022-December/001100.html
Unicode CLDR – CLDR 42 Release Note
https://cldr.unicode.org/index/downloads/cldr-42
このバージョンには、通常の空白をno-break space(NBSP / \u00A0
) やnarrow no-break space(NNBSP / \u202F
) に置き換える、「より洗練された空白の扱い」が含まれています。
[CLDR-14032] Propose more sophisticated DAIP handling of spaces
https://unicode-org.atlassian.net/browse/CLDR-14032
- 時間表記:
a
と時間の間 - 単位表記: {0}と単位の間
- キリル文字の日付表記: で、
г
のような年号の前
その他の重要な変更点は以下のようなものがあります。
標準のdate/timeフォーマットでは” at “を使わない | [CLDR-14831] Add more dateTimePatters: relative+absolute time, date+timeInterval https://unicode-org.atlassian.net/browse/CLDR-14831 |
(中国語)週の最初の曜日を修正 | [CLDR-11510] Fix first day of week info for China (CN) https://unicode-org.atlassian.net/browse/CLDR-11510 |
(日本語)9999京までの数値をサポート | [CLDR-15966] Japanese: Support numbers up to 9999京 https://unicode-org.atlassian.net/browse/CLDR-15966 |
結果として、日付や時刻のようなロケールに依存する文字列を生成、または解析するプロダクションコードやテストコードにて、破壊的な方法で動作が変わる可能性があります(たとえば、正規のスペースを含む手作業で生成した日付文字列を解析したにもかかわらず、パーサーがNBSPまたはNNBSPを期待するようになった場合など)。期待される文字列と実際の文字列は、さまざまなテキスト表現で非常に似ていたり、同じに見えたりするため、問題を分析するのは難しい場合があります。これらの問題を検出し修正するには、異なる種類の空白を異なる方法で表示するテキストエディタを使用するようにしてください。
JDK 20へのアップグレード時に必要な修正を実装できない場合、次のJVMオプションを使って旧来のロケールデータを使うことを検討してください。
-Djava.locale.providers=COMPAT
この方法ではロケール関連の機能が一部制限されるため、適切な解決策としてではなく、一時的な回避策として取り扱うことを念頭においてください。さらに、COMPAT
オプションは将来的に削除される予定です。
また、この種のロケールデータは定期的に進化するため、ロケールデータを解析/合成するプログラムは、JDKのリリースごとに定期的にチェックする必要がある点に留意することが重要です。
詳しくは、JDK-8284840をご覧ください。
[JDK-8284840] Update CLDR to Version 42.0
https://bugs.openjdk.org/browse/JDK-8284840