当前位置: 首页 > 后端技术 > Java

LiteFlowv2.9.4发布!国产规则引擎框架,让你的系统支持热更新、编排、脚本逻辑

时间:2023-04-01 16:40:10 Java

前言上海的天气转凉了,但我们的迭代速度却井井有条。今天我们带来了LiteFlowv2.9.4版本。我们每次发布的问题很大一部分依赖于我们的用户社区,社区的人越来越多。看到了用户在使用过程中遇到的问题,也收集了很多使用过程中有趣的建议。这些也是我们每次迭代的方向。感谢这么多朋友的支持和建议,LiteFlow将永远是一个社区驱动的开源框架。LiteFlow是一个开源的编排规则引擎,可以任意编排你的系统逻辑,使用脚本编写逻辑,所有逻辑和规则都可以热改。用于设计系统和重构系统的工件。如果你是第一次知道这个项目,可以到官网或相关主页了解一下:项目官网:https://liteflow.yomahub.comgitee托管仓库:https://gitee.com/dromara/lit...github托管仓库:https://github.com/dromara/li...v2.9.4引入新版本我们仍然依赖社区,总共完成了14期。80%的问题来自社区用户。2.9.4版本与2.9.3版本完全兼容,可以无缝升级。新的脚本引擎鉴于之前社区反馈LiteFlow提供的Javascript脚本引擎是基于jdk的,而JDK的Javascript引擎只支持ES5规范,不支持Java17。所以这次我们添加了一个新的Javascript引擎:GraalJs。支持ES6规范,支持Java8~17。当然,我们仍然保留旧引擎。如果是简单的js语法,还是可以用老引擎的。具体可以参考官网选择脚本语言章节。提供规则验证接口。虽然LiteFlow在启动时会编译所有的规则,如果有错误会详细报告,但是在更改脚本之前,用户可能无法确定自己的规则是否有问题。所以社区里有人提出了添加验证规则的接口。那么这次我们也提供了相应的接口。详情请参考官网验证规则部分。Zk和Etcd支持局部刷新机制。如果你使用zk或者Etcd,如果你改变了zk和etcd中的规则,会自动推送到对应的应用程序进行自动刷新。但是之前的实现方式是全部刷新,也就是不管你改哪条规则,所有的规则都会刷新一次。虽然LiteFlow的刷新率很快,但是这种实现方式还是不够优雅。这次我们实现了局部刷新,就是你改哪个就刷新哪个。声明式组件的二次动态代理问题在社区中,我们也收到了很多使用声明式组件特性的朋友的反馈。在需要动态代理的声明式组??件上使用事务注解等特性时,LiteFlow的组件会报错。经过验证,我们发现之前LiteFlow忽略了二级动态代理的问题,这次我们修复了它。其他修复在新版本中,我们修复了许多其他问题,包括元数据值脚本中的错误、@ScriptBean注解导致的一些小问题、脚本异常处理的优化等。完整的更新列表Features#I61XYZ提供额外的GraalJs引擎,在js上多了一个选项https://gitee.com/dromara/liteFlow/issues/I61XYZ增强#I63C31zk,etcd只支持刷新更改的部分https://gitee。com/dromara/liteFlow/issues/I63C31Enhancement#I61EMZ添加一个api来验证检查EL规则https://gitee.com/dromara/liteFlow/issues/I61EMZEnhancement#I633VH建议FlowBus提供批量移除子链的方法https://gitee.com/dromara/liteFlow/issues/I633VHEnhanced#I61RI0希望能在QLExpress上开启一些操作!https://gitee.com/dromara/liteFlow/issues/I61RI0增强#I622I9内部代码规范ChainName和ChainId问题https://gitee.com/dromara/liteFlow/issues/I622I9增强#I61LYN规范问题和不必要的导入常量提取等https://gitee.com/dromara/liteFlow/issues/I61LYN修复#I62PV3如果声明式组件在父类中定义了LiteflowMethod,则不会执行https://gitee.com/dromara/liteFlow/issues/I62PV3Fix#I62DT1如果@ScriptBean标记在上下文上,脚本中获取的上下文和java不是同一个上下文https://gitee.com/dromara/liteFlow/issues/I62DT1Fix#I61H49脚本异常希望被抛出回应https://gitee.com/dromara/liteFlow/issues/I61H49fix#I631ZF连接groovy脚本时抛出自定义异常然后被组件失败异常覆盖https://gitee.com/dromara/liteFlow/issues/I631ZF修复#I61HIO方法级组件声明,然后在方法上键入SpRing的事务注解@Transactional会报错https://gitee.com/dromara/liteFlow/issues/I61HIOFix#I62CB8脚本与java交互时获取元数据的问题https://gitee.com/dromara/liteFlow/issues/I62CB8修复了#I61UZ6切换到选择组件并使用标签在使用同一组件时选择最后一个。https://gitee.com/dromara/liteFlow/issues/I61UZ6社区LiteFlow社区是一个极其活跃的开源社区,群里有很多开源大佬,技术大牛,小伙伴们也很乐意帮你解答问题。如果您在使用和学习过程中有任何问题,可以通过以下方式进入社区提问:https://liteflow.yomahub.com/...