リソースバンドル

オンライン情報ファイル(*.INF) の viewerを再開発しよーとゆー試み。ずっと前から計画してたんだけど, newview.exeのこともあってマジにアレしてみようってことにした。
でも(解決した方がよさそげな) 問題点もいくつかあったりして。

ResourceBundle
ユーザーから編集可能なリソースを用意してカスタマイズに利用するつもり。 だけど, 普通に ResourceBundleでは CLASSPATHにソレを含めなきゃダメ。JAVA/lib/ext/ ではあまりにアレだし, *.jarに含めちゃったら編集するのに取り出さなきゃだし。 serializeだと手軽だけど, ユーザーが編集できる形式じゃない。 あとは通常のテキストファイルってことになるけどソレはソレで ・・・
タグのネスト
オンライン情報を展開してくと, テキストの修飾 -- 色とかも含め -- があったりするけど, ネストが深くなると終了タグの管理が大変。コレは, E4Xで対処できるかも。
スタイルシート
*.INFの構造は HTMLにも似ていてバイナリ版のソレっぽい感じなんだけど, リストにすでに数字が埋め込まれていたりで, ちょっと違う。うまくソレを解釈したり, CSSで表現できるかどーか。
マルチスレッド
Webブラウザーからの要求に応え, INFを展開, HTMLに変換して送り出す。その中で要求の待ち行列(キュー) の管理がちとアレだった。wait-notifyを使ったリスト(コレクションでも何でもよいけど) があれば ・・・

ResourceBundle

そんな訳で, 指定ディレクトリから読み込む ResourceBundleてのがあればよい訳で, loaderを調べてみただよ。 つか, 前回 InfServerを作成した後から情報は集めてたので案外簡単に成功。

と同時に, MessageFormatについてもテストしてみた。formatメソッドで文字列を用意できるけど, Rhino (JavaScript) 側から使うには難しいものがあったから。んで, LiveConnectの「型指定」を使って呼び出してみたけど, 結局失敗。
format(Object obj) には, nativeな配列を用意しなきゃ呼び出せないことが判ったりして。
(インターフェースは Objectなので, LiveConnectでソレを指定, 引数としては配列 ・・・ でもソレはたぶん LiveConnectの範疇ではなく, Objectであって配列なのはその先でのことのはず, なので)