mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-14 20:22:07 +08:00
enhancement #I62DT1 如果对上下文标注@ScriptBean,那么脚本和java中拿到的上下文并不是同一个上下文
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.yomahub.liteflow.script.groovy;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.yomahub.liteflow.script.ScriptBeanManager;
|
||||
@@ -16,6 +17,7 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.script.*;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* Groovy脚本语言的执行器实现
|
||||
@@ -86,7 +88,7 @@ public class GroovyScriptExecutor implements ScriptExecutor {
|
||||
bindings.put("_meta", metaMap);
|
||||
|
||||
//放入用户自己定义的bean
|
||||
bindings.putAll(ScriptBeanManager.getScriptBeanMap());
|
||||
ScriptBeanManager.getScriptBeanMap().forEach(bindings::putIfAbsent);
|
||||
|
||||
return compiledScript.eval(bindings);
|
||||
}catch (Exception e){
|
||||
|
||||
@@ -87,7 +87,8 @@ public class JavaScriptExecutor implements ScriptExecutor {
|
||||
bindings.put("_meta", metaMap);
|
||||
|
||||
//放入用户自己定义的bean
|
||||
bindings.putAll(ScriptBeanManager.getScriptBeanMap());
|
||||
//放入用户自己定义的bean
|
||||
ScriptBeanManager.getScriptBeanMap().forEach(bindings::putIfAbsent);
|
||||
|
||||
return compiledScript.eval(bindings);
|
||||
}catch (Exception e){
|
||||
|
||||
@@ -91,7 +91,8 @@ public class QLExpressScriptExecutor implements ScriptExecutor {
|
||||
context.putAll(metaMap);
|
||||
|
||||
//放入用户自己定义的bean
|
||||
context.putAll(ScriptBeanManager.getScriptBeanMap());
|
||||
//放入用户自己定义的bean
|
||||
ScriptBeanManager.getScriptBeanMap().forEach(context::putIfAbsent);
|
||||
|
||||
return expressRunner.execute(instructionSet, context, errorList, true, false, null);
|
||||
}catch (Exception e){
|
||||
|
||||
Reference in New Issue
Block a user