|
||||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||||
| サービスの登録・削除を行うBundleContextとServiceRegistration | ||||||||||||
|
ServiceActivator#startメソッドとServiceActivator#stopメソッドでは、「org.osgi.framework.BundleContext」のインスタンスに対してサービスの追加・削除を行っています。「org.osgi.framework.BundleContext」インターフェースはOSGiフレームワーク全体で共有するサービスの制御や、Bundleの情報を取得するためのメソッドを規定したものです。BundleからOSGiフレームワーク全体の情報へアクセスするときは、このインターフェースを介してアクセスします。 BundleContext#registerServiceメソッドでBundleContextにサービスを追加しています。BundleContextの主要なメソッドを表1に示します。
表1:org.osgi.framework.BundleContextの主要なメソッド サービスの削除には「org.osgi.framework.ServiceRegistration」インターフェースを利用します。また、ServiceRegistrationインターフェースはサービスのプロパティ情報の登録を行うなどサービスの登録情報を操作するインターフェースを規定しています。 リスト2-2で登録しているのは「jp.co.thinkit.equinox.hello.ui.INotificationService」インターフェースを実装した「jp.co.thinkit.equinox.hello.service.HelloNotificationService」クラスです。このINotificationServiceインターフェースはOSGiのインターフェースではなく、筆者が規定したインターフェースです。 このINotificationServiceインターフェースは「jp.co.thinkit.equinox.hello.ui」プロジェクトで定義しています(リスト3)。 リスト3:jp.co.thinkit.equinox.hello.ui.INotificationServiceインターフェース
(省略)
INotificationMessageインターフェースはティッカーへ表示するコンテンツを保持するモデルを定義したものです。このインターフェースも「jp.co.thinkit.equinox.hello.ui」プロジェクトで定義されています。ティッカー表示に新しい通知を組み入れる場合はINotificationServiceインターフェースを実装し、BundleContextのインスタンスへ登録します。 このようにBundleContextのインスタンスへ登録するサービスはアプリケーションの開発者が作成できます。 OSGiフレームワークへ登録できるサービスには、ただのJava Objectを登録することもできます。サービスを登録するときに、そのサービスのインターフェースを明らかにしておくため、インターフェースの名前を基に登録してください。 |
||||||||||||
|
前のページ 1 2 3 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||

