Skip to content

0.38.0

Compare
Choose a tag to compare
@bondolo bondolo released this 12 Mar 17:21
· 1681 commits to main since this release

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 the io.servicetalk.encoding.netty package.
  • 50079f7 - Add SslConfig APIs (#1387)
  • 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.
  • b11aec7 - gRPC missing grpc-status error code update (#1394)
    • grpc-status code was changed from INTERNAL to UNKNOWN if the grpc-status is not present.
  • e6a3522 - Clarify AsyncContext put API relative to @Nullable (#1399)
    • AsyncContextMap values may now be null
  • 9d9720d - Remove deprecated methods from HTTP request/response types (#1340)
    • Removed obsolete payloadBodyAndTrailers, transformRawPayloadBody and transformRaw methods.
  • 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.
  • 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).
  • 04db0b6 - Deprecate MultiAddress and Partitioned client builder methods (#1426)
    • Users of MultiAddressHttpClientBuilder and PartitionedHttpClientBuilder should use initializer(SingleAddressInitializer) builder method to customize configuration of internal SingleAddressHttpClient instances instead of methods at the builder itself. Deprecated methods will be removed in the next release.
  • b0c0b24 - Make UdpReporter.Builder#enableWireLogging consistent with other modules (#1418)
    • UdpReporter.Builder#enableWireLogging(String) is deprecated and replaced with a new overload UdpReporter.Builder#enableWireLogging(String, LogLevel, BooleanSupplier). The deprecated variant will be removed in the next release.
  • 471f7de - Change Verifiers.stepVerifier back to StepVerifiers.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.

Bug fixes

  • 9812099 - BufferOutputStream.write(int) should write as byte and not int (#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 inside transform 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 different CharSequence implementations (#1380)
  • de35c7e - Replace CharSequence equality checks with contentEquals (#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 with SocketChannel for server flush strategy (#1393)
  • f9f6f76 - gRPC Router reduce error log noise (#1403)
  • 44121a1 - TcpConnector reduce log noise (#1400)
  • e33292e - LoadBalancedStreamingHttpClient should not hide PayloadInfo 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

  • 5a5b473 - Github actions remove out of date version comment (#1358)

Dependency upgrades

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.