OSGi フレームワーク内で Esper を使用したいのですが、OSGi 内のクラスローディング メカニズムで達成する必要があることをどのように許可するのか、さらには OSGi 内で Esper をどのように使用できるのかさえわかりません。
Dynamic-Import
Esper 5.3 を使用していますが、バンドル マニフェストを調べたところ、 OSGi ヘッダーが使用されていません。Esper の中心にあるのは、POJO で動作する SQL クエリであると私が理解している EPStatements です。
私が理解するのに苦労しているのは、動的インポートを使用せず、将来的に操作するように指示される可能性のある POJO に関する知識がない Esper バンドルがそれらにアクセスする方法です。
たとえば、EPStatement を作成しようとすると、次のようになります。
select * com.example.Pojo
クラス com.example.Pojo が Esper コアへの別のバンドルにある場合、Pojo
ロードできる唯一の方法は、そのClassLoader を使用することです。これは次の方法で実行できます。
Thread.currentThread().setContextClassLoader(com.example.Pojo.class.getClassLoader);
Pojo
しかし、これは Pojo 自体を含むバンドルのクラス空間にロードされるだけではありませんか? 上記の例の EPStatement を作成するときに必要になるように、Esper バンドルがそれにアクセスするにはどうすればよいですか。