top / index / prev / next / target / source

2005-07-14 diary: blancoDb Enterprise EditionのAntタスクを作成 , 環境により Class.getSystemResource()が利用できない件…

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

old-v2

blancoDb Enterprise EditionのAntタスクを作成 , 環境により Class.getSystemResource()が利用できない件…

blancoDb Enterprise Edition に Antタスクを新規追加してみました。

blancoDb Enterprise EditionのAntタスク作成

blancoDbにおいて ソースコード生成コマンドが Antタスク化していないのは あまりにもマズいだろうという多数の指摘を受けました。指摘の通りなので、Antタスク化を簡単に実装しました。

参考にした Antの新規タスク開発方法。

…実装は 意外にも簡単でした。食わず嫌いでした (苦笑)なんて なんだかんだ作業しているうちに、とても夜更かししてしまいました (反省)

blancoDb の Antプラグインについては、まだ 広範な試験は実施されていません。利用については、しばらくお待ちください。

環境により getSystemResource()が利用できないケース

Antタスク化において blancoDb固有の問題だったのが、リソースファイルの読み込み関連についてです。Class.getSystemResource()ではダメで、this.getClass()を足がかりにgetResourceAsStream()を呼び出さないとうまくいかない場合があります。(修正箇所は具体的には blancoIgになります) jarファイル内からのリソース読み込みは 昔ながらに奥が深いです

ちなみに、この getSystemResourceでは (特定条件下において) 読み込みが失敗し、そうではなく何かしら(そしてほとんどの場合 *.class) を足がかりに getResouceしないと *.class以外のファイルが読み込みできない件については、意外なことですが、一部のコアな Java技術者しか知りません。私自身、なぜこれが失敗するのかについて、JavaVMのクラスローダーの内部実装に踏み込んだ正確な説明は出来ません。

この問題に言及しているページをメモしておきます。

関連するリソース 2005.07.15追記 この問題の本質は、じつはクラスローダのインスタンス違いだった模様です。これで私の頭の中はかなりすっきりと整理できました。

Saisseさん、ありがとうございます。

岩谷宏さんのページ

getSystemResource()の件で見た「Java Programming Primer」のページについて、情報が充実していて心に響きました。どなたが書いてられるのだろうと調べてみたところ、なんとあの有名なライターさんである岩谷宏さんのウェブページの一部分だったということがわかりました。

結構びっくりしました。

Eclipseプラグイン開発技術に注力する方向性で

某氏とうっちーとで話していて、とりあえず私が関連するリソースについて、Eclipseプラグイン開発技術 (+多少の C言語) に対してリソースを集約していく方向性で (勝手に) まとまりました。冗談めいて、キーワードは DoD と設定しました。実際のところ Eclipseプラグイン開発技術については かなり難易度が高く、しかしそれに見合うだけの効果があるように判断しています。

関連する日記

技術メモ

WebOTXの OLF/TPについて調べていたら、JCAにたどり着きました。さて、JCAを勉強しないと…


この日記について