BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース OSGiがリリース5のアーリーアクセス版を提供

OSGiがリリース5のアーリーアクセス版を提供

原文(投稿日:2012/03/26)へのリンク

本日OSGi DevConでOSGiアライアンスはOSGiコアエンタープライズの仕様のリリース5のアーリーアクセス版を発表した。OSGi R5の最終リリースは今年の夏の後半に予定されている。

OSGi R5は何が新しいのか

OSGi R5コアの仕様には一般的な要件機能を定義するのに使えるResource APIが追加されている。これは、既存のImport-PackageExport-Packageの要件の一般化であり、バンドルを記述する方法を提供する。この要件と機能の定義はCapabilityクラスとRequirementクラスを通じて、アクセスできる。バンドル館のコネクションには、既存のBundleWiringクラスからアクセスできる。このクラスはbundle.adapt(BundleWiring.class)経由でBundleのアダプタとして動作する。

この要件/機能モデルは新しいOSGi Bundle Repository (OBR)のフォーマットで公開される。このフォーマットはバンドルの情報を記録し、バンドル間の依存性を表現する。このフォーマットはEclipseのP2フォーマットに似ているが、OSGiランタイム用にこの要件と機能の定義を表現する新しい方法を提供する(OBRの以前のバージョンは存在はしていたが、APIを標準化した仕様としてはOSGi R5が初めてだ)。要件は依存性を分類するnamespaces上で構築される。namespacesにはJavaランタイムの種類を表すosgi.eeやバンドル間の依存関係を表すosgi.wiring.packageosgi.bundle.bundleがある。

また、JavaのServiceLoaderをフックする新しいAPIもある。ServiceLoaderは複数のクラスローダがあると動作しない。この新しいAPIはロードされたバンドルを調整し、時にはバイトコードを書き直して、ServiceLoaderの動きをOSGiが認識できるスタブの呼び出しにマップして、正しいスレッドのローカルクラスローダの準備が整った後に、その呼び出しを転送する。加えて、バンドルのワイヤリングやサービスのワイヤリングやフレームワークのフックも適切に設置されているので、実行環境(Eclipse Virgoのような)はバンドルの間に仮想的なパーティショニングの枠組みを設定できる。エンタープライズ仕様では、SubsystemサービスとしてこのAPIにアクセスできる。

また、JMXインターフェイスのようなサービスに対しても小さな改善も積み重ねられている。JMXはバンドルのワイヤリングの仕組みで公開されている情報をより詳しく提供できるようになっている。

Eclipse Equinoxはすでにこれらの仕様を提供している。Apache Felixも同様だ。しかし、これらの仕様はまだ公式にはリリースされていないので、保証はされていない。

この記事に星をつける

おすすめ度
スタイル

BT