-Tapestry-S2連携再考(1)

agtさんのBLOG(アガテナ)WebWork2とS2Containerの連携について示唆的な実装をみせてもらいました。WebWork2は不覚にも名前しかしらないので、その拡張方法を見るだけで判断してますが、Actionインターフェイスの実装クラスのルックアップ時にファクトリパターンでフックできる機構がWebWork2にあらかじめあるらしい、なるほど。TapestryにおけるAction代替物はおそらくIPageだと思うのですが、これはTapestryではいきなりユーザーがインターフェイスを実装するのではなく、結構な内容が実装されたBasePageクラスを継承するのが一般的な方法です。過日説明してみたTapestryとS2Containerの連携はBasePageを継承してGlobalオブジェクトからS2Containerを取得するところと、OGNL式で簡便にアクセスする方法を試みました。おそらく、しごく直感的な実装かと思います。しかし、結局S2Containerへの意識は常にユーザーにさせているわけです。
ここで、Tapestryのユーザーが採用する開発手順を思い描いてみると、IPageのところにS2Containerとの連携の実装を載せると、どうも良くない。TapestryエンジンのカスタマイズでS2Containerを用意するのはいいかと思うのですが、こちらもGlobalオブジェクトを使っちゃうのがどうも良くないです。
ということで、データマイニングしてサービスROI評価レポートを書く仕事の傍ら、黙考中。IPageRecorderつかうかな?