前言
上海的天氣降溫讓人猝不及防,但是我們的迭代速度卻井然有序。
今天我們帶來了LiteFlow v2.9.4版本。
我們每次的釋出的issue有很大一部分依託於我們的使用者社群,社群人越來越多。我看到了使用者在使用過程中遇到的問題,也收集了很多使用過程中很有意思的建議。這些也正是我們每一次迭代的方向。謝謝那麼多的小夥伴的支援和建議,LiteFlow一直會是一個以社群為驅動的開源框架。
LiteFlow是一個開源編排式規則引擎,能夠讓你的系統邏輯任意編排,使用指令碼書寫邏輯,所有的邏輯和規則均可熱變更。設計系統和重構系統的神器。
如果你是第一次知道這個專案,可以去官網或相關的主頁進行了解:
專案官網:
gitee託管倉庫:
https://gitee.com/dromara/lit...
github託管倉庫:
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的社群是一個異常活躍的開源社群,這裡有許多的開源大佬,技術大牛,群內的小夥伴也很樂意幫你去回答問題。
如果你在使用和學習中有任何問題,可以透過以下方式進入社群進行提問: