# 1.1.16 版本发布

  • 适配SpringBoot3.2+版本
  • 升级JSR303检验使用方式,适配jakarta包下组件
  • 增加kstry.story.max-cycle-count配置参数,限制环路流程循环的最大次数,默认:Long.MAX_VALUE
  • 支持Spring框架中的NamedThreadLocal在线程切换时的静默透传

# 1.1.15 版本发布

  • 流程配置支持回环链路
  • 提供默认限流器并支持定制化,支持服务节点限流功能
  • 服务节点支持返回Optional对象
  • 服务节点支持配置降级表达式,执行异常时可执行降级方法
  • 服务节点、子流程支持配置条件表达式,用以控制是否直接跳过当前节点或流程继续向下执行
  • 提供TrackingBeginEvent、TrackingFinishEvent两个Spring容器事件,用来监听节点执行前后的日志对象,可以通过订阅Spring事件的方式使用

# 1.1.14 版本发布

  • 解决服务节点返回Mono类型时重试次数不生效问题

# 1.1.13 版本发布

  • 支持虚拟线程,使用JDK21+时,可以使用kstry.thread.open-virtual参数开启虚拟线程
  • 服务节点、排他网关支持多入度

# 1.1.12 版本发布

  • 更好的支持http服务节点编排

# 1.1.11 版本发布

  • 解决部分server下KstryThreadLocal无法生效问题

# 1.1.10 版本发布

  • 流程支持从之间节点开始执行
  • 升级task-params方便微服务编排入参
  • 网关支持设置服务节点参数,方便规则判断、微服务动态判断等使用场景直接使用指令进行服务调用
  • 新增JSONPath支持,可以使用$前缀在StoryBus中更灵活的获取参数
  • 新增KstryThreadLocal在满足原生ThreadLocal使用场景的前提下,可以保证在Kstry框架中进行线程切换时ThreadLocal值不丢失

# 1.1.9 版本发布

  • NoticeXxx、XxxTaskField、XxxTaskParam系列注解的字段名称由String改为String[],支持多级字段定义比如:good.base.id
  • 新增ScopeDataNotice组件,可以作为服务节点方法的返回值,用来指定需要通知到sta、var、res域的数据

# 1.1.8 版本发布

# 1.1.7 版本发布

  • 流程校验规则优化
  • 日志内容优化

# 1.1.6 版本发布

  • @TaskService 注解增加 @Iterator 属性定义服务节点遍历相关参数
  • 新增 IterDataItem 对象提供获取遍历项及索引字段功能。节点遍历时,如果该类型在服务节点方法入参中被定义会自动注入
  • 节点遍历时,支持节点方法直接返回某遍历项处理后的结果(批量遍历需要返回list),支持Mono类型返回值,无论是否并发聚合后的遍历处理结果与遍历集合数据项顺序一致
  • StoryEngine新增 serialize方法,该方法可以将容器中生效的流程序列化成json字符串,序列化后的Json字符串可直接解析成流程执行,与原流程无异
  • 新增 JsonProcessParser组件,提供Json转可执行流程的功能。任何协议的图形文件只要转化成符合规范的Json都可被解析执行
  • 提供重新实现 SerializeTracking功能的入口,可用来自定义 MonitorTracking追踪的各节点出入参的解析规则,避免大对象序列化成Json时导致的资源占用过多问题

# 1.1.5 版本发布

  • 优化服务节点仅实现ParamLifecycle接口时没有被初始化问题
  • 优化Exp工具类支持自定义条件表达式函数

# 1.1.4 版本发布

  • @Invoke注解支持executor属性。用来使用名称从Spring容器中获取ThreadPoolExecutor实例,以此作为执行当前服务节点的执行器。如果指定但未从Spring中获取到执行器就会报错

  • ReqBuilder支持指定ThreadPoolExecutor实例,作为当前任务的执行器

  • 流程配置中的服务节点支持设置task-params来指定节点执行时的入参,指定入参获取方式会覆盖原来注解获取参数

  • 实现ExpressionAliasRegister注解,自定义条件表达式中的函数,可参考:BasicExpressionAliasRegister

  • 提供SpringParamLifecycle注解,提供了服务节点入参初始化时获取Spring上下文的方式

  • 提供Exp工具类,用以组装流程定义中的条件表达式

# 1.1.3 版本发布

  • @Invoke注解增加retryIncludeExp/retryExcludeExp属性,指定包含/不包含某些异常时,执行重试
  • 流程条件表达式支持o{数字}: 表达式(比如:o1: sta.name != null ),来定义多支路时的执行顺序,未指定顺序时表达式默认为最低优先级
  • 流程配置中未指定节点名称时,尝试获取@TaskService注解的desc属性作为name

# 1.1.2 版本发布

  • TaskComponent、TaskService 注解name变为非必填字段,默认会分别取类名、方法名首字母小写作为组件和服务节点名称
  • 异常情况日志提示优化
  • 支持使用Lambda表达式定义流程

# 1.1.1 版本发布

  • 解决服务节点集成或实现泛型方法时启动失败问题

# 1.1.0 版本发布

新增功能:

  • 主流程、子流程、角色、变量支持动态获取
  • 提供线程切换钩子ThreadSwitchHook,线程切换时传递数据
  • 提供自定义指令,脚本节点功能
  • 提供服务节点拦截器功能

与1.0.x版本不兼容地方:

  • ParamLifecycle接口的beforeafter方法增加ScopeDataOperator入参
  • @TaskService注解去掉targetType属性,该属性原本是当返回值是Mono时用来指定泛型类型的,新版本已可以自动解析
  • BpmnLik更名为ProcessLisk用来定义主流程
  • @CustomRole注解从修饰类改成修饰方法,使用更加灵活

# 1.0.11 版本发布

  • 日志、监控工具优化
  • 流程定义中的服务节点支持分别自定义参数
  • 条件表达式解析策略优化

# 1.0.10 版本发布

  • 提供代码定义流程图方式 定义演示 (opens new window)
  • 降级方法不再要求与目标方法有相同的出入参
  • 流程中定义的非允许为空的服务节点如果没有被实现,会在启动时报错(之前版本是在执行期间报错)

# 1.0.9 版本发布

  • POM依赖调整
  • 表达式 result 取值,改成 res
  • 日志信息优化
  • BusinessException业务异常信息补充

# 1.0.8 版本发布

# 1.0.7 版本发布

  • 继承场景中,支持仅扫描子类服务节点用以提供服务,不扫描父类中的服务节点
  • 细节点优化
  • 日志、错误码优化
  • 解决服务节点返回基本数据类型异常问题

# 1.0.6 版本发布

升级如下:

  • 服务节点执行支持定义超时时间、重试次数、失败降级
  • 子流程支持定义超时时间。可以定义拦截器,在子流程执行前、执行后、执行异常、最终一定执行四个阶段进行自定义操作
  • 子流程支持非严格模式,非严格模式下的子流程出现超时或异常时仅会中断子流程,外围流程会继续
  • 服务节点入参支持定义 ScopeDataOperator,可通过该对象读取、写入StoryBus中保存的变量