JSR 168 から何が変わるのか、変更点をメインに確認していこう。
PLT.1.4 Other Java™ Platform Specifications
- Java 2 Platform, Enterprise Edition, v1.4 (J2EE™)
- Java Servlet™, v2.4
- JavaServer Pages™, v2.0 (JSP™)
- The Java™ Architecture for XML Binding (JAXB) 2.0
JAXB は変わらないけど、そのほかが以上のバージョンを利用するようになる。
PLT.2.5 Compatibility
JSR 168 のポートレットも動くよ、っといっている。つまり、バイナリコンパチ。
PLT.2.6 Major changes introduced with V 2.0
新機能についてはまとめてある。
- Events – enabling a portlet to send and receive events and perform state changes or send further events as a result of processing an event.
- Public render parameters – allowing portlets to share render parameters with other portlets.
- Resource serving – provides the ability for a portlet to serve a resource.
- Portlet filter – allowing on the fly transformations of information in both the request to and the response from a portlet
前からいわれていたことだね。Shared session attributes とかもあったけど、なくなっているな・・・。Public render parameters でカバーできるということなのだろうか。まぁ、そのほかは、Event は他とやりとりするイベント処理メカニズムだし、Public render parameter は他とrender parameter の共有(ウェブアプリケーションの範囲を越えられるのだろうか?)、Resource serving は、現状では、ウェブアプリ経由で画像とかにアクセスしていたのをポータル経由にする(ことだった気がする)、ポートレットフィルタはサーブレットフィルタみたいなフィルタのことね。
PLT.2.6.1 Clearifications that may make V1.0 Portlets Noncompliant
まず、ポートレットURLが 2.0 では、XMLエスケープされるとある。それに伴い、javax.portlet.escapeXml というものがあるらしい(PLT.26.7を見ろとある)。
ポートレットのparamタグで、同じ名前のparamタグを複数使った場合、配列になるとある。1.0 のときは、最後のやつが有効になるのを想定していたので、異なる動きになるようだ。
1.0 では getProtocolでnullが返ってきたけど、2.0 からは GenericServet で値を返してくるらしい。HTTP/1.1 とか。
ポートレットURLにあるパラメーターとPOSTの本文内のパラメーターがマージして取得できるようだ。(ということは、URLにパラメータを書けば得られるのだろうか・・・J2だと、jetspeed-portlet.xmlで設定すれば取得可能だけど)
PLT.2.6.3 Changes to the Programming Model
portlet.xml にxml:langでローカライズされていたものを書けていたけど、リソースバンドルにいろいろと記述できるようにしたといっている。まぁ、私的にはportlet.xmlに書けて楽だったけど、全部、リソースバンドルに移したら、移したで面倒なんだよね・・・。英語圏の人からすると、portlet.xml にごみがちらかって、嫌だったんだろうな・・・。
- PLT.2.7 Relationship with Java 2 Platform, Standard and Enterprise Edition
Java SE 5 だといっている。まぁ、予定通り。Java SE 1.4 でも利用はできるけど、次のものができないといっている。
- enum P3PUserInfos
- annotations ProcessAction, ProcessEvent, RenderMode
- generics for collections
とりあえず、今日はここまで・・・