diff --git a/rec-admin/rec-admin-biz/pom.xml b/rec-admin/rec-admin-biz/pom.xml index aeda1db31e2692de12a0b42465365f1fa3adf227..3ca4553fda880111981d57e0e0934eda03fb46a3 100644 --- a/rec-admin/rec-admin-biz/pom.xml +++ b/rec-admin/rec-admin-biz/pom.xml @@ -27,6 +27,11 @@ rec-spi ${revision} + + cn.icanci.rec + rec-engine-script + ${revision} + org.mapstruct mapstruct diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/config/EventConfig.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/config/RecAdminConfig.java similarity index 67% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/config/EventConfig.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/config/RecAdminConfig.java index 67023c01462b2e98cc4ff44465379bbf20bdd9a3..d2412d9c4a61fa79063d5262537d828967698336 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/config/EventConfig.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/config/RecAdminConfig.java @@ -1,5 +1,7 @@ package cn.icanci.rec.admin.biz.config; +import cn.icanci.rec.engine.script.RecScriptEngine; +import cn.icanci.rec.engine.script.RecScriptEngineManager; import cn.icanci.rec.spi.event.DefaultEventDispatcher; import cn.icanci.rec.spi.event.EventDispatcher; @@ -11,10 +13,10 @@ import org.springframework.context.annotation.Configuration; /** * @author icanci - * @since 1.0 Created in 2022/11/11 18:05 + * @since 1.0 Created in 2022/11/13 14:06 */ @Configuration -public class EventConfig implements ApplicationContextAware { +public class RecAdminConfig implements ApplicationContextAware { /** * Spring 上下文 */ @@ -30,9 +32,18 @@ public class EventConfig implements ApplicationContextAware { return new DefaultEventDispatcher(); } + /** + * 执行引擎 + * + * @return 返回脚本执行引擎 + */ + @Bean("recScriptEngine") + public RecScriptEngine RecScriptEngine() { + return RecScriptEngineManager.getRecScriptEngine(); + } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { context = applicationContext; } - } diff --git a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/RecScriptEngine.java b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/RecScriptEngine.java index 9ed9d3dab91ec5b0ea7e1290ab9fb5d44dda4711..00319f63e1d85998b90fec762b2326c6ff7c18b5 100644 --- a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/RecScriptEngine.java +++ b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/RecScriptEngine.java @@ -12,47 +12,46 @@ import javax.script.Bindings; * @since 1.0 Created in 2022/11/12 22:12 */ public interface RecScriptEngine { - /** * 执行脚本 * * @param scriptType 脚本类型 - * @param bindings 脚本运行时参数 * @param script 脚本内容 * @return 脚本执行返回上下文 */ - RecScriptEngineContext eval(ScriptTypeEnum scriptType, Bindings bindings, String script); + RecScriptEngineContext eval(ScriptTypeEnum scriptType, String script); /** * 执行脚本 - * + * * @param scriptType 脚本类型 + * @param bindings 脚本运行时参数 * @param script 脚本内容 * @return 脚本执行返回上下文 */ - RecScriptEngineContext eval(ScriptTypeEnum scriptType, String script); + RecScriptEngineContext eval(ScriptTypeEnum scriptType, Bindings bindings, String script); /** * 执行脚本 * * @param scriptType 脚本类型 - * @param bindings 脚本运行时参数 * @param script 脚本内容 * @param clazz 脚本执行返回类型 * @param 泛型 * @return 脚本执行返回上下文 */ - RecScriptEngineContext eval(ScriptTypeEnum scriptType, Bindings bindings, String script, Class clazz); + RecScriptEngineContext eval(ScriptTypeEnum scriptType, String script, Class clazz); /** * 执行脚本 * * @param scriptType 脚本类型 + * @param bindings 脚本运行时参数 * @param script 脚本内容 * @param clazz 脚本执行返回类型 * @param 泛型 * @return 脚本执行返回上下文 */ - RecScriptEngineContext eval(ScriptTypeEnum scriptType, String script, Class clazz); + RecScriptEngineContext eval(ScriptTypeEnum scriptType, Bindings bindings, String script, Class clazz); } diff --git a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/impl/RecScriptEngineImpl.java b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/impl/RecScriptEngineImpl.java index 7394b04702d68bbde29079abc9041a3dde2b9b48..89c9933ce2b86bb341c477a1d9b29cf748c35e8b 100644 --- a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/impl/RecScriptEngineImpl.java +++ b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/impl/RecScriptEngineImpl.java @@ -13,6 +13,26 @@ import javax.script.*; */ public class RecScriptEngineImpl implements RecScriptEngine { + /** + * 执行脚本 + * + * @param scriptType 脚本类型 + * @param script 脚本内容 + * @return 脚本执行返回上下文 + */ + @Override + public RecScriptEngineContext eval(ScriptTypeEnum scriptType, String script) { + return eval(scriptType, new SimpleBindings(), script); + } + + /** + * 执行脚本 + * + * @param scriptType 脚本类型 + * @param bindings 脚本运行时参数 + * @param script 脚本内容 + * @return 脚本执行返回上下文 + */ @Override public RecScriptEngineContext eval(ScriptTypeEnum scriptType, Bindings bindings, String script) { RecScriptEngineContext context = new RecScriptEngineContext<>(); @@ -40,11 +60,30 @@ public class RecScriptEngineImpl implements RecScriptEngine { return context; } + /** + * 执行脚本 + * + * @param scriptType 脚本类型 + * @param script 脚本内容 + * @param clazz 脚本执行返回类型 + * @param 泛型 + * @return 脚本执行返回上下文 + */ @Override - public RecScriptEngineContext eval(ScriptTypeEnum scriptType, String script) { - return eval(scriptType, new SimpleBindings(), script); + public RecScriptEngineContext eval(ScriptTypeEnum scriptType, String script, Class clazz) { + return eval(scriptType, new SimpleBindings(), script, clazz); } + /** + * 执行脚本 + * + * @param scriptType 脚本类型 + * @param bindings 脚本运行时参数 + * @param script 脚本内容 + * @param clazz 脚本执行返回类型 + * @param 泛型 + * @return 脚本执行返回上下文 + */ @Override public RecScriptEngineContext eval(ScriptTypeEnum scriptType, Bindings bindings, String script, Class clazz) { RecScriptEngineContext context = new RecScriptEngineContext<>(); @@ -72,8 +111,4 @@ public class RecScriptEngineImpl implements RecScriptEngine { return context; } - @Override - public RecScriptEngineContext eval(ScriptTypeEnum scriptType, String script, Class clazz) { - return eval(scriptType, new SimpleBindings(), script, clazz); - } }