mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-11-02 19:21:51 +08:00
Replace the mixed-purpose ResponseEnum with a ResponseCode interface implemented by SuccessCode (OK/ADD/DELETE/UPDATE) and ErrorCode (NOT_FOUND/UNAUTHORIZED/ TOKEN_INVALID/IP_INVALID/FORBIDDEN/PASSWORD_*/VALIDATION/OUT_OF_RANGE/FAILURE), each carrying its HTTP status so the envelope body code and transport status no longer diverge. - Introduce abstract BusinessException carrying an ErrorCode; all 23 business exceptions extend it and bind a fixed code. ExceptionConfig reads the carried code to set both body code and HTTP status (404->R404, 401->R401, 422->R422). - Add GrpcRFactory (ok/fail/notFound) and remove the hand-written GrpcR builder boilerplate across 19 gRPC servers. - Drop the dead @EnumValue index and ofIndex/ofCode/ofName lookups; OUT_OF_RANGE is now carried by OutRangeException. - Update R factory methods to accept ResponseCode; migrate 90+ controllers, 11 gRPC facades, OpenAPI specs and README to the split enums. Also fix several pre-existing red tests surfaced by the full suite: - OAuthMcpRuntimeServiceImplTest: setUp set @Value fields refactored into OAuthProperties; inject the properties object instead. - DriverReadServiceImplTest: reset leaked ConnectionBackoff static state via a new clear() in @BeforeEach. - modbus-rtu/tcp: make the static modbusFactory non-final so tests can swap it. - ble: override no-arg health() to report OFFLINE before initialization. - PlcS7/facade-local tests: expect the thrown exception / use the single-arg overload matching production behaviour. - Remove a duplicate dc3-common-constant dependency in dc3-common-data/pom.xml.
DC3 Common Exception
Overview
dc3-common-exception defines the standard exception types and exception utility class for the IoT DC3 platform. All
services and modules use these exceptions to signal business
errors consistently.
Module Information
- Group ID: io.github.pnoker
- Artifact ID: dc3-common-exception
- Version: 2026.5.22
Key Components
Exception Types
| Exception | Usage |
|---|---|
ServiceException |
General service-level business error |
UpdateException |
Entity update failure |
AddException |
Entity add failure |
DeleteException |
Entity delete failure |
NotFoundException |
Entity or resource not found |
JsonException |
JSON serialization/deserialization error |
AuthException |
Authentication/authorization failure |
DuplicateException |
Duplicate entity conflict |
Utilities
ExceptionUtil— Helper methods for wrapping and rethrowing exceptions with contextExceptionConstant— Standard exception message strings (e.g.,UTILITY_CLASS)
Usage
throw new NotFoundException("Driver not found for device: " + deviceId);
throw new AddException("Failed to add driver: " + entityBO.getServiceName());
Build Instructions
mvn -s ../../.mvn/settings.xml clean package
Related Modules
Used by all dc3-common-* service modules and dc3-center-* services.
License
Copyright 2016-present the IoT DC3 original author or authors.
Licensed under the GNU Affero General Public License v3.0 (AGPL 3.0)