Files
starRiverProperty/docs/superpowers/data/2026-05-06-component-org-different-22-per-class-review.md
hpd840321 7b2bd307f1 Initial commit: reorganized source tree
- backend/: 13 Maven modules (cw-elevator-application, cloudwalk-cloud, intelligent-cwoscomponent, ninca-crk, etc.)
- frontend/: 4 Vue projects (elevator-front, cwos-portal, alarm-front, front_acs) + decompiled + scripts
- scripts/: build, test-env, tools (Docker Compose, service templates, API parity)
- docs/: AGENTS.md, superpowers specs, architecture docs
- .gitignore: standard Java/Maven exclusions

Moved from legacy maven-*/ root layout to backend/ organized structure.
2026-05-09 09:56:45 +08:00

9.7 KiB
Raw Permalink Blame History

DIFFERENT(剩余):逐类 javap -p 核对(现场 JAR vs 本仓库 target/classes

日期: 2026-05-062026-05-06 更新OpenCvUtils + 三工具类已与现场 IDENTICALDIFFERENT 18
依据: maven-ninca-common-component-organization/tools/out/deploy_javap_audit_main.jsonstatus == "DIFFERENT"
证据文件: tools/out/different-22-javap/(历史批量 diff);复跑审计后以 deploy_javap_audit_main.json 为准

现场 classpath ninca-common-component-organization-V2.9.2_20210730/BOOT-INF/classes + 四模块 *-v2.9.2_xinghewan.jar
本地 classpath interface / data / service / web / startertarget/classes(与 deploy_javap_audit.py 一致)


1. 总览:差异类型与处置

类型 含义 本批数量(约)
A. 仅 synthetic / lambda 形变 public/protected 方法签名的变化,差异集中在 lambda$…null$ 或具体化类型(ListArrayList 多数
B. 小范围 API 面变化 主要为 ChannelFileReader 声明 AutoCloseable(工具类构造已与现场对齐) 1
C. 明确业务增强 新增字段/私有方法或组织 detail 等实现路径增加分支 2+
D. 与现场能力严重偏离 公开方法集合与现场不等价 已处理(OpenCvUtils 已与现场 IDENTICAL

说明: 已与现场 IDENTICAL 的曾有 DIFFERENT 项:OpenCvUtils(与 jar.src/javap 对齐)、ImageUtil/ToolUtil/ImageEditUtils(补 private 无参构造,与部署 service JAR 一致)。仍 DIFFERENT18 类(多为 synthetic/lambda 或业务超前)。


2. 逐类表(剩余 DIFFERENT18;已收敛项见 §2.1

2.1 已从 DIFFERENT 收敛(供追溯)

FQN 处置
OpenCvUtils 与现场 service JAR + jar.src 对齐,javap -p IDENTICAL
ImageUtilToolUtilImageEditUtils 增加 private Xxx() {},与部署 private 无参构造一致,javap IDENTICAL

2.2 仍为 DIFFERENT(简表)

# FQN 差异要点(见对应 diff-*.patch 分类 建议
1 …common.AbstractImagStoreService lambda$distinctByKey$0 首参 SetConcurrentHashMap$KeySetView A 视为编译器/具体化差异;行为以方法体为准(可抽查 javap -c
2 …common.JsonUtils lambda$toStrList$1ListArrayList A 无 public 变化
3 …common.OkhttpUtil 新增 lambda$postJson$1(…) A postJson 重载实现略调;确认与 HTTP 头/体一致后接受
4 …config.ChannelFileReader 本地 implements AutoCloseablejavap 首行与现场不同);现场仍有 close() B CommonAppExportExecuteTask 使用 try-with-resources,保留 AutoCloseable;接受与现场 javap 字符串不一致或与现场合并策略
5 …service.CertRegistryHandler lambda$null$4/5 形参列表简化(Optional/交叉类型 → 单类型) A 典型 Stream/Optional 链改写;公开方法未变
6 …CpDeviceImagePersonServiceImpl personPassRule 相关 lambda 合并/删减 A public 段一致;属实现整理
7 …CpImageStorePersonManager 多组 lambda$null$* 删除,编号下移 A 同上
8 …CpImageStorePersonSynManager Redis 回调 lambda 返回类型 LongObject A JDK8 RedisConnection 泛型与 lambda 桥接常见现象
9 …CpImageStorePersonValidateManager 大量 lambda$* 重排、嵌套 lambda 命名变化 A patch 行数最大,仍以 synthetic 为主;建议用业务用例回归(校验任务、延期校验)
10 …CpImageStoreServiceImpl packageCpResult/packageImageStoreResult/getAssociated 等 lambda 编号与具体类型 A public 未变
11 …CpImageStoreToolServiceImpl lambda$batchRemoveFace$5 少一参(去掉 BatchRemoveFaceParam A 对外接口未变;实现层闭包捕获范围变化
12 …DeviceGroupRefChangeEventHandler HashSet vs Set 于一处 lambda A 无 public 变化
13 …DevicePersonSyncManager lambda$null$2 形参类型变化 A 无 public 变化
14 …DevicePersonSyncServiceImpl 删除两行 deviceImageStoreMap 相关 lambda A public 未变
15 …ImgPersonServiceImpl 新增字段 tenantVisitorFloorPolicyService新增私有方法 buildCommaSeparatedFloorNamesbuildFloorInfoListFromOrderedZoneIds C 星河湾租户访客楼层增强;发版说明与联调必测
16 …OrganizationServiceImpl detail/listNames/saveAreaDetails 路径下 lambda 数量与编号变化(增加 ZoneUnitResultDTO 等参与) A/C javap 前半段 public 方法与现场一致;若产品关心 detail 返回中区域/楼层展示,做专项对比测试
17 …starter.task.ComponentTaskInitialize 现场多 lambda$run$0(String),本地无 A 定时/初始化路径实现差异一致(如去掉一处 stream);启动后看日志与任务是否注册
18 …controller.DevicePersonSyncController devicePersonResync/detail 的 lambda 个数与参数类型 A 三个 public API 未变;可做 elevator API 对拍

3. 与《全量审计》§4 的关系

  • OpenCvUtils 已与现场 javap IDENTICAL(见 §2.1)。
  • ImgPersonServiceImpl(表 2.2 #15已知的仓库超前能力,与 MISSING_DEPLOY(租户策略等) 配套部署后才能在现场 classpath 出现对应依赖类。
  • 其余类以 A 类为主:契约测试(接口级)可通过;集成回归仍建议覆盖图库同步、设备同步、组织详情。

4. 复现核对命令(可选)

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"
# 设置 D_CP / L_CP 同本文档前言,然后:
javap -p -classpath "$D_CP" cn.cloudwalk.service.organization.common.OpenCvUtils > /tmp/deploy.txt
javap -p -classpath "$L_CP" cn.cloudwalk.service.organization.common.OpenCvUtils > /tmp/local.txt
diff -u /tmp/deploy.txt /tmp/local.txt

批量产物已由流水线写入:tools/out/different-22-javap/diff-<ShortName>.patch


关联: [2026-05-06-component-org-full-java-audit-and-remediation.md](./2026-05-06-component-org-full-java-audit-and-remediation.md) §4DIFFERENT 分类说明)