diff --git a/DECISIONS.md b/DECISIONS.md index fef0d63d..1af8a3bd 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -20,8 +20,8 @@ - **Decision**: 拆出独立 `command-gateway` 模块,复用 `session-core`;本次重构同步交付 - **Consequences**: HTTP 对外接口(原 JT808Controller / JT1078Controller)迁移到此模块 -## ADR-004 信达 Push:保留模块但彻底重写 -- **Status**: Accepted +## ADR-004 信达 Push:Legacy only +- **Status**: Superseded by ADR-011 - **Context**: 旧实现硬编码凭证、无重连、0300/0401 空实现 - **Decision**: 1. 新模块 `inbound-xinda-push` 隔离第三方库 `gps-push-client` @@ -29,7 +29,7 @@ 3. 自动重连 + Resilience4j 熔断 4. 0200/0300/0401 **仅做协议解析**,转换为 `VehicleEvent` 后直接投 Kafka 5. **业务处理全部下沉到下游消费者**,本服务不再实现报警/透传业务逻辑 -- **Consequences**: 旧代码 messageReceived 里的 TODO 不再回到本仓库;需要协调下游消费者团队认领 +- **Consequences**: 信达 Push 现在不属于默认生产面;模块仅保留在 `legacy-xinda` profile,后续优化优先投向 GB32960、JT808、宇通 MQTT、历史和统计链路。 ## ADR-005 JT1078 / JSATL12 进第一批 - **Status**: Accepted @@ -60,6 +60,15 @@ - **Status**: Accepted - **Decision**: 沿用 Maven,统一 BOM 管理版本,Spotless 格式化,ArchUnit 守护分层 -## ADR-010 框架:Spring Boot 3.4 +## ADR-010 框架:Spring Boot 3.5 - **Status**: Accepted -- **Decision**: Spring Boot 3.4.x,支持 JDK 25;AutoConfiguration 用于按需启停 +- **Decision**: Spring Boot 3.5.x,支持 JDK 25;AutoConfiguration 用于按需启停 + +## ADR-011 默认生产面:三协议接入 + 历史 + 统计 +- **Status**: Accepted +- **Context**: 生产接入范围已经从 GB32960 三应用拆分,扩展为三条活跃接入链路和两个消费应用;信达 Push 已废弃,不应再出现在默认构建、部署或优化目标里。 +- **Decision**: + 1. 默认生产面包含 GB32960、JT808、Yutong MQTT、vehicle-history-app、vehicle-analytics-app。 + 2. Xinda Push 仅保留在 `legacy-xinda` profile,不进入默认 Maven reactor、Woodpecker 镜像发布和历史消费绑定。 + 3. `command-gateway` 和 JT1078 继续作为可选能力,通过 `optional-command-gateway` profile 显式启用。 +- **Consequences**: 默认构建和部署保持精简;后续性能、可靠性、字段解析和存储优化都优先服务三条活跃协议链路。 diff --git a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/MavenModuleProfileTest.java b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/MavenModuleProfileTest.java index f5edb108..a0d2217e 100644 --- a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/MavenModuleProfileTest.java +++ b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/MavenModuleProfileTest.java @@ -83,6 +83,19 @@ class MavenModuleProfileTest { .doesNotContain("Spring Boot 3.4"); } + @Test + void architectureDecisionsMatchCurrentDefaultProductionSurface() throws Exception { + String decisions = Files.readString(repositoryRoot().resolve("DECISIONS.md")); + + assertThat(decisions) + .contains("## ADR-004 信达 Push:Legacy only") + .contains("## ADR-011 默认生产面:三协议接入 + 历史 + 统计") + .contains("GB32960、JT808、Yutong MQTT、vehicle-history-app、vehicle-analytics-app") + .contains("Xinda Push 仅保留在 `legacy-xinda` profile") + .doesNotContain("## ADR-004 信达 Push:保留模块但彻底重写\n- **Status**: Accepted") + .doesNotContain("Spring Boot 3.4.x"); + } + private static Document rootPom() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);