JSR 371(MVC 1.0)Early Draftリリース&簡単に解説。
JSR 371 (MVC 1.0)はこちら
リリース予定
- Q3 2014 Expert Group formed
- Q1 2015 Early Draft ★今はココ!
- Q3 2015 Public Review
- Q1 2016 Proposed Final Draft
- Q3 2016 Final Release
MVC 1.0に限らず、Java EE 8の各技術はだいたいこんな感じのスケジュールのようです。
MVC 1.0は、Q1 2015ギリギリの3月31日でした。
Security APIは間に合わなかったのかな・・・。
The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 375
ゴールとするもの・しないもの
上記のJSRには冒頭に、ゴールとするもの・しないものが明記されています。
ゴールとするものは、下記の5つです。
(あんまり英語得意じゃないので、厳密には正しくないかもしれません^^;)
- Java EEの既存技術を活用する。
- CDIおよびBean Validationと統合する。
- 最初のバージョンでは、MVCアプリケーションのコアを提供し、すべての機能は必ずしもサポートしない。
- JAX-RS上で動かす。
- JSPとFaceletsのビュー技術をサポートする。
逆に、ゴールとしないものは、下記の4つです。
- 新しいビュー技術は定義しない。
- Java EE外で、スタンドアロンで動作するMVCはサポートしない。
- JAX-RSベースでないRESTはサポートしない。
- Java EEでないビュー技術はサポートしない。
要するに、既存のJava EE技術を最大限に活用して、新たに仕様を策定する部分は最小限に留める、と僕は解釈しています。
これは、個人的には非常に賛同します。Java EEは既に膨大な仕様の集まりになっているので。
Ozark独自の拡張機能
https://github.com/spericas/ozark/tree/master/ext
JSP・Facelets以外の、ThymeleafやVelocityなどのビュー技術は、Ozark独自の拡張機能として提供されています。
具体的には、javax.mvc.engine.ViewEngineというインターフェイスがあり、それを実装してXxxViewEngineというクラスを作ることで、各ビュー技術をサポートしています。
JspViewEngineやFaceletsViewEngineは、Ozarkに含まれています。
サンプルコード
MavenからWARでダウンロードして、そのままGlassFishにデプロイすれば動きます。
GroupIdが「com.oracle.ozark.test」のものが、MVC 1.0を使ったサンプルプログラムです。
The Central Repository Search Engine
GitHubにソースもあります。
https://github.com/spericas/ozark/tree/master/test
動かないサンプルとバリデーション方法
動かなかったのは、validationのサンプルです。
動くには動くのですが、バリデーションで引っかかるような入力をしてSubmitすると、例外画面になってしまいます。
ozark/FormController.java at master · spericas/ozark · GitHub
ValidationResultというのが、検証結果を保持する役割を持っているのですが、あらためて、現時点のOzarkのソースコードを一通り確認すると、そのValidationResultに検証結果を詰める処理が、まだ未実装のようでした。
まだEarly Draftなので、これからに期待ですね。
また、現時点のJSRには、検証結果のエラーメッセージをどのようにJSPなどのビューに表示させるかは、まだ明記されていません。
ということで
まだまだ未実装の部分はありますが、これからに期待ですね!引き続きウォッチします。