mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-14 04:02:09 +08:00
feature #IASS9Z 新的java脚本插件,支持java8~java17的所有语法特性
This commit is contained in:
@@ -7,26 +7,25 @@ import com.yomahub.liteflow.script.ScriptExecuteWrap;
|
||||
import com.yomahub.liteflow.script.ScriptExecutor;
|
||||
import com.yomahub.liteflow.script.exception.ScriptLoadException;
|
||||
import com.yomahub.liteflow.util.CopyOnWriteHashMap;
|
||||
import org.noear.liquor.eval.CodeSpec;
|
||||
import org.noear.liquor.eval.ParamSpec;
|
||||
import org.noear.liquor.eval.Scripts;
|
||||
import org.noear.liquor.eval.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class JavaxExecutor extends ScriptExecutor {
|
||||
private final Map<String, CodeSpec> compiledScriptMap = new CopyOnWriteHashMap<>();
|
||||
private final Map<String, Execable> compiledScriptMap = new CopyOnWriteHashMap<>();
|
||||
|
||||
@Override
|
||||
public ScriptExecutor init() {
|
||||
//LiquorEvaluator.getInstance().printable(true);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load(String nodeId, String script) {
|
||||
try{
|
||||
compiledScriptMap.put(nodeId, (CodeSpec) compile(script));
|
||||
compiledScriptMap.put(nodeId, (Execable) compile(script));
|
||||
}catch (Exception e){
|
||||
String errorMsg = StrUtil.format("script loading error for node[{}],error msg:{}", nodeId, e.getMessage());
|
||||
throw new ScriptLoadException(errorMsg);
|
||||
@@ -50,8 +49,8 @@ public class JavaxExecutor extends ScriptExecutor {
|
||||
String errorMsg = StrUtil.format("script for node[{}] is not loaded", wrap.getNodeId());
|
||||
throw new ScriptLoadException(errorMsg);
|
||||
}
|
||||
CodeSpec codeSpec = compiledScriptMap.get(wrap.getNodeId());
|
||||
return Scripts.eval(codeSpec, wrap);
|
||||
Execable execable = compiledScriptMap.get(wrap.getNodeId());
|
||||
return execable.exec(wrap);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,8 +68,7 @@ public class JavaxExecutor extends ScriptExecutor {
|
||||
CodeSpec codeSpec = new CodeSpec(convertScript(script))
|
||||
.returnType(Object.class)
|
||||
.parameters(new ParamSpec("_meta", ScriptExecuteWrap.class));
|
||||
Scripts.compile(codeSpec);
|
||||
return codeSpec;
|
||||
return Scripts.compile(codeSpec);
|
||||
}
|
||||
|
||||
private String convertScript(String script){
|
||||
|
||||
4
pom.xml
4
pom.xml
@@ -71,13 +71,13 @@
|
||||
<apollo.version>2.1.0</apollo.version>
|
||||
<jython.version>2.7.3</jython.version>
|
||||
<luaj.version>3.0.1</luaj.version>
|
||||
<aviator.version>5.3.3</aviator.version>
|
||||
<aviator.version>5.4.3</aviator.version>
|
||||
<common-io.version>2.11.0</common-io.version>
|
||||
<jakarta.version>1.3.5</jakarta.version>
|
||||
<redisson.version>3.21.0</redisson.version>
|
||||
<janino.version>3.1.12</janino.version>
|
||||
<kotlin.version>1.9.23</kotlin.version>
|
||||
<liquor.version>1.3.1</liquor.version>
|
||||
<liquor.version>1.3.2</liquor.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
||||
Reference in New Issue
Block a user