BT

Javaバージョン文字列がJava 9で改訂される

| 作者: Abraham Marín Pérez フォローする 9 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2016年1月25日. 推定読書時間: 3 分 |

原文(投稿日:2015/12/17)へのリンク

現在の形式になって2年,JavaのバージョンスキーマがJava 9から変更されることになった。今回の変更は,業界全体のソフトウェアバージョニングのベストプラクティスに従うものだ。Javaのバージョン文字列を使用,あるいは解析しているアプリケーションの開発者は,この変更による影響に注意する必要がある。

JEP 223で説明されているように現行のバージョンスキーマは,特定のバージョン番号がスキップされていたり,セキュリティフィックスとアップデートが混在しているため,コミュニティには直感的でなく分かりにくいと思われている。この問題を解決するためにOracleは,セマンティックバージョニングを用いた新たなバージョンスキーマの導入を予定している。この形式では,Javaのバージョン文字列を3つの数字によって構成する - メジャーリリース番号とそれに続くマイナー(あるいはメンテナンス)番号,そしてセキュリティリリース番号である。長形式のバージョンフォーマットには,ビルド番号やアベイラビリティなどの情報も含まれる。

メジャーリリース番号は,コミュニティがJavaのバージョンとして認識しているバージョン番号と一致する。例えば,Java 9のメジャーリリース番号は9である。従ってメジャーリリース番号の変更が行われるのは,Javaの新バージョンのリリースと同じで,2年ないし3年に1回のみになる。メジャーリリース番号の更新時には互換性のない変更が含まれる可能性があるが,これらは事前に,少なくとも2メジャーバージョン前には通知される予定である。

マイナーリリース番号には,緊急性のないバグフィックスやサポートAPIのメンテナンスリリース,あるいは新しいサービスプロバイダなど新規コンポーネントの追加,新しいガベージコレクタ,新たなアーキテクチャのサポートといったものが含まれる。マイナーリリースはパッチセットアップデートと同じように,四半期毎の実施を予定している。

最後のセキュリティリリースは,重要なバグフィックスを行うためのものだ。このリリースは,クリティカルパッチアップデート(CPU)と同じ四半期毎のスケジュールに加えて,セキュリティアラートのようなオンデマンドでも実施される予定である。

決定事項で注目すべきなのは,Oracleがバージョン番号の最初の“1.”を廃止する予定だということだ。この1が意味を持たないことは理解できるが,コミュニティの中では,現行の2番目の数字はデファクトメジャーリリース番号と解釈されている。この変更は,現行のバージョン番号の解析処理において,先頭に1またはドットがあることを前提とするアプリケーションに影響を与える可能性がある。例えば,JEPにもあるように,次のようなコードは,

System.getProperty("java.version").indexof('.');

メジャーリリースには-1を返すことになる(後続0はバージョン文字列から省かれることから,9.0.0は単純に9と表現されるため)。

今回の標準は,Javaバージョン文字列として3番目にあたる。1.3以降に採用された最初のものは比較的シンプルで,2番目の数字を実質的なメジャーリリース,3番目をセキュリティフィックス(偶数)またはアップグレード(奇数)として使用していた。このシステムには制限があるため,リリース番号の再定義を余儀なくされることが何度かあった

この問題を解決するために,現在のバージョニングシステムが導入された。現在のスキーマでもセキュリティフィックスは偶数でアップデートは奇数だが,連続した数字ではない。アップデートは常に20の倍数で,最新のメンテナンスアップデートに5の倍数を加えてCPU(Critical Patch Update)のバージョンが決められる(奇数にするために,必要に応じて1が加えられる)。この方法に従えば,例えばメンテナンスリリース番号が20の場合,それ以降にスケジュールされるセキュリティリリースは25, 31, 35になるはずだ。リリース番号の間のギャップは,すでにスケジュールされているリリース番号を変更しなくても,セキュリティ警告の修正をリリース可能にするために設けられている。

新しいバージョニングシステムは,アップデートとセキュリティフィックスを区別する方法を維持しながら,より理解しやすい方法であることを目標とする。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT