-OSGi

3.0から登場したOSGiというものについてEclipseのソースを見ていたら、OSGi Allianceという団体があることがわかりました。みんな知ってた?知らなかったのは私だけではあるまい。
サイトに行って登録するとリソースがダウンロードできるのでさっそく登録-ダウンロード。600ページ超のPDFドキュメントほかいろいろ。なるほどね〜、ここにドキュメントがあるから、Eclipseのほうには無かったのか。まあ豆知識としては、OSGiはプラグインがどうとかというレベルのものでなく、デバイスやプロトコルに関わらず付加価値サービスが受け取れたり提供できたりというようなプラットホームのようです。
こいつでEclipseプラグインのうちガツンと変るのが設定周り。PreferencesのとこやPluginRegistryのところが軒並みdeplecatedね。。。試みに直してみたら結構すぐに直せる程度でした。さて、ところでこのOSGiですが見れば見るほど面白げです。プラグインがすぐ触るところに、BundleContextというのがあるのですが、このメソッドたくさんのうち、目を引いたのが以下の感じ。

  • registerService(String clazz, Object service, Dictionary properties)
  • getService(ServiceReference reference)
  • getBundle()
  • installBundle(String location, InputStream input)
  • addServiceListener(ServiceListener listener)
  • addBundleListener(BundleListener listener)

Bundleのほうは、やっぱりたくさんメソッドあるけど、目立つのは、

  • start()
  • stop()
  • install()
  • update()
  • loadClass(String name)

update()はまんま、バージョンアップデートのことをさしているみたい。