diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java index 7e47d3115..0b8cf6f8a 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java @@ -7,12 +7,13 @@ import com.yomahub.liteflow.script.ScriptExecutorFactory; * @author Bryan.Zhang * @since 2.9.0 */ -public class ScriptBreakComponent extends NodeBreakComponent{ +public class ScriptBreakComponent extends NodeBreakComponent implements ScriptComponent{ @Override public boolean processBreak() throws Exception { return (boolean) ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(this.getCurrChainName(), getNodeId(), getSlotIndex()); } + @Override public void loadScript(String script) { ScriptExecutorFactory.loadInstance().getScriptExecutor().load(getNodeId(), script); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java new file mode 100644 index 000000000..fb80c453b --- /dev/null +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java @@ -0,0 +1,26 @@ +package com.yomahub.liteflow.core; + +import com.yomahub.liteflow.script.ScriptExecutorFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 脚本组件类 + * @author Bryan.Zhang + * @since 2.6.0 + */ +public class ScriptCommonComponent extends NodeComponent implements ScriptComponent{ + + private final Logger log = LoggerFactory.getLogger(this.getClass()); + + @Override + public void process() throws Exception { + ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(this.getCurrChainName(), getNodeId(), getSlotIndex()); + } + + @Override + public void loadScript(String script) { + log.info("load script for component[{}]", getDisplayName()); + ScriptExecutorFactory.loadInstance().getScriptExecutor().load(getNodeId(), script); + } +} diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptComponent.java index e66cb9334..5407c88c9 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptComponent.java @@ -1,25 +1,11 @@ package com.yomahub.liteflow.core; -import com.yomahub.liteflow.script.ScriptExecutorFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** - * 脚本组件类 + * 脚本接口 * @author Bryan.Zhang - * @since 2.6.0 + * @since 2.9.0 */ -public class ScriptComponent extends NodeComponent{ +public interface ScriptComponent { - private final Logger log = LoggerFactory.getLogger(this.getClass()); - - @Override - public void process() throws Exception { - ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(this.getCurrChainName(), getNodeId(), getSlotIndex()); - } - - public void loadScript(String script) { - log.info("load script for component[{}]", getDisplayName()); - ScriptExecutorFactory.loadInstance().getScriptExecutor().load(getNodeId(), script); - } + void loadScript(String script); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java index 6b52308e1..e6ab9004a 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java @@ -7,12 +7,13 @@ import com.yomahub.liteflow.script.ScriptExecutorFactory; * @author Bryan.Zhang * @since 2.9.0 */ -public class ScriptForComponent extends NodeForComponent{ +public class ScriptForComponent extends NodeForComponent implements ScriptComponent{ @Override public int processFor() throws Exception { return (int) ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(this.getCurrChainName(), getNodeId(), getSlotIndex()); } + @Override public void loadScript(String script) { ScriptExecutorFactory.loadInstance().getScriptExecutor().load(getNodeId(), script); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptIfComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptIfComponent.java index 3ecd9a67a..17ff8746a 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptIfComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptIfComponent.java @@ -7,12 +7,13 @@ import com.yomahub.liteflow.script.ScriptExecutorFactory; * @author Bryan.Zhang * @since 2.8.5 */ -public class ScriptIfComponent extends NodeIfComponent{ +public class ScriptIfComponent extends NodeIfComponent implements ScriptComponent{ @Override public boolean processIf() throws Exception { return (boolean)ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(this.getCurrChainName(), getNodeId(), getSlotIndex()); } + @Override public void loadScript(String script) { ScriptExecutorFactory.loadInstance().getScriptExecutor().load(getNodeId(), script); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptSwitchComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptSwitchComponent.java index 345cdec39..cd488ff52 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptSwitchComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptSwitchComponent.java @@ -7,13 +7,14 @@ import com.yomahub.liteflow.script.ScriptExecutorFactory; * @author Bryan.Zhang * @since 2.6.0 */ -public class ScriptSwitchComponent extends NodeSwitchComponent { +public class ScriptSwitchComponent extends NodeSwitchComponent implements ScriptComponent{ @Override public String processSwitch() throws Exception { return (String)ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(this.getCurrChainName(), getNodeId(), getSlotIndex()); } + @Override public void loadScript(String script) { ScriptExecutorFactory.loadInstance().getScriptExecutor().load(getNodeId(), script); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptWhileComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptWhileComponent.java index 8c43d4d0f..2e1134f8a 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptWhileComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptWhileComponent.java @@ -7,13 +7,14 @@ import com.yomahub.liteflow.script.ScriptExecutorFactory; * @author Bryan.Zhang * @since 2.9.0 */ -public class ScriptWhileComponent extends NodeWhileComponent{ +public class ScriptWhileComponent extends NodeWhileComponent implements ScriptComponent{ @Override public boolean processWhile() throws Exception { return (boolean) ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(this.getCurrChainName(), getNodeId(), getSlotIndex()); } + @Override public void loadScript(String script) { ScriptExecutorFactory.loadInstance().getScriptExecutor().load(getNodeId(), script); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/enums/NodeTypeEnum.java b/liteflow-core/src/main/java/com/yomahub/liteflow/enums/NodeTypeEnum.java index 01514f735..c0a9f8438 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/enums/NodeTypeEnum.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/enums/NodeTypeEnum.java @@ -1,6 +1,5 @@ package com.yomahub.liteflow.enums; -import cn.hutool.core.util.ClassUtil; import com.yomahub.liteflow.core.*; /** @@ -21,7 +20,7 @@ public enum NodeTypeEnum { WHILE("while", "循环条件", false, NodeWhileComponent.class), BREAK("break", "循环跳出", false, NodeBreakComponent.class), - SCRIPT("script","脚本", true, ScriptComponent.class), + SCRIPT("script","脚本", true, ScriptCommonComponent.class), SWITCH_SCRIPT("switch_script", "选择脚本", true, ScriptSwitchComponent.class), diff --git a/liteflow-script-plugin/liteflow-script-groovy/src/main/java/com/yomahub/liteflow/script/groovy/GroovyScriptExecutor.java b/liteflow-script-plugin/liteflow-script-groovy/src/main/java/com/yomahub/liteflow/script/groovy/GroovyScriptExecutor.java index 217855dcb..72af04a3b 100644 --- a/liteflow-script-plugin/liteflow-script-groovy/src/main/java/com/yomahub/liteflow/script/groovy/GroovyScriptExecutor.java +++ b/liteflow-script-plugin/liteflow-script-groovy/src/main/java/com/yomahub/liteflow/script/groovy/GroovyScriptExecutor.java @@ -52,7 +52,7 @@ public class GroovyScriptExecutor implements ScriptExecutor { try{ if (!compiledScriptMap.containsKey(nodeId)){ String errorMsg = StrUtil.format("script for node[{}] is not loaded", nodeId); - throw new RuntimeException(errorMsg); + throw new ScriptLoadException(errorMsg); } CompiledScript compiledScript = compiledScriptMap.get(nodeId);