diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/enums/ScriptTypeEnum.java b/liteflow-core/src/main/java/com/yomahub/liteflow/enums/ScriptTypeEnum.java index 7fb0d973b..f350b4169 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/enums/ScriptTypeEnum.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/enums/ScriptTypeEnum.java @@ -7,7 +7,8 @@ public enum ScriptTypeEnum { JS("javascript", "js"), PYTHON("python", "python"), LUA("luaj", "lua"), - AVIATOR("AviatorScript", "aviator"); + AVIATOR("AviatorScript", "aviator"), + JAVA("java", "java"); private String engineName; diff --git a/liteflow-script-plugin/liteflow-script-java/pom.xml b/liteflow-script-plugin/liteflow-script-java/pom.xml new file mode 100644 index 000000000..7020304c7 --- /dev/null +++ b/liteflow-script-plugin/liteflow-script-java/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.yomahub + liteflow-script-plugin + ${revision} + ../pom.xml + + + liteflow-script-java + + + + com.yomahub + liteflow-core + ${revision} + provided + + + org.codehaus.janino + janino + + + \ No newline at end of file diff --git a/liteflow-script-plugin/liteflow-script-java/src/main/java/com/yomahub/liteflow/script/java/JavaExecutor.java b/liteflow-script-plugin/liteflow-script-java/src/main/java/com/yomahub/liteflow/script/java/JavaExecutor.java new file mode 100644 index 000000000..800c57e40 --- /dev/null +++ b/liteflow-script-plugin/liteflow-script-java/src/main/java/com/yomahub/liteflow/script/java/JavaExecutor.java @@ -0,0 +1,38 @@ +package com.yomahub.liteflow.script.java; + +import com.yomahub.liteflow.enums.ScriptTypeEnum; +import com.yomahub.liteflow.script.ScriptExecuteWrap; +import com.yomahub.liteflow.script.ScriptExecutor; +import org.codehaus.commons.compiler.CompilerFactoryFactory; +import org.codehaus.commons.compiler.IScriptEvaluator; + +public class JavaExecutor extends ScriptExecutor { + @Override + public void load(String nodeId, String script) { + // 创建Janino脚本Evaluator + /*IScriptEvaluator se = CompilerFactoryFactory.getDefaultCompilerFactory().newScriptEvaluator(); + // 返回值类型指定为Object以支持不同脚本 + se.setReturnType(Object.class); + // 指定Janino脚本里的变量名及类型,为通用起见,只设置一个Object类型的变量 + se.setParameters(new String[] { JANINO_SCRIPT_PARAMETER_NAME }, new Class[] { Object.class }); + // 编译 + se.cook(script); + // 缓存编译过的Evaluator + compiledScriptMap.put(nodeId, se);*/ + } + + @Override + public Object executeScript(ScriptExecuteWrap wrap) throws Exception { + return null; + } + + @Override + public void cleanCache() { + + } + + @Override + public ScriptTypeEnum scriptType() { + return null; + } +} diff --git a/liteflow-script-plugin/pom.xml b/liteflow-script-plugin/pom.xml index 1898d7a54..2c43fa16c 100644 --- a/liteflow-script-plugin/pom.xml +++ b/liteflow-script-plugin/pom.xml @@ -22,6 +22,7 @@ liteflow-script-python liteflow-script-lua liteflow-script-aviator + liteflow-script-java \ No newline at end of file diff --git a/pom.xml b/pom.xml index 30bb9ec95..c0b2652e8 100644 --- a/pom.xml +++ b/pom.xml @@ -75,6 +75,7 @@ 5.3.3 2.11.0 1.3.5 + 3.1.9 @@ -298,6 +299,11 @@ commons-io ${common-io.version} + + org.codehaus.janino + janino + ${janino.version} +