2017-11-24 9 views
1

私はOSGiの初心者ではありませんが、十分に初心者ではありません。OSGiScriptEngineManagerの実行方法

私がしたいのは、OSGi(Apache Felix)バンドルを作成し、GroovyなどのJavaスクリプトAPI(JSR-223)を使用することです。このために、既にOSGiバンドルであるgroovy 2.4.12をインストールしました.Felixのリモートシェルコンソールでは、Groovy Runtime(2.4.12)がアクティブなサービスとして認識されています。

JavaのServiceLoader APIとOSGiのバンドルの間の競合も理解しています。このIs OSGi fundamentally incompatible with JSR-223 Scripting Language Discovery?は、Felixが既に回避策を見つけたことを示すブログを参照しています。

すべていいです。しかしその後。 OSGiScriptEngineManagerスニペットを使用するには、何をインポートする必要がありますか?

答えて

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を避けようとしています。彼らがOSGiサービスとしてGroovyを提供していると言えば、本当にそれを使うべきです。あなただけの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(); 
    } 
}