2017-11-16 2 views
3

から同じパッケージをインポートする私は、同じOSGiの環境内の別のOSGiバンドルBundle2でOSGiバンドルBundle1と別のクラス org.foo.Subscriberでクラスorg.foo.Customerを持っています。 Bundle1 exports-package org.foo。エクスポートとOSGiバンドル

import org.fooBundle2のパッケージによってBundle1が可能ですか?同じパッケージがBundle1のマニフェストファイルでエクスポートおよびインポートで指定されているため、実行時に競合が発生しますか?

答えて

2

分割パッケージはOSGiでstrongly discouragedです。これらのバンドルを所有している場合は、一方または両方のパッケージの名前を変更するか、分割パッケージを1つのバンドルに結合する必要があります。

Bundle2は分割パッケージをインポートできましたが、Bundle2のクラスローダーはBundle1のクラスのみを表示し、Bundle2の内部クラスは表示しません。

一方のバンドルを他方のfragmentにすると、同じクラスローダーを使用するという効果があります。これには、断片バンドルのマニフェストのみを変更する必要があります。何らかの理由でバンドルに参加できない場合、またはパッケージ名を変更できない場合はオプションになります。

関連する問題