@Inject仕様をGoogle/SpringSourceがJCPにドラフト提出


@Inject仕様をJCPにドラフトとして提出した模様。
どうやらSpring、Guiceだけでなく、PicoContainer、Plexus、あとTapestry IoCの人も参加するようです。


記述内容をざっと読むと、どうやらメインターゲットがJavaSEでJDK5から使えるようにしようとのことみたい。
なので、JavaEEじゃなくても使える点が好印象。非常にロウレベルなAPIを提供するんだというのが仕様全体に書かれているので、
そういうJSRはなんとなくよい気がします。


ポイントになりそうな点を幾つか。

Java SE 5 will be the minimum requirement, but Java SE 6 and 7-specific features will be available on those platforms.


APIもjavaxでなくて、もしかしたらjava.injectになるかもしれない。

2.8 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

javax.inject or java.inject


時期はEarly Draftが2009Q3、Public Reviewが2009Q4、そしてFinalが2010Q1。

2.13 Please describe the anticipated schedule for the development of this specification:

Early Draft Review would occur in Q3 '09. Public Review during Q4 '09, and Proposed Final Draft in Q1 '10.


RIとTCKについては、RIはJava7のモジュールで同梱。
TCKはASL2ライセンスか何かで誰でも試せるようにするということ。
TCKは全部そうすべきだと思う。素晴らしい♪

2.16 Please describe how the RI and TCK will be delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.:

The RI will be standalone but may also be included as a module in Java SE 7. The RI and TCK will be Apache-licensed and freely available.

2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.:

Everything will be licensed under Apache 2.0.


最後に一言ぐさり。
この仕様は前に出た仕様から学んだ教訓を元に、よりシンプルでツールで使いやすくなるってw
ちがった。
この仕様は前に出た実装(たぶんSpringとGuiceのことだろうね)から学んだ教訓を元に、よりシンプルでツールで使いやすくなるってw


3.2 Explanation of how these items might be used as a starting point for the work.

This specification will incorporate lessons learned from pre-existing injector implementations. Benefiting from hindsight, it will be simpler and more toolable.


CrazyBobさんのブログの掲載がこれ。