feature #I8MW6Q 调整代码

This commit is contained in:
Dale Lee
2023-12-25 20:18:03 +08:00
parent c3c72c5cc1
commit b858dacdcc
5 changed files with 43 additions and 48 deletions

View File

@@ -40,6 +40,10 @@ public class GraalJavaScriptExecutor extends ScriptExecutor {
try {
String wrapScript = StrUtil.format("function process(){{}} process();", script);
scriptMap.put(nodeId, Source.create("js", wrapScript));
// 更新 node
if (FlowBus.containNode(nodeId)) {
FlowBus.getNode(nodeId).setScript(script);
}
}
catch (Exception e) {
String errorMsg = StrUtil.format("script loading error for node[{}], error msg:{}", nodeId, e.getMessage());
@@ -50,6 +54,8 @@ public class GraalJavaScriptExecutor extends ScriptExecutor {
@Override
public void unLoad(String nodeId) {
scriptMap.remove(nodeId);
// 移除节点
FlowBus.removeNode(nodeId);
}
@Override

View File

@@ -3,6 +3,7 @@ package com.yomahub.liteflow.script.java;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import com.yomahub.liteflow.enums.ScriptTypeEnum;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.script.ScriptExecuteWrap;
import com.yomahub.liteflow.script.ScriptExecutor;
import com.yomahub.liteflow.script.body.JaninoCommonScriptBody;
@@ -10,6 +11,9 @@ import com.yomahub.liteflow.script.exception.ScriptLoadException;
import com.yomahub.liteflow.util.CopyOnWriteHashMap;
import org.codehaus.commons.compiler.CompilerFactoryFactory;
import org.codehaus.commons.compiler.IScriptEvaluator;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class JavaExecutor extends ScriptExecutor {
@@ -25,6 +29,10 @@ public class JavaExecutor extends ScriptExecutor {
se.setParameters(new String[] {"_meta"}, new Class[] {ScriptExecuteWrap.class});
se.cook(convertScript(script));
compiledScriptMap.put(nodeId, se);
// 更新 node
if (FlowBus.containNode(nodeId)) {
FlowBus.getNode(nodeId).setScript(script);
}
}catch (Exception e){
String errorMsg = StrUtil.format("script loading error for node[{}],error msg:{}", nodeId, e.getMessage());
throw new ScriptLoadException(errorMsg);
@@ -32,6 +40,18 @@ public class JavaExecutor extends ScriptExecutor {
}
@Override
public void unLoad(String nodeId) {
compiledScriptMap.remove(nodeId);
// 移除节点
FlowBus.removeNode(nodeId);
}
@Override
public List<String> getNodeIds() {
return new ArrayList<>(compiledScriptMap.keySet());
}
@Override
public Object executeScript(ScriptExecuteWrap wrap) throws Exception {
if (!compiledScriptMap.containsKey(wrap.getNodeId())) {