2015/04/15 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Javaの仕様が決まるとき】JSRの歩き方(基本編)

【Javaの仕様が決まるとき】JSRの歩き方(基本編)





Javaでのプログラミング、特にJava EEを用いたコーディングとかをしていると、
僕は「あれこれってどういう仕様なんだろう」ってなることが結構あります。




「なんか良い本無いですか?」

某氏「JSR読め」



ほほーそっか。仕様そのもの読んじゃえば間違いはないよな、と。


だがしかし、読み方がよく分からない!っていうか仕様ってどうやって決まってるの?
Java公開されてるの?

…とかそういう僕はレベルだったので、これを期に、Javaの仕様である(定義間違ってたら教えて下さい)
JSRあるの読み方を調べてまとめてみようかなというお話です。

調べたっていうレベルですので、間違ってたり表現が適切で無い場合は、
どこかでご指摘ください。




・JSR
Java Specification Request。Java仕様要求。つまりJavaの仕様です。

・JCP
Java標準化機関JCP(Java Community Process)

・RI
参照実装(Reference Implementation)。 JSRを満たしたお手本の実装といったところかな。?

・TCK
Technology Compatibility Kit。 TCKは、JSRの
特定の疑惑の実装をチェックするテストのスイートです。






・Specification Leads
JSRを推進していく人

・Expert Group
専門グループ。JSRをどのチームが手がけていくか。

・Executive Committee(執行委員会)

JSRの投票権を持っている。JSRの決定機関という感じなのかなぁ。


・JCPメンバー
Java Community Processのメンバー。JSRの投票権を持っている。
※投票権を持っているのはExecutive Committee(執行委員会)の人のみのようです。
メンバーはコミュニティ内での発言権を持っているとのこと




JSRで投票されて、草案が通ること。その後スペックリードが頑張って、
エキスパートグループでRIを作ってTCKでテストを通す。それをレビューして通過すればおっけー。





Java SEとJava MEとJava EE。





◆JSRレビュー(JSR Review)

JSRが、コミュニティのメンバーによって開始され、Executive Committee(執行委員会)によって開発が承認されます。

◆初期ドラフトレビュー(Early Draft Review)

JSRが承認されると、エキスパートグループは、ネットを介して誰でも確認し開発することが出来る仕様の初期草案を形成します。

◆公開レビュー(Public Review)

JSRをネットを介して誰もが読んで、草案にコメントすることができる、パブリックなレビューです。
エキスパートグループは、フィードバックを受けて、さらに文書を改訂します。

◆最終草案(Proposed Final Draft)

RIおよびTCKの基礎として使用されるドラフト仕様のバージョンです。


◆最終リリース(Final Release)

エキスパートグループのリーダーは、リファレンス実装とそのTCK(関連技術の互換性キット)は、
最終的な承認のためにExecutive Committee(執行委員会)への仕様を送信する前に完了していることをチェックしている必要があります。

◆保守レビュー(Maintenance Review)

完成した仕様、リファレンス実装、およびTCK(テクノロジ互換性キット)は、
説明、解釈、拡張、および改訂に関する要求に応じて更新されます。


◆アクティブ(Active)

直近12ヶ月以内にJCPのマイルストーンの草案を掲載しているJSRのことです。

◆非アクティブ(Inactive)

最終リリースをしておらず、直近12ヶ月でJCPマイルストーンのドラフトを投稿していないJSRです。

◆休止(Dormant)

JSRは、以下の場合に休止状態になります。

・非アクティブの延長期間を持っていた
・JSRが非アクティブの延長期間の後にExecutive Committee(執行委員会)が休止として投票されたとき
・スペックリードと保守リードが、存在しない



◆取り下げ(Withdrawn)

スペックリードが最終リリースを行う前にJCPから取り下げられたJSRです。


◆拒否(Rejected)

JSRレビュー時のExecutive Committee(執行委員会)によって否決されたJSR、ドラフトの承認、または最終承認投票用紙。


https://www.jcp.org/en/procedures/overviewより引用







JSRがJava標準になるまで--JCP Executive Committeeが来日
JSRs: Java Specification Requests List by JCP Stage
JSRs by Platform





今回はJSRの整理としてそれにまつわる情報や用語、JCPのレビューとかそこらへんを
まとめてみました。

ぼんやりとスペックリードがどうのこうのとか、アーリードラフトだから…という話を
右から左に受け流していた僕ですが、なんとなく分かってきたかなぁと思います。


とりあえずこれでJSRを読む前提知識はついた(と思う)ぞ。

本題としては、Original Java Specification Request (JSR)が読めるようになることが
ゴールかなと思うので、そこはまた別のエントリで書きたいなと思ってます。

JSR330とか気になる年頃です。











JJUG CCC 2014 fallでmakingさんとmiyakawa_takuさんのセッション資料にほぼ全て網羅されていた!
僕はこの時Java女子部の発表を見てた気がするな〜。今更ながら勉強になる。






skrbさんに教えていただいた。投票結果もみれるとのこと。




mike_neckさんに教えてもらいましたが、JEPなるものもあるようで。
どうやら、JSRほどJavaの仕様には直接関係しないようですね(全く関係しないとは思いませんが、、)。

そのあたりも上のスライドでは触れられていました。

Open JDKのJEP(JDK Enhancement Proposals)

0 件のコメント:

コメントを投稿