Sun が Java SE の有償サービスを始めた。そして、それにあわせて、従来からある無償利用のサポート期間まで変更されてしまったようだ。
サポート期間についての説明ページも改訂されている。
- Java SE & Java SE for Business Support Road Map
- http://java.sun.com/products/archive/eol.policy.html
[2011-09-05 追記] 以下の情報は記事作成当時のものです。2011 年時点の状況については新しい記事をどうぞ。
旧ルール
これまでは、メジャーバージョン単位で「最新のと 2 世代前までがサポート対象」だった。今日の時点でいうと、最新の Java SE 6 と、その前 2 世代にあたる Java SE 1.4 (Java 2 SE 1.4.x) および Java SE 5.0 (Java 2 SE 5.0) がサポート期間内。さらに前の Java SE 1.3 (Java 2 SE 1.3.x) は、Java SE 6 が出荷された 2006 年 12 月をもって EOL (End of Life) すなわちサポート期間終了を迎えたとされていた。
以下同じように、Java SE 7 のリリースで Java SE 1.4 が EOL となり、Java SE 8 が出たら Java SE 5 が EOL となる、はずだった。
新ルール
まず、サポート期間終了が EOSL (End of Service Life) という名称に変更された。その 1 年半前に EOL Notification という日付が設定されており、「もうすぐサポートが終わるから移行してね」というのを告知するという。
じゃぁ EOSL はどうやって決まるのか、というのが問題になるわけだけど、どうも、Sun が適当に決めることにしたっぽい。これまでのルールだと「Java SE 7 がリリースされたら EOL」だった Java SE 1.4 は、7 がいつリリースされるかに関係なく 2008 年 10 月 30 日で EOSL を迎える。さらに 1 年後の 2009 年 10 月 30 日には、Java SE 5 も EOSL に。現時点で最新の Java SE 6 については、2010 年に EOSL が予定されているらしい。Java SE 7 が予定通りに 2008 年夏に出るとして時系列順に並べると、
期間 | サポート対象のバージョン |
---|---|
2006/12/xx〜2008/夏 | 1.4、5.0、6 |
2008/夏〜2008/10/30 | 1.4、5.0、6、7 |
2008/10/30〜2009/10/30 | 5.0、6、7 |
2009/10/30〜2010/??/?? | 6、7 |
2010/??/??〜????/??/?? | 7 |
こんな感じ?
これってかなり痛いような。2010 年以降も使うようなシステムを今から開発する場合、使えるバージョンがないもんね。新しいバージョンに移行しましょうってのが建前なのはわかるけど、ある程度以上の規模のシステムだと検証だけでも大変だ。そういうコストが嫌な場合は、今回始まった有償サポートをご利用ください、ってことなんだろうな。
大規模なシステムだと、「すでに OS ベンダの有償サポートを受けていて、その中に JDK/JRE が含まれている」というパターンもあるだろうけど、その場合も開発者の PC にはサポート対象外の (もしかしたら既知の脆弱性のある) JDK/JRE が残ることになるだろうから、何らかの検討は必要になる。
[2008-05-25 追記] Java 7 のリリースは 2009 年夏になったみたい。id:sardine:20080525 参照。