前语

上海的天气降温让人猝不及防,可是咱们的迭代速度却有条有理。

今日咱们带来了LiteFlow v2.9.4版别。

咱们每次的发布的issue有很大一部分依托于咱们的运用者社区,社区人越来越多。我看到了运用者在运用过程中遇到的问题,也收集了很多运用过程中很有意思的建议。这些也正是咱们每一次迭代的方向。谢谢那么多的小伙伴的支撑和建议,LiteFlow一向会是一个以社区为驱动的开源结构。

LiteFlow是一个开源编排式规矩引擎,能够让你的体系逻辑任意编排,运用脚本书写逻辑,所有的逻辑和规矩均可热变更。规划体系和重构体系的神器。

假如你是第一次知道这个项目,能够去官网或相关的主页进行了解:

项目官网:

liteflow.yomahub.com

gitee保管库房:

gitee.com/dromara/lit…

github保管库房:

github.com/dromara/lit…

v2.9.4介绍

新版别咱们仍旧依托于社区,总共完成了14个issue。

其中80%的issue来自于社区运用者。

2.9.4版别完全兼容2.9.3版别,能够无缝升级。

新的脚本引擎

鉴于之前社区有人反响LiteFlow供给的Javascript脚本引擎是基于jdk的,而JDK的Javascript引擎只支撑到ES5标准,且不支撑Java 17。

所以这次咱们新增了一个Javascript引擎:GraalJs。支撑ES6标准,且支撑Java 8~17。

当然老的引擎咱们仍是保存,假如是简略的js语法,你仍旧能够用老的引擎。

关于这块详情请参考官网的挑选脚本语言章节。

供给规矩验证接口

尽管LiteFlow在启动时会去编译所有的规矩,假如有错也会具体报出,可是在更改脚本前,运用者可能不太坚信自己的规矩写的有没有问题。所以在社区内,有人提出了期望增加一个验证规矩的接口。

那这次咱们也供给了相应的接口。详情请参考官网的验证规矩章节。

Zk和Etcd支撑局部改写机制

假如你运用zk或许Etcd,你在zk和etcd里更改了规矩,会自动推送到相应的应用进行无感自动改写。

可是之前的完成形式是全部改写,即不论你改了哪个规矩,所有的规矩改写一遍。尽管LiteFlow改写速度十分快速,可是这种完成形式仍是不够高雅。

这次咱们完成了局部改写,即你改动哪个即改写哪个。

声明式组件的二次动态署理问题

在社区内,咱们也收到了许多运用声明式组件特性小伙伴们的反应,在声明式组件上运用类似业务标示等需求动态署理的特性时,LiteFlow的声明式组件会报错。

经过核验,咱们发现LiteFlow之前漏考虑了二次动态署理的问题,这次咱们修正了。

其他修正

在新版别中,咱们修正其他issue也有很多,包含脚本对元数据取值的bug,@ScriptBean标示所带来的一些小问题,脚本反常处理的优化等等。

完好更新列表

特性 #I61XYZ 额定供给GraalJs引擎,在js上多一个挑选
https://gitee.com/dromara/liteFlow/issues/I61XYZ
增强 #I63C31 zk,etcd支撑只改写改动的部分
https://gitee.com/dromara/liteFlow/issues/I63C31
增强 #I61EMZ 增加一个验证EL规矩的api,供查看之用
https://gitee.com/dromara/liteFlow/issues/I61EMZ
增强 #I633VH 建议FlowBus供给批量移除子链办法
https://gitee.com/dromara/liteFlow/issues/I633VH
增强 #I61RI0 期望能够开放对 QLExpress 的一些操作!
https://gitee.com/dromara/liteFlow/issues/I61RI0
增强 #I622I9 内部代码标准ChainName和ChainId问题
https://gitee.com/dromara/liteFlow/issues/I622I9
增强 #I61LYN 标准问题和 不必要的import 常量提取等
https://gitee.com/dromara/liteFlow/issues/I61LYN
修正 #I62PV3 声明式组件假如把LiteflowMethod定义在父类中,不履行
https://gitee.com/dromara/liteFlow/issues/I62PV3
修正 #I62DT1 假如对上下文标示@ScriptBean,那么脚本和java中拿到的上下文并不是同一个上下文
https://gitee.com/dromara/liteFlow/issues/I62DT1
修正 #I61H49 脚本反常期望能够抛出到response
https://gitee.com/dromara/liteFlow/issues/I61H49
修正 #I631ZF groovy脚本接入时,自定义反常抛出后被组件失利反常覆盖
https://gitee.com/dromara/liteFlow/issues/I631ZF
修正 #I61HIO 办法级的组件声明,然后在办法上打 Spring 的业务注解 @Transactional,会报错
https://gitee.com/dromara/liteFlow/issues/I61HIO
修正 #I62CB8 脚本与java交互取元数据的问题
https://gitee.com/dromara/liteFlow/issues/I62CB8
修正 #I61UZ6 switch挑选组件运用标签在同一组件时固定选到最后一个
https://gitee.com/dromara/liteFlow/issues/I61UZ6

社区

LiteFlow的社区是一个反常活跃的开源社区,这里有许多的开源大佬,技能大牛,群内的小伙伴也很乐意帮你去答复问题。

假如你在运用和学习中有任何问题,能够通过以下方式加入社区进行发问:

liteflow.yomahub.com/pages/73c2c…