いい意味でRailsにJavaから挑戦みたいな
The Apache OpenEJB community has released OpenEJB 3.1. OpenEJB is an embeddable, lightweight EJB 3.0 implementation with partial support of EJB 3.1 that can be used not only as a standalone server, but as an embedded server in Tomcat, JUnit, Eclipse, Intellij, Maven, Ant, or any other IDE or application.
OpenEJB 3.1がリリースされたみたいですね。EJB 3.1の仕様もフィックスされていないのに、それを部分的に取り込んで、リリースするなんてどうよと思うけどね。ちょっとあせりすぎでしょう。
とはいえ、これは、EJB 3.1の仕様をいち早く実装することで、EJB 3.1界をリードしたいという願いがあるからでしょうね。他にもいろんなところが参入して、超レッドオーシャンの予感。
Slim3では、もうコンテナ(DIやAOP)にはこだわっていません。この辺は、DIContainerはコモディティ化する - yvsu pron. yasのエントリで書いたとおりです。Slim3の各プロダクトは、任意のコンテナ上で使えます。
ユーザ(コンテナを使う開発者、あるいはエンドユーザ)がどのように感じるかは、まだわかりませんが、すくなくてもコンテナの開発者側は、EJB 3.1に向かうんでしょうね。
ただ、完全にEJB 3.1で決まりかというとそんなこともないと思っています。何が重要化というとHOT deploy。
HOT deployとはソースコードを変更したときに、Webアプリケーションを再起動(再デプロイ)することなく、即座にその変更を認識する機能で、スクリプト言語のようなさくさく感のある開発を可能にします。
今のEJB 3.1は、HOT deployのことがまったく考慮されていないので、それが次の焦点になるでしょう。
EJB 3.1が出てきたからといって、Seasar2のユーザは心配する必要はありません。EJB 3.1でできることは、Seasar2とその周辺プロダクトを組み合わせれば実現できるし、Seasar2のほうが、HOT deployのアドバンテージがあります。
また、ぽっと出のEJB 3.1より、Seasar2のほうが使い込まれているので安心して使えます。OSSのサポートもずっと続くし、弊社の商用サポートを利用していただくと、7年間サポートが受けられます。
後、こばやしさんにアドバイスもらったんだけど、Slim3 Containerは、EJB 3.1の実装に向かうんじゃなくて、HOT deployを全面的に押し出したスーパーウルトラアジャイルなコンテナ(こばやしさんは、スーパーウルトラアジャイルなんて言い方はしないです。)を目指した方がいいかもしれない。アノテーションは、標準のものを使うけどね。ただし、EJBじゃないからStatelessやEJBアノテーションは使わないみたいな。
で、さくさくっと作る部分は、Slim3で開発して、既存の機能やEJB 3.1ならではのナイスな機能があれば、SpringやEJB 3.1のコンポーネントと@Resourceで連携するようにするとか。
アジャイルに開発したいところはSlim3で、それ以外はSpringやEJB 3.1を使うみたいな開発。