2

スクリプト エンジン ( JSR-223 準拠)を含む OSGi (Equinox) バンドルを作成し、それを 経由で別のバンドルで使用したいと考えていますScriptEngineManager.getEngineFactories()

ただし、Java Scripting API のサービス検出メカニズム (jar ファイル サービス検出) は、インストールされたバンドル内のスクリプト エンジンを検出できません。

解決策があるため、Apache Felix または Apache Sling を使用することを提案したトピックに関する回答はすでにほとんど見られませんでした。しかし、Equinox の実装に問題を処理する方法があるかどうか疑問に思っています。

4

2 に答える 2

1

まあ、OSGi 5 はそれをサポートします。それはService Loader Mediatorと呼ばれます。これにより、OSGi サービスと java.util サービスローダーが効果的にブリッジされます。

Apache Aries には、動作するはずの Spi-Flyと呼ばれる実装があります。Felix をターゲットにしていると思いますが、通常、OSGi の実装はかなり互換性があります。

正直なところ、私はこれについて深く考えたことがないので、個人的な経験から話すことはできません.

がんばれ、フランク

于 2013-01-16T13:32:07.420 に答える
1

「OSGi は基本的に JSR-223 Scripting Language Discovery と互換性がありませんか?」の回答の 1 つに基づくソリューションを実装しました。OSGiScriptEngineManagerとその仲間を使用すると、かなりうまく機能します。

大きな問題は、問題のスクリプト言語の適切な JSR 223 実装を見つけることです:-)

于 2013-01-16T13:41:43.093 に答える