Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
0.42.56 source code.tar.gz | 2025-04-25 | 4.7 MB | |
0.42.56 source code.zip | 2025-04-25 | 8.0 MB | |
README.md | 2025-04-25 | 4.7 kB | |
Totals: 3 Items | 12.7 MB | 0 |
This is a minor maintenance release appropriate for all ServiceTalk users that contains several useful improvements and bug fixes. This release is expected to be a "drop-in" replacement for all prior 0.42.X releases.
The most notable change is in how ServiceTalk propagates context of MDC and OpenTelemetry. We now offer the CapturedContext
abstraction which lets ServiceTalk use the native context storage mechanisms of 3rd party libraries. We're now using this mechanism for both MDC and OpenTelemetry. See the Behavior Changes section for more details.
Changes
Behavior Changes
- https://github.com/apple/servicetalk/commit/19acad23e41c414b27661347b3c468b854f72552 - log4j-mdc: Use
CapturedContext
mechanism for MDC to get copy behavior (#3244) - This preserves the expected thread-local behavior of MDC while still correctly propagating it throughout the ServiceTalk framework. If you encountered any issues with new behavior, use the temporarily introduced system property
io.servicetalk.log4j2.mdc.utils.useCapturedContextStorage=false
to opt-out and report any issues back to us. - https://github.com/apple/servicetalk/commit/ed57e9038feb704a5463240be800d3622a8bb562 - opentelemetry: use the new context propagation mechanism (#3199)
- The new propagation mechanism doesn't require changing how OTEL stores context, instead capturing the context from the OTEL native storage location and properly restoring it throughout the ServiceTalk stack. This fixes a number of correctness issues with ServiceTalk propagation as well improving compatibility with other libraries using OpenTelemetry.
New Features
- https://github.com/apple/servicetalk/commit/fc68f8920d446b683eeb91dcacae37d101271ee2 - concurrent-api: Make the
CapturedContext
API's public (#3203) - https://github.com/apple/servicetalk/commit/e0858da18af9ef2fb5e4d3420ffc3c95cb7c5466 - concurrent-api: add
CapturedContextProvider.captureContextCopy()
method (#3233) - https://github.com/apple/servicetalk/commit/aad031ef1e10a68b0de196611bd89539c7e094ca - http-utils: add
AfterFinallyHttpOperator
(#3231)
Bug Fixes
- https://github.com/apple/servicetalk/commit/67776336316085334e37188a64f20e096fbb212d - Server-side doesn't share
AsyncContext
through entire request-response exchange (#3221) - https://github.com/apple/servicetalk/commit/95820dba08efb1a5e570023eb0c30eea0d58beeb - Fix
AsyncContext
propagation through connection acceptors chain (#3223) - https://github.com/apple/servicetalk/commit/6b538e946b631fd9da0b3706145bfb7f362c7a48 -
DefaultNettyConnection
: shareAsyncContext
state on write (#3218) - https://github.com/apple/servicetalk/commit/67331d19798bfb0dca9a1b548270661b0700101b - http-netty: Properly drain request body if response body fails (#3224)
- https://github.com/apple/servicetalk/commit/f1e4b36a4fab299dbbec739019b487831cc1caf1 - opentelemetry-http: Set context correctly for the server request body (#3212)
Improvements
- https://github.com/apple/servicetalk/commit/62d7db7bad7518fb85be71f30a674e68716ac38f - Make unexpected gRPC exceptions visible on the server-side (#3235)
- https://github.com/apple/servicetalk/commit/82bdbb73e4977ac8db57c3cc3e2027a97c0088b1 - Share context inside
Publisher.onErrorReturn
/Single.onErrorReturn
(#3216) - https://github.com/apple/servicetalk/commit/e770156d2fabe5f1c63f570a9682fdb447910ec9 - Don't use
discardEventsAfterCancel
when not necessary (#3237)
Dependencies
- https://github.com/apple/servicetalk/commit/86c9fe9b419caf882400c5f543394cd9516a38b7 - Upgrade Netty 4.1.119 -> 4.1.121 (#3248)
- https://github.com/apple/servicetalk/commit/388f0f9be05bc9a698cfbf2746195cb6459e05b9 - opentelemetry-http: upgrade to otel-api 1.48 and otel-instrumentation 2.14 (#3215)
- https://github.com/apple/servicetalk/commit/be6e41780a6132cc7e4585a992b0295827a555bd - Make incubator io_uring transport a compileOnly dependency (#3226)
- https://github.com/apple/servicetalk/commit/ded0677ce16fd8b72a30d2f9c451d9e0362d5368 -
servicetalk-grpc-protoc
: addservicetalk-grpc-protobuf
transitively (#3227) - Users don't need to add
servicetalk-grpc-protobuf
dependency explicitly to compile generated stubs if they already haveservicetalk-grpc-protoc
on the classpath.
Thank you
Every idea, review, and bug-report counts and so we thought it is worth mentioning those who helped in this area. Please report any unintended omission.
@bryce-anderson @daschl @idelpivnitskiy @mgodave