LiteFlow v2.10.6 发布!一款社区驱动型优秀的规则引擎框架

LiteFlow 介绍

LiteFlow 是一个开源编排式规则引擎,能够让你的系统逻辑任意编排,可选用脚本书写逻辑,支持多达 6 种脚本语言,支持丰富的第三方存储的支持,所有的逻辑和规则均可热变更。设计系统和重构系统的神器。

LiteFlow 也是 Gitee 的高 star 项目,过去一年来保持了非常快的增长趋势。

同时 LiteFlow 也是国内优秀的社区驱动型开源项目,开源将近 3 年,目前已经被各大公司应用在核心系统上gnss接收机。特性以及支持度都非常好。社区人数超过 3000 人。

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

项目官网:

https://liteflow.yomahub.com

gitee 托管仓库:

liteFlow: 轻量,快速,稳定,可编排的组件式规则引擎/流程引擎。拥有全新设计的DSL规则表达式。组件复用,同步/异步编排,动态编排,支持超多语言脚本,复杂嵌套规则,热部署,平滑刷新规则等等功能,让你加快开发效率!

github 托管仓库:

https://github.com/dromara/liteflow

前言

v2.10.6 版本是一个进行诸多增强的版本。总计有 11 个 issue 的增强,3 个 issue 的修复。

全面支持 JDK17

其实 LiteFlow 在 2.10.0 的时候,已经支持了 JDK17。但是项目并未对 JDK17 进行完整的测试。导致很多小伙伴实际在 JDK17 环境中跑起来,出现了一些问题。

这是由于 LiteFlow 的 900 多个测试用例全部都是针对于 JDK8 来跑的。并未在 JDK17 下进行完整的测试。

而 2.10.6 这个版本,我们系统的针对 JDK17 进行了完整的测试。通过了全部的测试用例。所以大家可以放心的使用。

当然,LiteFlow 也是支持 Springboot3 的。

有的同学可能会问,JDK20 支持不支持?其实连作者自己也不知道是否支持 JDK20,因为没有进行系统的测试过。这版本太新了。

支持 SQL 插件使用自己定义的数据源

LiteFlow 支持将 EL 表达式,脚本存放在所有的关系型数据库中。但是之前的版本,LiteFlow 有自己的一套数据库连接配置,这就导致了往往使用者同一套数据库配置要配置 2 遍,还有一些使用者在实际的环境中,可能数据源是加密的,或者数据源是从外部获取的。这就没法使用 LiteFlow 提供的数据源配置了。

所以,这次我们支持了让 SQL 插件能够使用项目内的数据源来获取数据。更加优雅和方便。

甚至于我们还考虑到了多数据源的场景,让 LiteFlow 能够智能的挑选正确的数据源。

LiteFlow 的测试用例全面转向 Junit5

这也许和使用者没啥太大关系。

LiteFlow 这个框架功能点非常多,使用人数也非常庞大。所以每一次发版,我都需要补很多测试用例gnss接收机的分类有哪些。测试用例是 LiteFlow 整个框架质量的命脉。甚至于测试用例成为了和核心代码一样重要的存在。所以 LiteFlow 目前有将近 1000 个测试用例。

在 2.10.6 版本的源代码中,所有的测试用例从原先的 Junit4 全部转向了 Junit5。更加稳定。更加有保障。

对脚本和 Java 的联动进行加强

主要加强点在 @ScriptBean 这个注解,这个是脚本和 Java 联动的关键注解,在社区群里,有同学报出这个注解有时无法正常的工作,导致脚本拿不到 Java 的对象。对这个问题,我进行了深入研究。在 2.10.6 版本中,对这个注解进行了很多的优化,应该能彻底解决之前的问题。

对声明式组件增加了组件名称的设定

在 2.10.6 版本中,声明式组件支持了声明 nodeName 这个属性了。

错误事件通知的改造

原先错误事件回调通知是这样定义的:

public void onError() throws Exception;

这样定义导致有些同学不知道如何取 Exception,为了使 api 更加友好,这次这个回调方法改成了如下形式:

public void onError(Exception e) throws Exception;

全局拦截器的改造

原先全局拦截器的定义如下:

@Component
public class CmpAspect implements ICmpAroundAspect {@Overridepublic void beforeProcess(String nodeId, Slot slot) {YourContextBean context = slot.getContextBean(YourContextBean.class);//before business}@Overridepublic void afterProcess(String nodeId, Slot slot) {YourContextBean context = slot.getContextBean(YourContextBean.class);//after business}
}

这种方式无法直观的拿到很多信息,为了 api 更加友好,这次我们改造了这个接口的实现参数:

@Component
public class CmpAspect implements ICmpAroundAspect {@Overridepublic void beforeProcess(NodeComponent cmp) {YourContextBean context = cmp.getContextBean(YourContextBean.class);//before business}@Overridepublic void afterProcess(NodeComponent cmp) {YourContextBean context = cmp.getContextBean(YourContextBean.class);//after business}
}

布尔表达式中 OR 的短路判断

在社区中有同学反应,如果有以下 EL 语句:

IF(OR(a,b,c), x);

如果 a 返回 true,那其实 b 和 c 应该不用执行,而事实情况是 LiteFlow 把 a,b,c 都执行了。

所以这次我们也收到了贡献者的 PR,把这个问题给优化了。

同一个组件复用时 Step 的记录问题

LiteflowResponse 的 step 可以用来回溯整个链路的实际执行情况。但是在相同组件复用的情况下,这个 step 的记录在之前版本中有些问题gps定位仪。此次我们也修复了这个问题。

日志方面的增强

在 2.10.6 版本中,系统默认会以 info 级别打出所有的节点的耗时信息。

如果觉得日志太多的话,可以通过设置 liteflow.print-execution-log=false 来进行关闭整个 LiteFlow 框架的系统日志。

完整更新列表

增强 #I7KR2F 测试用例全面更新为junit5https://gitee.com/dromara/liteFlow/issues/I7KR2F增强 #I7J59V java17下进行完整的测试用例测试https://gitee.com/dromara/liteFlow/issues/I7J59V增强 #I7KZCZ 希望可以使用配置文件中已经配置的数据源https://gitee.com/dromara/liteFlow/issues/I7KZCZ增强 #I7KY2N 非操作符的短路控制优化https://gitee.com/dromara/liteFlow/issues/I7KY2N增强 #I7HPAN onError方法增加Exception入参https://gitee.com/dromara/liteFlow/issues/I7HPAN增强 #I7KOPV 声明组件增加nodeName的定义https://gitee.com/dromara/liteFlow/issues/I7KOPV增强 #I7KHE5 关于注解声明式使用场景LiteFlowMethodEnum增加getDisplayNamehttps://gitee.com/dromara/liteFlow/issues/I7KHE5增强 #I7K3T1 自带AOP拦截需要增强获取tag等信息https://gitee.com/dromara/liteFlow/issues/I7K3T1增强 #I7JZ4D 希望框架有与或非表达式的相关日志https://gitee.com/dromara/liteFlow/issues/I7JZ4D增强 #I7J1VJ 希望针对节点执行耗时的打印日志支持控制https://gitee.com/dromara/liteFlow/issues/I7J1VJ增强 #I7LGZR 忘记填写 chainName 的错误提示https://gitee.com/dromara/liteFlow/issues/I7LGZR修复 #I7L5DX 2.10.5版本中ScriptBean注解注入bean失败https://gitee.com/dromara/liteFlow/issues/I7L5DX修复 #I7HTR4 同一组件不同tag,取step时候存在问题https://gitee.com/dromara/liteFlow/issues/I7HTR4修复 #I7GMTS 本地文件监听异常会导致监听线程停止https://gitee.com/dromara/liteFlow/issues/I7GMTS

LiteFlow 发展路线

有可能 2.10.6 版本是 2.10.X 系列的最后一个版本了。

接下去就是 v2.11.0 了,v2.11.0 会带来超多的新增特性。v2.11.X 系列的主旋律将围绕着元数据增强进行展开。也为后续的管理平台系列打下一个基础。

回答个大家最想问的问题,问题省略,答案如下:2.11.0 版本没有 UI,UI 没有那么快。计划今年推出,需要开发的。作者也有工作,需要投入大量业余时间的。但是既然我上次已经调查过了,自然会用心去做这个规划。

支持和赞助 LiteFlow

开源一个项目并坚持 2 年并不容易,如果各位对 LiteFlow 这个项目有信心并且愿意支持的话,可以在官网首先点击 ***给LiteFlow发电*** 按钮。

但不管你是否选择赞助,我仍然会在社区里尽可能的解决你们的问题。

社区里的问题太多,如果没回答上,请多艾特我几遍。

如何加群

LiteFlow 的社区群已经有大约 3000 人以上了。你有任何问题,都可以在群里问。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/51828.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python自定义colormap集锦

Python自定义colormap集锦 Python是一种高级编程语言,其应用广泛。其中,数据可视化是Python一大优势。通过可视化,我们可以让数据变得更加清晰、易懂。而colormap即色图,是数据可视化中不可或缺的一个元素。在Python中&#xff0…

一个学生关于鸿蒙系统的一些看法

简单谈谈鸿蒙系统,写于20年9月20日 在这里插入图片描述 离华为开发者大会过去一周了,我这两天也问了一下鸿蒙开发群的一些大牛,先行者,对于harmony os,听到了很多种声音,作为一个抱有学习态度的小白&#x…

海外用户用不了鸿蒙系统,海外用不了!鸿蒙系统成国内专用,华为如何才能战胜谷歌安卓...

说起鸿蒙系统,相比不少人都听说过,这是华为摆脱安卓限制的一大步。但是随着鸿蒙系统发布时间越来越近,一些关于鸿蒙的问题也开始逐渐的展露了出来。最近有数码博主声称,鸿蒙系统由于不能搭载谷歌GMS框架,也许走不出国内…

华为鸿蒙比较乐视电视系统,华为彻底告别安卓!三亿台设备将使用鸿蒙系统,但实际远远不够...

此前华为已经宣布将在四月正式开始在自家手机上推送鸿蒙系统,一些即将推出的华为产品也会直接搭载原生的鸿蒙系统,比如MatePad Pro2平板电脑以及P50系列手机。基本上,我们可以确定这个时间点是在华为四月开发者大会前后,这就意味着…

鸿蒙真能兼容所有安卓应用,鸿蒙系统真要来了!已能全面兼容安卓应用:并且还有57万多APP支持...

【4月9日讯】相信大家都知道,只要一提起华为消费者终端业务CEO余承东,确实也是让很多人对他非常敬佩,直接将华为手机从不知名厂商彻底变成了现在全球第二大智能手机厂商,但也因为余承东太爱吹牛了,所以也被誉为“大嘴”…

鸿蒙系统 支持软件,鸿蒙系统上线在即 你最希望哪些软件能够支持呢

华为的鸿蒙系统,被爆商标已经注册。看来,距离鸿蒙系统的上市也不远了。有些小伙伴在问我:希望看到哪些APP可以直接使用? 在回答这条问题之前,我们先来看看“鸿蒙”是什么。鸿蒙是华为开发的一套操作系统,也打破了手机…

如果微软狠心鸿蒙系统,微软强制用户升级华为鸿蒙系统出来你会放弃windows使用鸿蒙吗...

在手机操作系统上,用户最喜欢使用安卓系统和IOS系统,但在PC系统上,用户最喜欢的还是Windows系统。 虽然谷歌和苹果也有自家的PC系统,但苹果和谷歌的桌面系统,相对于微软的windows系统而言,其市场份额几乎可…

鸿蒙OS无法安装APP,假如鸿蒙系统不能下载第三方APP,iPhone用户会路转粉吗

说起手机系统,诺基亚的塞班系统大家都应该记得,在曾经那个年代他就是众手机品牌中鹤立鸡群的大哥,是吊打一切的王者,满大街传单上都是他的身影!直到有一天身边的安卓系统手机和IOS苹果手机越来越多,诺基亚和…

鸿蒙会和安卓一样吃内存吗,鸿蒙系统到底能不能替代安卓?

对于大部分差友们来说,“开发者大会”这个词一定显得陌生而又遥远,跟普通的产品发布会不一样,他们面向的对象并不是普通的消费者,而是各种程序猿和攻城狮。 话又说回来,能开“ 开发者大会”,也说明这个企业…

小米能安装鸿蒙吗,小米等友商手机可以使用鸿蒙系统吗?华为官方表态给力了...

虽然在手机方面持续落寞,但是华为近期却在软件系统上动作频频,在前不久的华为MateX2发布会上,华为官方就正式宣布即将开启旗下多款手机从安卓系统升级到鸿蒙系统的决定,而MateX2也将成为首款搭载鸿蒙系统的华为手机。而目前首批升…

华为平板能安装linux软件吗,华为鸿蒙OS能安装在我们的电脑、笔记本、平板和手机上吗...

有很多人可能都想问:华为鸿蒙OS(操作系统)能否安装在我们的电脑、笔记本、平板和手机设备上?其实答案很简单,由于华为鸿蒙OS是基于Linux内核的且兼容Android应用,如果你的设备能够安装Linux或者是Android,那么安装华为…

如何安装鸿蒙应用,华为鸿蒙OS系统手机怎么安装第三方的应用程序?

最近,随着越来越多小伙伴在使用鸿蒙的过程中遇到了越来越多的问题。比如有的小伙伴说自己的华为手机升级鸿蒙系统之后,就没有办法安装一些第三方的应用程序了,这要怎么解决呢?其实,这是鸿蒙系统的一个特性,…

三星手机能支持鸿蒙系统吗,鸿蒙系统可以在哪些手机上使用

鸿蒙系统于12.16发布,同时也开启了测试招募,很多小伙伴们也都想第一时间去尝试这个全新的手机系统,但是由于目前鸿蒙系统刚刚发布,所以还不支持大面积的升级,很多人问鸿蒙系统可以在哪些手机上使用?下面就让…

鸿蒙系统怎么没有微信界面,如果没有微信,使用鸿蒙系统的华为会怎么样?

原标题:如果没有微信,使用鸿蒙系统的华为会怎么样? 我觉得没有微信华为的鸿蒙系统一样可以快速发展起来,并不会因为缺了微信而失败。 目前华为方舟编译器已经有45款应用得到了支持,这些应用都是最常见的,不…

鸿蒙OS可以装电脑吗,华为的鸿蒙系统可以用在电脑上吗?

根据官方描述:“华为的鸿蒙OS是基于微内核、面向全场景的分布式操作系统”。既然是面向全场景,当然也包括了电脑,不过按照个人理解,并不是我们现在所用的电脑,而是基于国产的创新型电脑,这一点华为余承东在…

非华为手机可以刷鸿蒙系统吗,非华为手机用户,你愿意尝试鸿蒙系统吗?

现阶段这玩意是不是安卓大家心里都有数,但问题是这东西看着确实好看。就算是安卓又如何,即使是安卓这个系统看起来也非常有吸引力,emui级别的稳定和miui级别的外观设计,谁不想要呢? 在开发者版本出来之后,内…

解决fatal: unable to access ‘https://github.com/xxx/xxx.git/‘: Failed to connect to github.com port 4

问题的表现 🚨fatal: unable to access ‘https://github.com/xxx.git/’: Failed to connect to github.com port 4 解决方法(2步 ) 输入git config --global --unset http.proxy输入git config --global --unset https.proxy如下图圈红所…

已解决:fatal: unable to access ‘https://github.com/.......‘: OpenSSL SSL_read: Connection was reset,

昨天还可以git push代码到远程仓库,今天使用hexo d上传git仓库是时报了这个错:fatal: unable to access ‘https://github.com/…’: OpenSSL SSL_read: Connection was reset, errno 10054 产生原因:一般是这是因为服务器的SSL证书没有经过…

git push 报错:fatal: unable to access ‘https://github.com/...‘......

问题: 在用git push 提交代码到 github 的时候,遇到了如下报错: fatal: unable to access ‘https://github.com/…/’: OpenSSL SSL_read: Connection was reset, errno 10054 原因: 查询得知一般是因为服务器的SSL证书没有经…

fatal: 无法访问 ‘https://github.com/xxxx.git/‘:Could not resolve host: github.com

执行: git config --global --unset http.proxy 或 git config --global --unset https.proxy完美解决