かとじゅんの技術日誌

技術の話をするところ

OSGi勉強会に参加してきました

id:daisuke-mがリア充で動けなくなったので、代わりに参加してきた。

OSGi勉強会 2009/12/23

いろいろ新しい刺激がありました。ありがとうございました。
Neilさんのプレゼン とても参考になりました。

以前からちょこちょとOSGiは触っていたが、やっぱこれは業務アプリケーションにこそ必要だと実感した。
簡単な感想としては以下。

jarにあるクラスは同じクラスローダにフラットにロードされてしまうからだ。DIでクラス間の依存関係を疎にできても、jar間の依存関係の解決ができない。
たとえば、以下のような依存関係で一つのアプリに配備する場合はwicket.jar内部のクラスがバッティングする可能性が高い。Log4JXMLパーサとかでもこのような問題はよくおきる。

 wicket-1.4.4.jar  ---> login-pannel-1.0.0.jar 
 wicket-1.4.5.jar  ---> user-config-pannel-1.0.1.jar

でも、OSGiなら上記の依存関係を難なく解決できる。importするバンドル(OSGi上の配布単位)とそのバージョンの範囲を指定できるのは、ずばらしい。

  • ServiceTrackerをそのまま使うのは面倒だから、bndとか、Spring DMとかGuice PeaberryとかiPOJOを使うといいよ。

Wicket on Equinoxとtychoビルドはやっているので、後々エントリにまとめてみたいと思う。

あわせて読みたい
http://d.hatena.ne.jp/tonoccho/20091224/1261663628