原文はこちら。
https://blogs.oracle.com/theaquarium/entry/a_new_cdi_scope_in
MVC Expert Group (JSR 371) がリダイレクトをサポートするために、新たなCDIカスタムスコープ ( @RedirectScoped ) の導入のプロセスを進めているので、新しいCDIスコープがJava EE 8に導入される予定、ということをこの段階でお伝えしても大丈夫でしょう。
最後に、JSR371は早期ドラフトレビューの期間中ですので、フィードバックをお忘れなく(訳注:原文に則していますが、実際には早期ドラフトレビュー期間は終了しているので、おそらくこれから始まる早期ドラフト2のことを意図しているのでしょう)。
https://blogs.oracle.com/theaquarium/entry/a_new_cdi_scope_in
MVC Expert Group (JSR 371) がリダイレクトをサポートするために、新たなCDIカスタムスコープ ( @RedirectScoped ) の導入のプロセスを進めているので、新しいCDIスコープがJava EE 8に導入される予定、ということをこの段階でお伝えしても大丈夫でしょう。
JSR 371: Model-View-Controller (MVC 1.0) Specificationこの考えはシンプルなものです。MVCコントローラがクライアントを特定のURL、特定のコントローラメソッドにリダイレクトすることを決定できる、というものです。典型的な例として、匿名ユーザーがログインが必要なページに出くわしたときに、コントローラがユーザーをログインページにリダイレクトする、というものです。これを実現するために、コントローラはHTTP 302(moved temporarily / 一時的に移動した)のステータスコードを使ってクライアントに対し、に対し異なるURLや異なるコントローラへの新たなリクエストを作成するよう依頼します。その2個目のリクエストは新たな(そしてそれゆえに異なる)リクエストーレスポンスサイクルになります。
https://jcp.org/en/jsr/detail?id=371
[jsr371-experts] [MVC_SPEC-40] @RedirectScoped
https://java.net/projects/mvc-spec/lists/jsr371-experts/archive/2015-08/message/49
302 Foundそしてこれがこの新たな @RedirectScoped スコープの"raison-d'être"(存在理由)です。つまり、2個のリダイレクトのリクエストーレスポンスサイクルの間で状態を維持することを許容するためです。ご注意頂きたいのは、この新たなスコープはMVC APIのみを対象にしている、ということです。この新スコープは "Flash scope"と呼ばれることもあります。リダイレクトの仕組みと @RedirectScoped の動作の仕組みは以下のリンクから確認していただけます。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3
sources / test / redirectScopeこの新スコープのすばらしい点は、新たなCDIカスタムスコープに過ぎない、というところです。これはJava EEプラットフォームが自身の基盤を利用して進化している、という格好の例です。
https://java.net/projects/ozark/sources/sources/show/test/redirectScope?rev=9ed86e485c3adc92ac6a56c70eba9c7d943a6e0e
最後に、JSR371は早期ドラフトレビューの期間中ですので、フィードバックをお忘れなく(訳注:原文に則していますが、実際には早期ドラフトレビュー期間は終了しているので、おそらくこれから始まる早期ドラフト2のことを意図しているのでしょう)。
MVC 1.0 (JSR 371) Early Draft Review period has started!
https://blogs.oracle.com/theaquarium/entry/jsr371_edr