feat: scaffold Micronaut+Kotlin service per ACMA-8 v4 architecture
- 4 modules (ingress/processing/delivery/reference) + codec + infra + jobs - Flyway V2.0.0: six aux tables (PROC_STATE/MSG_EVENT/REF_DATA/REQ_TRACK/PUMP_JOB/FLIGHT_STATE) - Lua: snapshot_replace (atomic cover+gen-diff-delete), batch_delete (3:30 sweep) - config: env-externalized secrets, phase A/B switch, ACMA-8 param-table defaults - logback: logstash TCP JSON + traceId MDC - pure-logic tests: identity (I3), schd aggregation max-by-EVENT_ID (FIX #7) - build verified: gradle compile+test green on JDK 25 (Micronaut 5.1 requires JVM 25+) Migrated from legacy repo subdirectory per repo-strategy decision (separate repo per service, org convention). Refs: ACMA-9, ACMA-8 v4, ACMA-6
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package com.gzzn.omms.msgexchange.nextgen.codec
|
||||
|
||||
import com.gzzn.omms.msgexchange.nextgen.domain.DecodedMessage
|
||||
import com.gzzn.omms.msgexchange.nextgen.domain.ErrorClass
|
||||
|
||||
/**
|
||||
* ACMA-8 流程 2:解码失败分类(矩阵/状态机:MALFORMED 不重试;CODEC_ERROR 可一键重放)。
|
||||
*/
|
||||
data class DecodeFailure(val errorClass: ErrorClass, val detail: String)
|
||||
|
||||
sealed interface DecodeResult {
|
||||
data class Ok(val message: DecodedMessage) : DecodeResult
|
||||
data class Err(val failure: DecodeFailure) : DecodeResult
|
||||
}
|
||||
|
||||
/**
|
||||
* XML codec:XXE 防护(禁 DTD/外部实体);阶段 1 先 vendor 复用 legacy entity/msg POJO +
|
||||
* jackson-dataformat-xml + JaxbAnnotationIntrospector(现役已验证组合,ACMA-6 选型)。
|
||||
* TODO(阶段1后续): vendor POJO 引入与 BDPB workaround 配置化(golden 固化)。
|
||||
*/
|
||||
interface XmlCodec {
|
||||
fun decode(rawXml: String): DecodeResult
|
||||
fun encodeRqrd(kind: String, rangeJson: String): String
|
||||
}
|
||||
Reference in New Issue
Block a user