You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rewrites patch 0001 (Jackson -> Micronaut Serde 3.x): user payloads use
the application's injected io.micronaut.serde.ObjectMapper; SDK-internal
protocol JSON (operation tokens, local-activity markers, failure
encoding) uses a library-private mapper whose SDK-specific formats
(Duration-as-millis, OperationTokenType-as-int) are field-scoped and
proven not to leak into a consuming app's DI mapper. Removes
jackson-databind and moshi from the runtime classpath (okio remains as a
wire-runtime transitive).
The Serde 3.x requirement bumps the build to JDK 25 / Gradle 9 (wrapper
9.x, --release 25, Mockito 5.23.0, logback 1.5.18, Error Prone disabled
on the 25 modules). Trims patch 0004 (Wire) to drop the Moshi
WireJsonAdapterFactory integration; Wire Message types serialize as
native protobuf binary.
overlay/gradle.properties: drop moshiVersion, add Serde/Micronaut
versions + build heap. README: rebuilt patch table, Serde behavior
notes. CI: JDK 25.
Note: .github/workflows/manual-build.yml also carries a pre-existing
uncommitted version_override input (unrelated working-tree edit).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The no-arg constructor falls back to a library-private mapper (used by SDK defaults and tests).
27
+
28
+
**Behavior differences from the previous Jackson/Moshi converter** (Serde is reflection-free / compile-time):
29
+
30
+
- Workflow argument/result types must be `@io.micronaut.serde.annotation.Serdeable` (your Micronaut 5 models already are).
31
+
-**Public-field POJOs serialize to `{}`** — Serde uses getter/property access by default. Use records, getters, or `@Introspected(accessKind = {FIELD, METHOD})`.
32
+
-`java.time.Duration` serializes as integer nanoseconds (Serde default), not an ISO-8601 string.
33
+
- An empty `byte[]` field inside a large bean may deserialize as `null`.
34
+
- Wire `com.squareup.wire.Message` types serialize as native protobuf binary (`protobuf/wire`); the previous nested-Wire-in-JSON (Moshi `WireJsonAdapterFactory`) path is gone.
Requires **JDK 25** (Micronaut Serde 3.x requires JVM 17+; the build targets `--release 25`). The Gradle wrapper is 9.x, which runs natively on JDK 25.
Then add `mavenLocal()` to your consuming project's repositories block.
58
80
59
81
## Dependency versions
60
82
61
-
New dependencies introduced by patches (e.g. Moshi) have their versions in `overlay/gradle.properties`. This file is copied into `build/` by `apply-patches.sh` and is scannable by Renovate.
83
+
New dependencies introduced by patches (Micronaut Serde, Wire) have their versions in `overlay/gradle.properties` (`micronautSerdeVersion`, `micronautVersion`, `wireVersion`), along with the Gradle heap settings the JDK-25 build needs. This file is copied into `build/` by `apply-patches.sh` and is scannable by Renovate. Versions bumped on existing dependencies (Mockito, logback, Error Prone) live in the patched `build.gradle` itself.
0 commit comments