Solon v3.1.2

solon-flow-eval-beetl

</> markdown
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-flow-eval-beetl</artifactId>
</dependency>

1、描述

(v3.1.2 后支持)流处理扩展插件。在 Solon Flow 基础上提供 beetl (BSD 许可协议)表达式与脚本适配:

  • BeetlEvaluation

2、应用示例

简单配置样例

# classpath:flow/f1.yml
id: f1
layout:
  - task: |
      context.result = a + b;
    when: a > b

注解模式应用

@Configuration
public class MagicEvaluationTest {
    //构建新的驱动器,替代旧的(可以反复替代)
    @Bean
    public FlowDriver flowDriver(){
        return new SimpleFlowDriver(new BeetlEvaluation());
    }
    
    @Init
    public void case1() throws Throwable {
        FlowContext context = new FlowContext();
        context.put("a", 1);
        context.put("b", 2);

        engine.eval("f1", context);
        System.out.println(context.result);
        assert context.result == null;
    }
}

原生 Java 模式应用

public class BeetlEvaluationTest {
    @Test
    public void case1() throws Throwable {
        FlowEngine engine = FlowEngine.newInstance();
        engine.register(new SimpleFlowDriver(new BeetlEvaluation()));

        engine.load("classpath:flow/*.yml");

        FlowContext context = new FlowContext();
        context.put("a", 1);
        context.put("b", 2);

        engine.eval("f1", context);
        System.out.println(context.result);
        assert context.result == null;
    }
}