0.42.11
版本发布时间: 2022-06-11 03:25:39
apple/servicetalk最新发布版本:0.42.47(2024-07-26 05:05:49)
Changes
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 0.41.x branch is now EOL. Please plan your migrations accordingly, and let us know if you have any questions. The recommended path is:
- Update to the latest version of 0.41.x (https://github.com/apple/servicetalk/releases/tag/0.41.16)
- Resolve all deprecations. All deprecations include javadocs explaining the recommended replacement approach. The javadocs can pulled by your IDE and also viewable on the 0.41 docs website.
- Update to latest version of 0.42.x (see https://github.com/apple/servicetalk/releases - currently this release, 0.42.11)
API Deprecations
-
https://github.com/apple/servicetalk/commit/5565f3214f3b9701fa5053eadbc3384fd8847128 - Add default implementations for deprecated methods (#2235) - this helps users to start migrating off interface methods that was marked as
@Deprecated
in previous releases
New Features
-
https://github.com/apple/servicetalk/commit/bff337833db9f590628987dc9f6f6eb06e2248b8 - Add dependencies BOM (#2210)
- ServiceTalk now provides two BOM (Bill of Materials) files each with slightly different purposes;
servicetalk-bom
andservicetalk-dependencies
. BOM files allow separation of dependency management and version management; a BOM specifies only component versions, not dependencies. Centralizing the management of versions to a single file greatly reduces the maintenance burden for updating to new versions and improves consistency because all references to a dependency will use the same version. The BOM files define the versions of modules which might be included as dependencies, but do not include the module as a dependency. Later when the module is included as a dependency, the dependency is specified without including a version and the version specified in the BOM is used. Theservicetalk-bom
BOM includes version information all ServiceTalk modules; version selection for external non-ServiceTalk dependencies is done in individual modules. Theservicetalk-dependencies
BOM extends theservicetalk-bom
by also defining specific versions to be used for the external modules ServiceTalk depends upon. Unless your application requires different versions of these same dependencies then using theservicetalk-dependencies
BOM is the most convenient way to ensure that a tested and supported set of modules is used or building and running the application. Theservicetalk-dependencies
BOM should be preferred whenever possible. Using theservicetalk-bom
may be easier when your application wishes to do more complete management of external dependencies, or you wish to include ServiceTalk as anenforcedPlatform
, but do not want the external dependencies to be included in that constraint. To override a specific dependency version with your application's required version you can use something like the following in yourbuild.gradle
:
- ServiceTalk now provides two BOM (Bill of Materials) files each with slightly different purposes;
implementation(platform("io.servicetalk:servicetalk-dependencies:$servicetalkVersion"))
// Overrides the default Netty BOM version imported by ServiceTalk with a specific version
implementation(enforcedPlatform("io.netty:netty-bom")) {
version {
strictly '4.1.76.Final'
}
}
// Overrides the default Jackson databind version with a specific version
implementation ("com.fasterxml.jackson.core:jackson-databind") {
version {
strictly '2.13.2.1'
}
}
-
https://github.com/apple/servicetalk/commit/b952931b2d97d4c8ea4331e118b658bd37a11e7b - Support
Completable
from aCallable
(#2225) -
https://github.com/apple/servicetalk/commit/49e3525dc8016cf91b222d105c5307328bf864da - Make
HostHeaderHttpRequesterFilter
public (#2212) -
https://github.com/apple/servicetalk/commit/d85bc3fd8c16de7243fc713b36cf726849ab1358 - Add
ConnectionObserver#connectionWritabilityChanged(boolean)
(#2229) -
https://github.com/apple/servicetalk/commit/f9091b0260f1f131ae7a9c58de707696568ef781 -
HttpLifecycleObserver
: notify when payload body is requested (#2230, #2243)
Bug Fixes
- https://github.com/apple/servicetalk/commit/c0b80c08f6a1396c9c42e656495a5442948cf5ff - Clear async-context inside RRLB health checking (#2220)
-
https://github.com/apple/servicetalk/commit/6afe86b72d61ef3160f514c89c883fc02fcda2e7 - Fix regression of client
offloadNone()
strategy (#2192) -
https://github.com/apple/servicetalk/commit/0e38d94b62619294e5d184d6c874b52e6e3a956d - Return
ExecutionContext
with correct strategy (#2244)
Improvements
- https://github.com/apple/servicetalk/commit/512558d0e76af4537845eb54e12678ab5c9dc80f - Make routers explicit about offloading behavior (#2241)
- https://github.com/apple/servicetalk/commit/d05e52aa82332e02afda5ca3904a58f1c8057b04 - Allow no SP after status-code for HTTP/1.x responses (#2247)
- https://github.com/apple/servicetalk/commit/f41ce248b789ff416c508648f430ec44a2c72a24 - Enhance logging for execution strategy computation (#2224)
- https://github.com/apple/servicetalk/commit/fc53573c2cf34c16af5463d6125ccf4be4d66648 - Log the cause why native transport libs are not loaded (#2226)
- https://github.com/apple/servicetalk/commit/05a015c7cc20db25cd886d037cfd87bdd2d70eb7 - gRPC improve error status for non-200 h2 response status (#2221)
-
https://github.com/apple/servicetalk/commit/9c4e932f014a8d450cb690b56f4069cb6aa50761 - Avoid direct usage of
RuntimeException
(#2228) -
https://github.com/apple/servicetalk/commit/45019c5cc73c332aec7b6d55cfb5f30ac6b40391 - Cleanup
HttpPredicateRouterBuilder
(#2234) -
https://github.com/apple/servicetalk/commit/64f2716f740b543be37388ce79d636abcc4d427d - Reduce log level in
RoundRobinLoadBalancer
(#2213) -
https://github.com/apple/servicetalk/commit/13e6b47ab1010373aee5675052664a081adcb8df - Migrate
ON_CONNECTION_SELECTED_CONSUMER
to request context (#2239) -
https://github.com/apple/servicetalk/commit/0f0f86eb27464afac9ecc3b27fe1a2269c9a4b67 - Use
servicetalk-dependencies
BOM internally (#2217) - https://github.com/apple/servicetalk/commit/05fbfa23a7d9b997449a026cee949f17d5ba9cab - Use more external dependency BOM files (#2218)
-
https://github.com/apple/servicetalk/commit/cda273e02b3e4768a4b9cb77292f100b3f5adacf - Use
servicetalk-dependencies
for tests (#2219)
Dependency Updates
- https://github.com/apple/servicetalk/commit/1290f952c0bb57499f931e362ad769866fa29f7f - Update netty-incubator-transport-native-io_uring 0.0.13 -> 0.0.14 (#2208)
- https://github.com/apple/servicetalk/commit/83fd27c34595718a11785f9de156ed6fb3f1ed2a - Update spotbugs 4.6.0 -> 4.7.0 (#2222)
- https://github.com/apple/servicetalk/commit/599b059ac2f30ef1eeb1081fddba49c3d29c5482 - Update protobuf 3.20.0 -> 3.21.0 (#2231)
Documentation & Examples
-
https://github.com/apple/servicetalk/commit/e43761c8fcaf7d73b67b117bdeb69082d0f167a2 - Update
http
documentation links tohttps
(#2232) -
https://github.com/apple/servicetalk/commit/1d454a74a12f168ecc0c963d4709f74dcb8fd1e9 - Clarify expectations for
TransportObserver
implementations (#2238) -
https://github.com/apple/servicetalk/commit/88bf117583ad026d9017a6a59f836dbefebc0900 - Spelling error in
DefaultHttpExecutionStrategy
(#2242) -
https://github.com/apple/servicetalk/commit/48a0c54b99ede30b04c75b43b98e12ff095ff4af - Use
servicetalk-grpc-protoc-all
for pom.xml (#2214)
Build/Release/Github actions
-
https://github.com/apple/servicetalk/commit/407a90d7273584a4011d1048ed8900c7d17ade57 - Add
mavenCentral()
repository if no repositories are configured (#2215) - https://github.com/apple/servicetalk/commit/ff6436b174631c7910b1342d1abfb3250dc9dad8 - Bump dawidd6/action-download-artifact from 2.20.0 to 2.21.0 (#2236)
- https://github.com/apple/servicetalk/commit/201748f2ca222a89e876edd7ccd92b52cb3557a9 - Bump dawidd6/action-download-artifact from 2.19.0 to 2.20.0 (#2233)
Tests
- https://github.com/apple/servicetalk/commit/8127bde8b4a48d72a7a01a46fac679b0be854017 - Add unit test for gRPC over h1, negotiated by TLS+ALPN (#2216)
- https://github.com/apple/servicetalk/commit/931ffe4edd6436148dade509aaf0bc27f1e92fa4 - Additional test of expected server offloading (#2227)
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.
@bondolo @chemicL @domcorvasce :tada: ** NEW CONTRIBUTOR ** :tada: @idelpivnitskiy @Scottmitch @tkountis