T2FrameworkでSimpleContainerAdapterが動かない

今までサンプルの実行とPageクラスの作り方(完全なユーザー視点)くらいしか目を向けてなかったので重要なセットアップやカスタマイズ周りもう少し真面目に触ってみる。

昨日作成したプロジェクトに0.5.1SNAPSHOTのjarを上書き。これで準備は完了。



SimpleContainerAdapterというnewするだけのアダプタが実装されたようなのでそれを使ってみる。

ん・・・?サンプルがどれも動かない。


ソースを見るとregisterメソッドが呼ばれないと登録されないくさいのだが、たぶんこれが呼ばれていないのだろう。というか、登録後に取得ってことは必ずシングルトンなのだろうか?

AdapterがT2本体からどのように呼ばれるかの資料がまったくないのでとりあえず応急処置として確実に使っているであろうgetComponentを上書きする。ClassUtilのソースは追ってないけどたぶんそれっぽいメソッド名だから大丈夫かな(いい加減すぎる)。

package adapter;

import org.t2framework.commons.util.Reflections.ClassUtil;
import org.t2framework.t2.adapter.SimpleContainerAdapter;

public class SimpleAdapter extends SimpleContainerAdapter{

    @Override
    public <T> T getComponent(Class<? super T> componentClass) {
        return (T) ClassUtil.newInstance(componentClass);
    }

}

たぶん、こんな感じでいけると思う。

で、アダプターの設定は「web.xml」のフィルタのパラメータに「t2.container.adapter」というキーでクラスを登録するようだ。ここでは値は「adapter.SimpleAdapter」とした。

実行。動かない。

と思ったらあれ?動くのもある。


ソースを見るとどうやらサンプルソースはLucyに依存しているようだ。まさか一番上のHelloのサンプルが依存しているとは思わなかったのでちょっと驚いた。