0.38.0
Changes
This patch release contains the following significant changes:
New features
- a72066d - Introduce compression based on Netty's codecs (#1376)
io.servicetalk.encoding.api.ContentCodings
has been deprecated. Use the Netty based codecs available under the same name, from theio.servicetalk.encoding.netty
package.
- 50079f7 - Add
SslConfig
APIs (#1387)SecurityConfigurator
and relatedsecure()
builder methods have been deprecated. Use theBuilder.sslConfig(SslConfig)
APIs instead.- System property io.netty.handler.ssl.openssl.sessionCacheClient=true is required to enable client side session cache. This is was due to OpenSSL engine clients causing JDK SSL servers to fail (suspected JDK bug) and will be removed in a future Netty release.
- 8905209 - gRPC Unix Domain Socket Client Support (#1388)
- c25ebd9 - Publish
servicetalk-concurrent-jdkflow
artifacts (#1401) - 6524c8f - Add
GrpcBindableService
interface for DI creation and configuration (#1374) - e2d422c - Add javadoc comments to gRPC code generation (#1405)
API or Behavior changes
- 3afe14a - Require gRPC blocking streaming services to close
GrpcPayloadWriter
(#1406)- Be aware that your application needs to close
GrpcPayloadWriter
instances where previously ServiceTalk would close them when the handler returned.
- Be aware that your application needs to close
- b11aec7 - gRPC missing grpc-status error code update (#1394)
grpc-status
code was changed fromINTERNAL
toUNKNOWN
if the grpc-status is not present.
- e6a3522 - Clarify
AsyncContext
put API relative to@Nullable
(#1399)AsyncContextMap
values may now benull
- 9d9720d - Remove deprecated methods from HTTP request/response types (#1340)
- Removed obsolete
payloadBodyAndTrailers
,transformRawPayloadBody
andtransformRaw
methods.
- Removed obsolete
- a0f942a - Remove HTTP/2 content-length header validation (#1421)
- h2 content-length header validation has moved to netty see CVE-2021-21295. As the result of this change, previously added
io.servicetalk.http2.allowInvalidContentLength
system property was removed.
- h2 content-length header validation has moved to netty see CVE-2021-21295. As the result of this change, previously added
- b1e8532 - Provide opt-out mechansim for HTTP/2 content-length enforcement (#1353)
- The new opt-out system property is
io.netty.http2.validateContentLength
(will be removed in future releases).
- The new opt-out system property is
- 04db0b6 - Deprecate MultiAddress and Partitioned client builder methods (#1426)
- Users of
MultiAddressHttpClientBuilder
andPartitionedHttpClientBuilder
should useinitializer(SingleAddressInitializer)
builder method to customize configuration of internalSingleAddressHttpClient
instances instead of methods at the builder itself. Deprecated methods will be removed in the next release.
- Users of
- b0c0b24 - Make
UdpReporter.Builder#enableWireLogging
consistent with other modules (#1418)UdpReporter.Builder#enableWireLogging(String)
is deprecated and replaced with a new overloadUdpReporter.Builder#enableWireLogging(String, LogLevel, BooleanSupplier)
. The deprecated variant will be removed in the next release.
- 471f7de - Change
Verifiers.stepVerifier
back toStepVerifiers.create
(#1392)- Renaming of the static factory class and methods to improve code understanding and readability. The deprecated
Verifiers
class will be removed in the next release.
- Renaming of the static factory class and methods to improve code understanding and readability. The deprecated
Bug fixes
- 9812099 -
BufferOutputStream.write(int)
should write asbyte
and notint
(#1379) - b61f572 - Allow HEAD requests with content-length header over HTTP/2 (#1360)
- a74c2b4 - Do not fail HTTP/2 single-frame messages with zero content-length (#1371)
- 50079f7 - Fix SNI and SSL hostname bugs (#1387)
- 3842a92 - Do not add
transfer-encoding: chunked
insidetransform
method (#1408) - 7c2ca18 - Fail parsing signed
Content-Length
header values (#1427) - bcf7a68 -
FromInputStreamPublisher
should apply an upper bound to temporary buffer size (#1416) - 125db59 -
HeaderUtils#pathMatches
incorrectly compares two differentCharSequence
implementations (#1380) - de35c7e - Replace
CharSequence
equality checks withcontentEquals
(#1383) - ca5b032 -
HttpRequestMetaData
query string empty value parsing fix (#1355) - 1a542c7 -
HttpCookiePair
impls should treat name and value case-sensitively (#1370) - 8cad3b1 - Correctly use
emptyAsyncCloseable()
(#1367)
Improvements
- 1a7e144 - Improvements for
ContentCodec
exceptions (#1428) - 811571b - Remove 1ms connect timeout in tests (#1417)
- 09ae719 - gRPC javadoc comment generation updates (#1414)
- ea4fe7e - FlakyTest: Replace
EmbeddedChannel
withSocketChannel
for server flush strategy (#1393) - f9f6f76 - gRPC Router reduce error log noise (#1403)
- 44121a1 -
TcpConnector
reduce log noise (#1400) - e33292e -
LoadBalancedStreamingHttpClient
should not hidePayloadInfo
of requests (#1384) - 6ad0037 - Switch to non-deprecated
Matchers.assertThat
(#1382) - f5991c4 - Avoid "Maximum active streams violated for this endpoint" at the client level (#1373)
- 4f3119d - Add Netty epoll dependency for linux-aarch64 (#1372)
- 7892210 - Update Netty gradle dependencies to
runtimeOnly
(#1422) - 64b11bf - Add additional tests for checking correct validation of HTTP headers (#1369)
- 45e5ae1 - Improve
H2PriorKnowledgeFeatureParityTest#trailersWithContentLength()
(#1359)
Documentation
- 9c2322a - Fix search feature for javadoc website (#1362)
- 31b64f1 - Reference Reactive-Streams 1.0.3 in Javadoc (#1378)
- f2434a3 - Add Lazy Execution Interoperability section to docs (#1413)
- 58777e7 - Add gRPC application level error example (#1402)
Github actions
Dependency upgrades
- c4de9b7 - Bump scacap/action-surefire-report (#1356)
- 5e77753 - Bump actions/cache from v2 to v2.1.4 (#1357)
- 83332cc - Update Netty 4.1.58 -> 4.1.59 (#1361)
- 1f95e4a - Update Netty 4.1.59 -> 4.1.60 (#1419)
- fd9589a - Bump scacap/action-surefire-report (#1366)
- 362e434 - Bump me.champeau.gradle.jmh from 0.5.2 to 0.5.3 (#1364)
- 7cfdc3a - Bump dawidd6/action-download-artifact (#1391)
- 8eb6325 - Update protobuf 3.14.0 -> 3.15.3 (#1389)
- 6e201c5 - Update protobuf-gradle-plugin 0.8.14 -> 0.8.15 (#1390)
- c7ef401 - Update pmd 6.24.0 -> 6.32.0 (#1396)
- aa1b450 - Update grpc-java 1.34.0 -> 1.36.0 (compatibility testing) (#1398)
- 3d8c795 - Update checkstyle 8.33 -> 8.41 (#1397)
- 0a447aa - Update spotbugs 4.1.4 -> 4.2.2, spotbugs-gradle-plugin 4.5.1 -> 4.6.2 (#1395)
- 90c7399 - Update zipkin-reporter 2.16.2 -> 2.16.3 (#1411)
- e604442 - Update jcTools 3.2.0 -> 3.3.0 (#1412)
- 242f690 - Update jUnit 4.13 -> 4.13.2 (#1410)
- eb5d99f - Update JMH 1.23 -> 1.28 (#1409)
Thank you
Every idea and bug-report counts and so we thought it is worth mentioning those who helped in this area. Please report an unintended omission.