-JSPとJSFとTapestryとSeasarとStrutsとS2JSF
JSPとJSFとTapestryとSeasarとStrutsの位置関係をホワイトボードに書いて、ウチのかとちん氏(S2DaoMaker)佐々木君、林さん(コミュニティ未登場、Tapestryの使い手)にS2JSFを説明。たぶん世の中の多くの方がこれらの位置関係をよくはしらないと思います(私はまだJSFについて知らないこと多い)。JSPとStrutsとSeasarはキャラが立ってますが、JSFとTapestryが知られてないのでしょう。ハロウィーン文書を近日作るとして、私は近い将来の最強の組み合わせは、次々世代Tapestry(妄想)+JSF+S2JSF-EL+Seasar2.1+S2Daoと考えるようになりました。が、TapestryのJSF対応がまだかけらも無い上、意外に「コミュニティが閉鎖的」なので、現実解がS2JSF-HTMLTemplateを鋭意開発することになると思います。
ここで指摘しておきたいのは、S2JSFはモノシリックな製品ではなく、本質は二つの製品なのです。誰も言わないけどこれ大事。JSFのコンポーネントツリーのユーザー側であるS2JSF-HTMLTemplateと、コンポーネントツリーの背後のドメイン層におかれたSeasar2.1とテンプレート中のユーザーコードとをつなぐ、S2JSF-ELとでも呼ぶべき製品です。で、S2JSF-ELはSeasar2.1とも併せて完成しています。S2JSF-HTMLTemplateはこれからです。ということで、今日時点ではJSP+JSF+S2JSF-EL+Seasar2.1+S2Daoでソリューションでしょう。もしくはJSP+JSF+Struts+S2Struts+Seasar2.x+S2Daoかな。
Kariyushiと名づけた勝手ローカルR&Dをやりながら各実装を眺めて思ったのです。S2JSF-HTMLTemplateは以下の方向だと私的には素敵だと思う。
- TapestryはHTMLテンプレート部分とそのコンポーネント化について一日の長以上に凄いのでしっかり盗む(注:コードはそこそこ。実装の再利用性は少ない。しかしインターフェイス等の配置設計は良いと思う)
- 式言語はOGNLで行くといいかもしれない。仕様はELで定められてるが、すでにテンプレートエンジンを丸ごと変えてもいるのでわざわざ機能が落ちるELでやる必要はあまり無い。DiconもOGNLだし
- S2JSF-HTMLTemplateとS2JSF-ELにきっちり分けて、依存部分を局所化し、それぞれJSF本体の実装に依存しないようにする
- テンプレートエンジンとコンポーネントフレームワークとそのSDK&文書をしっかりと作って、Renderer群はみんなに作ってもらう
- もしくは、JSFタグをそのまま使えるようにする(この場合はコンポーネントモデルがJSPタグフレームワークになるのでちょっとネガティブですが。。。)。
で、Kijimuna的S2JSF対応およびSeasar3の基礎技術と勝手にしたいと考えているKariyushiの要件は上記の思索の中から固まってきたのですが、実装技術が再度見えなくなってしまいました。もうしばらくローカルR&D進行で。