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 のパイプラインからその部分だけを使い回せればよいのだけど。

Jetspeed

<Jetspeed>フォールバック問題をどうするか悩む。Randy は / を _mediatype にするのはどうだろうかと提案していたのでいいのかと思ったら、結局のところ、それをデフォルトにするのは反対なんじゃん・・・。日本以外では、対して、携帯でアクセスするのは求められていないのかもね・・・。Randy以外は反応薄いし・・・。しかし、だからこそ、何とか変えてやらねば・・・。という感じなので、どうしたものだろうかと。最低限、guestユーザーには新たなプロファイルルールが必要と考えているが、現状のものを維持しながら、それをサポートするにはどういうものがいいのか、検討中・・・。良い考えがあれば是非ください・・・。はて、ログイン問題もどうしようか・・・。

<Mavenプラグイン>日本語用のMavenプラグインを提供するため、SourceForge.jpでMavenプラグインを運営しているが、今月号のJava Worldを見ていたら、何と、簡単であるが、紹介されている・・・。がしかし、最近、このプラグインは更新していない・・・。確か、1.0-rc1 か rc2 あたりまで対応していないと思う。最新の環境では、依存関係の問題でエラーになったりもしたような・・・。というわけで、紹介して頂き大変ありがたいのですが、1.0.2 とかでは動かない可能性が高いです・・・。時間があれば、すぐに更新するんだけど・・・。

<MyFaces>Stan から特にアップデートがないな・・・。来週の月曜日になっても、特に反応がなければ、メールを出してプッシュしよう。あとは、UIViewRootでcreateUniqueId()が複数のポートレット環境で動かない問題も、バグを確認したけどあがっていないので、後であげよう。一応、パッチも作ったので、そのテストをしないといけないのだが。

Jetspeed

<Jetspeed>Randyによって、プロファイルのルールが変えられてしまった・・・。というわけで、現状の問題点をあげるために、プロファイルのフォールバック問題とログイン問題のバグを登録。どちらも、まだ、良い解決策はない。たぶん、私の方からアイディアを出さないことには、改善されていかないような気もする・・・。うーん、修正方法を考えなければ・・・。

<MyFaces>どうやら、UIViewRootのcreateUniqueIdがだめなせいか、ポートレットとして利用する場合には、IDがユニークにならない。ポートレットでは、RenderResponseのgetNamespace()を利用して、JavaScriptなどにユニークな値を与えるのが普通だと思うが、同様の方法が適用できるかわからない。createUniqueIdを使っているところがRenderResponseを持っているフェーズなら、特に問題なく、修正できるのだがねぇ。あとは、TomahowkでcreateUniqueIdに頼らないで、IDを生成されていたりすると、修正範囲が大きくて、対応するのが困難になるだろう。まぁ、どちらにしてもバグをあげないといかんよね。

MyFaces上のポートレットで別な話題としては、ポートレットモードのリンクをどうやって、使うのかというのがでていた。${viewURL}は使えないし、で渡せばエラーになるみたい。でも、この状況から判断すると、使っているMyFacesGenericPortletが原因のような気が・・・。私が提案した方法でもこの辺の拡張を入れたけど、これは起こらないような気がするのだが。起きるか確認した方が良いな・・・。時間があれば・・・。

<台風>今日は夕方から雨が強くなりそう・・・。早く帰ろうかな・・・。