Teeda の今後

某巨大掲示板にちょっと書かれてたので Teeda の今後について書いておきます.


まず,Teeda1.1 について.
従来,Teeda のロードマップトしては Teeeda1.1 で JSF1.2 に対応するということになってましたが,この計画はキャンセルとなりました.
1.0.12 リリースの際に Web サイトのロードマップからも削除しちゃってます.
今後「自分がやる」と手を挙げる人が出てこない限り,Teeda が JSF1.2 に対応することは (おそらく) ありません.
つまり,Teeda Core が JSF 実装して発展していくことは (おそらく) ないということになります.


しかし,Teeda Extension としての熟成は進めていきます.
Teeda Extension は 1.0.11 で多数のバグを潰して,その後も 1.0.11-SP4 まで bug fix 版をリリースしたことで,懸案だった品質面で相当に改善できたと考えています.
そして今週リリースした 1.0.12 ではネストした forEach の更新や generics 対応など,細かな機能の改善を多数行いました.
次の 1.0.13 以降は,より大きな新機能の追加なども進めていく予定です.
JIRA の用語でいうと,1.0.11 では Bug,1.0.12 では Improvement に取り組んできて,1.0.13 からは New Feature に取り組んでいくということです.


現時点では,次の New Feature を考えています.

  • ファイルアップロード対応
  • Forward 対応
  • ネストしたプロパティ対応
  • forEach での変数対応

これらは全部まとめてリリースとは限らなくて,できたものから順次リリースになるかもしれません.


ファイルアップロードは,従来は MyFaces Tomahawk のコンポーネントを使い,JSP 的な記述をする必要がありました.
1.0.13 からは Teeda 独自のコンポーネントを提供することになり,HTML テンプレートは通常の HTML のように

<input type="file" id="uploadedFile" />

と書くことができるようになります.
ページクラスには org.seasar.teeda.extension.util.UploadedFile 型のプロパティを持たせます.

public UploadedFile uploadedFile;

これだけでアップロードされたファイルを受け取ることができるようになります.
Converter を指定するとアップロードされたファイルを UploadedFile ではなく byte[]StringInputStreamFile で受け取ることもできます.
UploadedFile クラスや web.xml のフィルタの設定は Tomahawk とほぼ揃えてあるので,移行も簡単なはず.
既に主要な部分は動いていて,来週には rc1 を出したいな,と.


Forward 対応は携帯向けの用途で要望が出ていたもの.
現在の Teeda Extension は画面遷移で PRG パターンを使っていますが,それに加えて Forward による画面遷移も可能にしたいな,と.


ネストしたプロパティは S2JDBC の登場で需要が増えそうなもの.
現在の Teeda Extension はページクラスの直接のプロパティしか扱えませんが,プロパティのプロパティなど,ネストしたプロパティも扱えるようにしようと考えてます.
例えば,

<span id="dept.name">部門名</span>

のようにドット区切りでプロパティを指定できるようにしたいな,と.


forEach の変数対応は

<table id="employeeItems" te:var="e">
 <tr><td><span id="e.name">従業員名</span></td></tr>
</table>

のようにできるようにすることを考えてます.
この場合,繰り返しの中 (e.name) ではページクラスのプロパティではなく,employeeItems の要素である Employee のプロパティが使われます.
従来,forEach では繰り返しの Dto (やエンティティ) のプロパティをページクラスにもプロパティとして持たせる必要がありましたが,これでその必要を無くそうという次第.
従来の仕様に不満を感じていた人は多いと思われるので,実現すると喜んでもらえるんじゃないかな.
te:var を指定しない場合は従来通り,ページクラスのプロパティを使用します.


後の 3 つはまだ構想だけで,互換性を保ちつつ実現可能かとか不確定要素もありますが,何とか対応していきたいな,と.


そんなわけで (どんなわけで?),Teeda もまだまだ発展していく予定です.
Teeda は軽量なフレームワークでも見通しがいいフレームワークでもないけれど,その分フレームワークの上にフレームワークを重ねたりする必要のない (Teeda 自身が二層構造なんだけど),out of the box で sophisticated なフレームワークとして存在価値があるんじゃないかなと思ってます.
まぁ,一歩足を踏み外すと JSF が顔を出して sophisticate とはいかなくなってしまうのが難点ですが.(^^;


もちろん,Teeda 最大の課題であるドキュメントも強化していきますよ.
大谷さんが日記上でチュートリアルに取り組んでますが,自分の方では Teeda の主要な概念を説明するドキュメント (8 割方完了)と,逆引きリファレンス的なもの (未着手) を揃えていく予定.


今具体化してるのはこんなとこかな.