-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()はまんま、バージョンアップデートのことをさしているみたい。