condition-route · 项目介绍

condition-route

本页由项目自动归档生成,源码与最新进展以 GitHub 仓库为准。

项目简介

Java 条件路由等价性检测库:以一组 Condition(position/key/type/value)建模单条路由条件,将多条 Condition 组合成 ConditionRoute,用于检测一组条件路由中是否存在语义等价(条件集合相同、忽略顺序)的重复路由。典型场景是网关 / 路由配置校验——在发布前向配置中发现冗余或冲突。纯 Java 实现,核心类零第三方依赖,配套 JUnit 5 单元测试。

技术栈

维度 技术
主要语言/框架 Java(核心类零依赖,建议 JDK 8+)
测试框架 JUnit 5(Jupiter)
构建方式 无构建工具,纯源码;可临时托管进 Maven / Gradle 运行测试
数据存储 无(内存对象 + 集合比较)

核心功能 / 亮点

  • 条件模型 Condition:position/key/type/value 四元组,重写 equals/hashCode 以支持集合级比较(Condition.java)
  • 条件路由 ConditionRoute:isEquivalent 两两等价判定(先比长度快速失败,再装入 HashSet 无序比较);hasEquivalentRoutes 列表级 O(n²) 检测是否存在任意一对等价路由(ConditionRoute.java)
  • JUnit 5 单元测试覆盖 9 个用例:相同条件、不同顺序、不同条件、不同长度、空列表、单路由、null、多路由含一对等价、空条件(ConditionRouteTest.java)

目录结构

1
2
3
4
5
6
condition-route/
├── Condition.java # 单条件四元组 + equals/hashCode
├── ConditionRoute.java # 条件路由 + 等价判定 + 列表级检测
├── ConditionRouteTest.java # JUnit 5 单元测试
├── README.md
└── roadmap.md # 版本规划(接入 Maven、OR 语义、语义等价等)

相关链接