Hatena::ブログ(Diary)

yvsu pron. yas このページをアンテナに追加 RSSフィード

2004-12-01

S2JSFの今後

別にSeasar2に依存しているのは、早く作るためですが、今後は、S2JSFとプロトタイプMayaは完全に切り離します。S2JSFは、それで完結した実装系になります。

Maya EA1の状況

Maya EA1をまさたかさんにだけ一応公開。

まるおさんもどのメールアドレスに送ればいいのか分からなかったので送ってませんが、教えていただければ送ります。

正式に公開しなかったのは、SourceForgeにも公開しました。HTMLの文字がJSFのタグを追い越す問題はまだ解決していないんですが、多くの人の意見を聞きたかったので公開しました。

どういうことかというと

<a m:inject="h:outputLink" href="hello/hello.html" m:value="hello/hello.faces">あいさつ

<span m:inject="f:param" m:name="message" m:value="World"/>

</a>

のようなHTMLがあったときに、

あいさつ

<a ...></a>

のようにJSFのタグ以外の要素がJSFのタグよりも先にレンダリングされてしまう問題です。

http://localhost:8080/s2jsf-example/index.facesアクセスすると確認できます。

ファーストインプレッション

MayaS2JSFを組み合わせてみました。

今試したのは、単純にJSPの変わりにMayaを使う方法。*.htmlをMayaServletに割り当て、*.facesをJSFデフォルト拡張子を.htmlと指定すると、hoge.facesにリクエストがあると、JSFが処理をした後に、拡張子を.htmlに変えて、Mayaにforwardしてくれます。

JSPと同じ形なのですが、前のS2JSFになれた身にはかなり使いづらい。

ブラウザアドレスバーやanchorタグにも*.facesとしなければいけないのです。facesの指定は任意の拡張子を選べるのですが、htmlってやはり指定したい。

ブラウザで直接プレビューするときは、*.html指定じゃないと困ります。

もうちょっと、考えてみるかな。

Strutsと使う分には、上記の方法ですね。

S2JSF EA3の予定

S2JSF EA3は、Mayaベースの実装に変わります。

これまでは、HTMLからJSFコンポーネントツリーを作っていたのですが、Mayaベースになると、HTMLからJSPのタグツリーを作る感じになります。

Mayaの部分は、プロトタイプ的なもので、Maya仕様のうち、S2JSFとして必要な部分を実装したものです。

使う側から見ると、主な違いは名前空間くらいです。

S2JSF EA2

xmlns:s="http://www.seasar.org/jsf"

<span s:value="#{hoge.aaa}"/>

S2JSF EA3

xmlns:m="http://www.seasar.org/maya"

<span m:value="#{hoge.aaa}"/>

Mayaに話を移すと、仕様では、JSPと同様にServletソースを吐いて、コンパイルすることになっていますが、ソースのサイズが大きくなるとコンパイルできなくなる問題に悩まされたり、コンパイルの遅さにむかついたり、Jasperと同じことをするのも芸がないなぁという思いがあって、Servletに変換するのでなく、オンメモリでタグツリーを作る方式に変えてます。

S2JSFと似た構造ですね。

masataka_kmasataka_k 2004/12/01 12:42 実装状況どうですか?モノみれるならドキュメント書くうえであわせるところあわせるので。

higayasuohigayasuo 2004/12/01 13:26 S2JSFとの最も単純な組み合わせが、動いたらひとまず送りますね。それは、遅くても今週中には出せます。

masataka_kmasataka_k 2004/12/01 20:18 JSFと組み合わせるときは、Mayaのエンジンだけもってきて、ViewHandlerに載せる感じじゃないかなと思います。Antタスクに載せたり、Eclipseプラグインに載せたりするので、ServletとMayaエンジンは分離可能に実装したいと思います(Cocoon2.xがそうなんですよ。Cocoonにもインスパイアされています)。

higayasuohigayasuo 2004/12/01 21:00 MayaのエンジンとServletは切り離されています。

masataka_kmasataka_k 2004/12/02 01:30 配慮ありがとうございます。私のほうのBLOG見直してみましたが、ちょっとうまく真意がつたえられてないんですけど、ひとつゼロから起こすプロジェクトなので、違うプロセスでやりたいと思ってるのです。私が思うのは、やっぱり一人で抱え込んじゃうとつらいんですよ。うまーく抱え込まないように、しかし最高の成果がだせるようにってのが、目指すところです。オープンソースですし、もっというと、うまくいってる例がすくないところにチャレンジするんですもの。ひがさんのフレーズでいうと「歴史を変えよう」としているわけです。文言辞令粗雑で気分害していたらすいません。

higayasuohigayasuo 2004/12/02 06:54 使う側にとっては、Pluginによるサポートが受けられるなら良いと思ってます。
Mayaしかサポートされないなら困るかも。