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

Jetspeed

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

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

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