2017-07-03 5 views
0

Hey Esper Professionals!Esperが特定のScriptingEngineを使用して方言を構文解析する

Esperに特定のスクリプトエンジン(Mozilla Rhinoなど)をすべての式に依存させる方法や回避策がありますか?

まず、私はEsperのデフォルトの方言を設定できることを知っています。たとえば、デフォルトのスクリプトエンジンをconfig.getEngineDefaults().getScripts().setDefaultDialect("rhino");

concat(str) [ str + "sth"];というような式をRhinoが実行するように設定するとします。

残念ながら、Esperに特定のスクリプト言語を使用させたい場合、デフォルトの方言を設定するだけでは不十分です。その理由は、エスパーはスクリプト方言が定義とともに渡すことができますということです、エスパーは(ここではJS)式から直接方言名を取得し、デフォルトの方言をバイパスします

js:concat(str) [ str + "sth"]; 

この場合(サイ) 。

JS用のJVM(js-> java 8 nashorn、rhino-> rhino)に登録されているスクリプトエンジンが2つあり、特定のものを強制的に使用したい場合、これは大きな問題です。

問題行動は深いコードをフォーク

は私たちのためにオプションではありませんcom.espertech.esper.epl.script.jsr223

パッケージのどこかで発生します。

アイデア?

答えて

0

これはJavaの一般的な質問です。エスパーによってスクリプトエンジンの解像度は、あなたがそのクラスを変更したり、上書きする文オブジェクトモデルを使用するか、EPLで提供されるよりも異なる方言を強制したい場合は、クラスがnew ScriptEngineManager().getEngineByName(dialect);

を使用していますhttps://github.com/espertechinc/esper/blob/master/esper/src/main/java/com/espertech/esper/epl/script/jsr223/JSR223Helper.java

であります方言。

関連する問題