Jetspeed

<Jetspeed>XHTML Basic サポートのためのプロファイリングルールについて、バグに書くための内容を書き始める。3つくらい案を出して、これがいいのでは、という感じで進めようと思う。まぁ、数日中には処理されるだろう。あとは、Santiagoから、メディアタイプの処理で話が出ていたので、ちょこちょこ見てみる。CapabilityValveImplでこの辺を処理されているはずなのだが、どうも、最終的な出力結果は別なものが置き換えているように見える。J2 にこれといって置き換えているようなものも見あたらないので、Plutoのソースコードも見てみると、RenderResponse にメディアタイプがセットされると、サーブレットのレスポンスまで渡しているように見える。もしかしたら、それで置き換えられている可能性もあるが、ポートレット用に渡しているレスポンスがJ2でラップされている可能性もあるので、そこまで見ないとわからないところ。あとで、確認しよう。そういうわけで、ログイン問題は未着手。まぁ、CapabilityValveImplをLoginServletで呼べれば、ほぼ問題解決同然の気もするが。

<録画1回限り規制緩和へ>デジタル放送の録画が1回限りだったけど、不評だったから、見直すみたい。ということは、今後、発売されるものは、数回の録画ができるようになると言うことだろうか。そのときは、既存のハードウェアはどうなるのだろうか。まぁ、1回しかできないのは不便だからせめて数回できないとね・・・。

MyFaces

<MyFaces>ID が一意にならない問題の調査。最新環境では微妙に状況が違うような気もするので、その調査。そのため、何度もビルドをする・・・。1.0.9もビルドしようと思ったら、今とビルド方法が違うらしく、どうするのがよいのかドキュメントも見つからない・・・。とりあえず、jar を作ることができたので、javadocができないというエラーが出ているが無視。せめて、ソースディストリビューションにビルド手順はつけるべきなのでは・・・。そうしないと、ant の build.xml を読むしかないのだけど・・・。

<その他>別件の処理に追われる。そして、その他の作業時間がなくなる・・・。

<MyFaces>IDが一意にならない問題のバグをMYFACES-454としてあげる。まぁ、今までの状況を見ていると、これ以外にも修正する必要がある箇所がなきにしもあらずという感じもするが・・・。とりあえず、見た目的には、ID は一意になるはず。コンポーネントが UIViewRoot の createUniqueId を使ってさえいれば・・・。

Jetspeed

<Jetspeed>とりあえず、フォールバック問題については、新しいプロファイリングルールを作って、それをguestに適用しようと思う。そうすれば、影響は最小限に抑えられるだろう。ついでにモバイル用にテストユーザーを作っておこうかと思う。たぶん、これなら、みんなが妥協できる範囲であろう。次は、ログイン問題を解決しなくては・・・。これが一番問題のような気が・・・。

<MyFaces>進展はないが、Stan がTomahawkでHttServletRequestにキャストするとExceptionになると、バグをあげて通知をしていた。まぁ、ServletRequestだけではなく、ServletResponseやServletContextも取得して使うと、同様のことが起こるんだけどね・・・。ServletとPortletで共通のイターフェースを持てばそういうことも起こらないのかもしれないけど、そうではないので、どう実装するか悩ましいんだよね。多くの場合は、キャストできる場合が多いと思うが、できないポータルサーバーもあるしね。っで、どうすればいいかを考えてみると、

private static final Class ARGS = new Class {String.class};

Object context = FacesContext.getCurrentInstance().getExternalContext().getContext();

Method method = null;

try {

method = context.getClass().getMethod(“getAttribute”, ARGS);

} catch (NoSuchMethodException ex) {

throw new RuntimeException(ex);

}

try {

String hoge = method.invoke(context, new Object [] {“hoge”});

} catch (IllegalAccessException ex) {

throw new RuntimeException(ex);

} catch (InvocationTargetException ex) {

throw new RuntimeException(ex);

}

っていうコードを書けば、ServletもPortletにも依存しなくても済むわけだね。今後は、このコードを使うようにしよう。

<grub>FedoraとWindowsのデュアルブートにしていたのだけど、Windows XP を後から入れたため、既存のgrubが上書きされてしまった・・・。というわけで、grubをインストールせねばならない。

1.rescueモードで起動

2.chroot /mnt/sysimg

3.grub-install /dev/hda

で無事解決。

<Jetspeed>ログイン問題を考える。JSR 154 の SRV.12.5.3.1 なども確認して、何で LoginServlet にリダイレクトしているのかがわかった。要は、login/login にフォームベースの認証を書けているから、そこに行かないと認証が実行されないためやね。というわけで、どうするのがいいのかね・・・。今考えているのは、XHTML Basic では、ログインポートレットをやめて、LoginServlet へのリンクを表示するようにする。そんで、LoginServlet では、メディアタイプによってディスパッチする必要がある。つまり、LoginServlet は、仕組み的に変更が必要と言うことだ。問題は、メディアタイプをうまいこととれるか、ということだろうか。J2 のパイプラインからその部分だけを使い回せればよいのだけど。