我对OSGi来说并不是一个全新的新手,但显然新手足够了。
我想要做的是编写一个OSGi(Apache Felix)软件包,并使用Java脚本API(JSR-223)和Groovy。为此,我安装了groovy 2.4.12,它已经是一个OSGi包,我在Groix的远程Shell控制台中看到了Groovy Runtime(2.4.12)作为一个活动服务。
我也理解Java的ServiceLoader API和OSGi的捆绑包之间的冲突。这个Is OSGi fundamentally incompatible with JSR-223 Scripting Language Discovery?指的是一个博客,说明Felix已经找到了解决方法。
一切都好。但是之后。使用该OSGiScriptEngineManager sniplet需要导入什么?
答案 0 :(得分:1)
如果你使用Maven,这样的东西可以起作用:
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.mishell</artifactId>
<version>1.0.0</version>
</dependency>
但我认为这个软件包从未发布过,可能是一个死机。好吧,您可以尝试从https://github.com/Dexels/apachecon/tree/master/org.apache.felix.mishell
自行编译我尽量避免使用ServiceLoaders,如果你说他们提供Groovy作为OSGi服务,那么你真的应该使用它。
如果您只想使用Groovy,我建议:
import org.codehaus.groovy.jsr223.GroovyScriptEngineFactory;
import javax.script.ScriptEngine;
public class Test {
public static void main(String[] args) {
ScriptEngine e = new GroovyScriptEngineFactory().getScriptEngine();
}
}