Equinox和Java Scripting API

时间:2013-01-15 12:42:00

标签: osgi equinox jsr223

我想创建一个包含脚本引擎( JSR-223兼容)的OSGi(Equinox)包,并通过ScriptEngineManager.getEngineFactories()在另一个包中使用它。

然而,Java Scripting API(jar文件服务发现)的服务发现机制无法在已安装的软件包中发现脚本引擎。

我已经看过few answers on the topic,建议使用Apache Felix或Apache Sling,因为他们有一个解决方案。但是我想知道Equinox实现是否有办法处理这个问题?

2 个答案:

答案 0 :(得分:1)

嗯,OSGi 5会支持它,它被称为Service Loader Mediator。这将有效地将OSGi服务与java.util serviceloader。

联系起来

Apache Aries有一个名为Spi-Fly的实现,应该可行。我想它更多针对Felix,但通常OSGi实现非常兼容。

说实话,我从来没有走到最底层,所以我不能说出个人经验。

好运,弗兰克

答案 1 :(得分:1)

我已根据Is OSGi fundamentally incompatible with JSR-223 Scripting Language Discovery?使用OSGiScriptEngineManager和朋友的答案之一实施了一个解决方案,效果非常好。

那么最大的问题可能是为相关脚本语言找到合适的JSR 223实现: - )