ポートレットとしては、使うことはないと思うのだが、S2 の実装でどうするべきなのか、いまいち、判断に悩むので、実装について調べてみる。JSR 168 はインクルードされたサーブレット/JSP では、getProperties に基づくみたいな感じで書いてあるくらいなのだが、実際に、getPropertiesしてどうとるのかがわからん。何かキーを渡すととれるのか??PlutoとJetspeed2の実装を見ても、getPropertiesして、とれる雰囲気じゃないんだけど。あとは、Sunの実装を見るくらいかな・・・。というわけで、とりあえず、S2 では空のマップを返すのがよさそう。
S2PortletからS2へ
とりあえず、移して、ExtenalContextにメソッドを追加した。追加するにあたって、クッキーをどうするかをちょっと迷った。ポートレットでは、基本的にはアクセスしないからな・・・。というわけで、JSR 168 を再確認すると、インクルードしたサーブレット/JSP でアクセスされるときには、getPropertyからとるみたいに書いてあるから、RequestHeader~と同じにしておいた。ビルドできるようになったら、コミットしておこう。
ビルド失敗?
S2 をビルドしてみたのだが、まだ、ビルドはできないのかな??
$ svn co https://www.seasar.org/svn/s2container/trunk/seasar2/ seasar2 $ cd seasar2 $ mvn install ... /tmp/seasar2/s2-framework/src/test/java/org/seasar/framework/container/impl/servlet/ServletRequestParameterValuesMapTest.java:[18,33] パッケージ org.seasar.extension.unit は存在しません。 /tmp/seasar2/s2-framework/src/test/java/org/seasar/framework/container/impl/servlet/ServletRequestParameterValuesMapTest.java:[24,58] シンボルを見つけられません。 シンボル: クラス S2TestCase public class ServletRequestParameterValuesMapTest extends S2TestCase { /tmp/seasar2/s2-framework/src/test/java/org/seasar/framework/container/impl/servlet/ServletRequestParameterValuesMapTest.java:[27,41] シンボルを見つけられません。 シンボル: メソッド getRequest() 場所 : org.seasar.framework.container.impl.servlet.ServletRequestParameterValuesMapTest の クラス /tmp/seasar2/s2-framework/src/test/java/org/seasar/framework/container/impl/servlet/ServletRequestParameterValuesMapTest.java:[32,8] シン ボルを見つけられません。 シンボル: メソッド assertNotNull(java.lang.Object) 場所 : org.seasar.framework.container.impl.servlet.ServletRequestParameterValuesMapTest の クラス /tmp/seasar2/s2-framework/src/test/java/org/seasar/framework/container/impl/servlet/ServletRequestParameterValuesMapTest.java:[33,8] シン ボルを見つけられません。 シンボル: メソッド assertTrue(boolean) 場所 : org.seasar.framework.container.impl.servlet.ServletRequestParameterValuesMapTest の クラス /tmp/seasar2/s2-framework/src/test/java/org/seasar/framework/container/impl/servlet/ServletRequestParameterValuesMapTest.java:[35,8] シン ボルを見つけられません。 シンボル: メソッド assertEquals(int,int) 場所 : org.seasar.framework.container.impl.servlet.ServletRequestParameterValuesMapTest の クラス /tmp/seasar2/s2-framework/src/test/java/org/seasar/framework/container/impl/servlet/ServletRequestParameterValuesMapTest.java:[37,8] シン ボルを見つけられません。 シンボル: メソッド assertEquals(java.lang.String,java.lang.Object) 場所 : org.seasar.framework.container.impl.servlet.ServletRequestParameterValuesMapTest の クラス ...
と言われてしまった。framework が extension に依存する??