Seasar2等依存ライブラリをどうしよう

NetBeansモジュール(プラグインのこと)を作ってるときふと思った。

例えばCubbyT2FrameworkともにSeasar2が使えるわけだが、このライブラリをどうしようかと。それぞれ単純に別個に作成してモジュールに含めるのがよいのだろうか。

それともモジュールスイートをちゃんと作成し、T2、Cubbyともに同一のライブラリを参照するようにするべきだろうか。

モジュールスイートとはライブラリを共有できるような管理機能のこと。


モジュールスイートだとT2もCubbyも依存するSeasar2も1つのアーカイブでセットアップされるようにしたり、T2とCubbyのみのモジュールをセットアップする場合はSeasar2等ライブラリモジュールを依存させるという制御も出来るようになる。

そのかわり、モジュールスイートのプロジェクトをどこかに作成する必要が出る。モジュールそのもののソースはスイートに依存することは無いが、どっちつかずになってしまうなぁ。モジュールスイートの所有権はT2モジュール側なのかCubbyモジュール側なのかという感じで。


とりあえず、一番厄介そうなJavaのクラスライブラリがぶつかるんじゃないかという心配があったが、クラスライブラリ名(表示名ではない。自由につけることが出来る文字列)が重なっていればどちらかが有効になるようだ。

つまり、T2プラグインCubbyプラグインを入れることでSeasar2ライブラリと表示される箇所が2つ現れるわけではないということ。そのかわり、どちらが有効になってるかは分からない。T2のプラグインが入っている状態でCubbyプラグインを入れたところ表示名はCubby側(わざと分かりやすくするために変えてみた)が有効になった。後から入れたほうが有効になる…のかな?

それとも、CubbyやT2本体にライブラリを入れるべきだろうか。でも、そうするとT2はコンテナ選べるのがメリットだし、Cubby2もコンテナ非依存になるようだし、それもどうかなぁ。


あとはライブラリのバージョンをどうするか。常に最新版だけいれていればいいのかどうか。新しいプラグインを入れていけば前のが上書きされるからそれが問題になるかなぁ?特定のバージョンに固定させたい場合は個別にダウンロードして設定してもらえばいいかな。プラグインでは常に最新がはいりますよ、と。


そもそもSeasar2もライブラリラッパーモジュールで本当にいいのか。どうせならSeasar2もモジュールにしてしまってそれの依存としてSeasar2のライブラリモジュールを用意させたほうがよいのではないか。そうすればdiconが種類不明のファイルではなく、XMLと認識させることが出来るし。

んー悩む。