[Java] A New JDK 9 Version String Scheme

原文はこちら。
https://blogs.oracle.com/java-platform-group/entry/a_new_jdk_9_version

JDK 9に対し予定されている変更で、それほど大きなものではないとはいえ重要なものが、JDKバージョン文字列体系のアップデートです。詳細はJEP 233に記載されています。
JEP 223: New Version-String Scheme
http://openjdk.java.net/jeps/223
新しいバージョン文字列体系により、メジャー、マイナー、CPU(Critical Patch Update)リリースをより簡単に識別することができるようになります。これは、JDKバージョン文字列の一部として各プロパティを分離した数値コンポーネントとして符号化することにより実現しよう、というものです。
Critical Patch Updates, Security Alerts and Third Party Bulletin
http://www.oracle.com/technetwork/topics/security/alerts-086861.html
新しいMAJOR.MINOR.SECURITYという表現方法に従い、JDK 9のバージョン文字列はMAJORリリースコンポーネントを表す9で始まります。

例えば、もしJDK 9 GAリリース(バージョン文字列9)に続いてCPUが出た場合、CPUのバージョン文字列は9.0.1になります。
General Availability
http://openjdk.java.net/projects/jdk8/milestones#General_Availability
そのCPUに続いて、9.0.1に対して追加変更を伴うマイナーリリースが続く場合、新リリースのバージョン文字列は9.1.1になります。
"Massive" Minor Release Java 8u40 Packs a Punch
https://www.voxxed.com/blog/2015/03/massive-minor-java-release-8u40-packs-a-punch/ 
さらに続いて、マイナーリリースに続いて別のCPUが出る場合、その新しいCPUは9.1.2になります。以下、下表のようなリリースバージョンが想定されます。
 9  GA
 9.0.1  CPU:9 + 重要な変更
 9.1.1  マイナーリリース:9.0.1 + その他の変更
 9.1.2  CPU:9.1.1 + 重要な変更
 9.2.2  マイナーリリース:9.1.2 + その他の変更
 9.2.3  CPU:9.2.2 + 重要な変更
 9.2.4  CPU:9.2.3 + 重要な変更
 9.3.4  マイナーリリース:9.2.4 + その他の変更
バージョン文字列の個々のコンポーネントは0から始まり、リリースの種類に基づいて増加するので、ローカルにインストールしたものが3個目の文字列、つまりJDK 9バージョン文字列のコンポーネントである、SECURITYをチェックすることによって指定されたセキュリティベースラインに合致しているかどうかを簡単に確認することができます。
バージョン文字列体系が変わることによって、JDKバージョン文字列を処理するコードの調整が必要になる場合があります。例えば、JDK 9バージョン文字列の1個目の要素が、(1.9.0_ea-b19のように)常に1という値であることを想定しており、リリースを比較する場合に常に2個目の要素へスキップして読み飛ばしているような場合です。調整の詳細はJEPの文章に記載があります。
さらに、JEPの文章では、JDK 9バージョン文字列で符号化される可能性のある他の種類の情報、9.0.1+63のようなビルド番号について記載があります。

予定されている変更を試したい開発者の方は、JDK 9 Early Access Buildをjdk9.java.netからダウンロードして試すことができます。
JDK 9 Project - Building the next generation of the JDK platform
http://jdk9.java.net/
予定されているバージョン文字列体系の変更に対するフィードバックは、verona-devメーリングリストにお送りください。

0 件のコメント:

コメントを投稿