Skip to content

Releases: apple/servicetalk

0.42.22

15 Nov 22:29
50afdcf
Compare
Choose a tag to compare

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.

Changes

API deprecations

  • 1f780e3 - Single.concatDeferSubscribe(Publisher) instead of Single.concat(Publisher, boolean) (#2388)
  • 93201f5 - Decouple GrpcStatusException creation from GrpcStatus (#2422)
    • Deprecate GrpcStatus methods and constructors related to creation of GrpcStatusException;
    • Add public methods to GrpcStatusException that allow for creation and take GrpcStatus as state;

New features

  • 7b250ce - Add support for OpenTelemetry (#2408)
    • Adds two new modules servicetalk-opentelemetry-asynccontext and servicetalk-opentelemetry-http that enable native support for OpenTelemetry tracing. Thanks @aleqi200 for the contribution 🎉
  • 9d0e9ce - Move gRPC server deadline filter, allow custom insertion order (#2421)
    • Adds a new method defaultTimeout(Duration, boolean) for gRPC client/server builders to allow users disable default timeout filter position, and adds GrpcFilters class that users can use to configure timeout filter at any order.
  • 16d1af6 - HostAndPort to support parsing ip+port string (#2412)
    • Adds HostAndPort.ofIpPort(...) methods that help parsing IP:port strings.

Bug Fixes

  • 72af80a - DefaultDnsClient: avoid ConcurrentModificationException (#2424)
  • 7de32fc - Publisher#takeUntil cancel before terminate (#2413)

Improvements

  • 8b41bf4 - Preserve the caller's stacktrace for blocking API (#2420)

Dependencies

  • 4ebd767 - Update Netty 4.1.82 -> 4.1.85 (#2415)
  • 927529e - Update Jackson 2.13.4.20221013 -> 2.14.0

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.

@aleqi200
@mgodave
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.21

27 Oct 23:08
14314ec
Compare
Choose a tag to compare

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.

Changes

New API

  • 78c3ee0 - Prepare for an upgrade to Netty 4.1.84 (#2392)
    • As part of this improvement, we added a new default method HttpHeadersFactory.validateNames() that tells users if the current HttpHeadersFactory is configured to validate header names or not.

Bug Fixes

  • b6a0e6d - StringIndexOutOfBoundsException while parsing cookies (#2397)
  • 6b17ccd - H2 TE header parsing bug fix (#2398)
  • 6e56db0 - H2 conversion support OWS for connection header csv (#2400)
  • 17ec22d - HeaderUtils: fix problems with missing space after a semicolon (#2402)
  • 5d22672 - BeforeFinallyHttpOperator: support re-subscribe to the message body (#2409)

Improvements

  • 7fb6875 - WriteStreamSubscriber: respect termination of the publisher (#2387)"
  • 92e02c2 - Implement toString() for TestPublisherSubscriber#pollTerminal(...) (#2385)
  • 78c3ee0 - Prepare for an upgrade to Netty 4.1.84 (#2392)

Dependencies

  • 6acca41 - Update Jackson 2.13.4.20221012 -> 2.13.4.20221013 (#2396)

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.

@mgodave
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.20

13 Oct 23:47
c5084b8
Compare
Choose a tag to compare

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.

Changes

Bug Fixes

  • 01d075b - Buffer.[set|write]Bytes doesn't return -1 after EOF (#2395)

Dependencies

  • 31c7d10 - Use jackson-bom instead of jackson-databind (#2394)
    • Also updates jackson version 2.13.4 -> 2.13.4.1

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.

@mgodave
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.19

12 Oct 19:55
13d060a
Compare
Choose a tag to compare

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.

Changes

Bug Fixes

  • f927517 - gRPC: apply default timeout filter before user-supplied HTTP client filters (#2390)
    • Position of the filter that serves gRPC deadline (defaultTimeout) feature moved from the end of the client filter chain to the beginning. It ensures the deadline covers all business logic, including all appended filters, and prevents situations when an added filter can deadlock. Note that starting from this release, any manual modifications for the grpc-timeout header won't have an effect on the actual timeout duration for the client. If you need to change its value before the timeout is scheduled, use DefaultGrpcClientMetadata#timeout() for per-request modifications.
  • aebad36 - Buffer.[set|write]Bytes doesn't respect length when reading from InputStream (#2389)
  • d9d8e93 - RetryingHttpRequesterFilter: drain response before mapping to exception (#2391)
  • abc0d75 - Racy cancel from transport does not always cancel the message body (#2369)
  • 922993b - NettyCompression gzip streaming decompression over multiple buffers fix (#2380)

New APIs

  • b1a5c53 - Add Publisher#concatPropagateCancel(Completable) to force cancel propagation (#2372)
  • ffc7353 - Single#concatPropagateCancel(Publisher) to force cancel propagation (#2381)

Improvements

  • 1c463da - PublisherAsBlockingIterable: LinkedBlockingQueue -> LinkedTransferQueue (#2386)
  • 16a4f8a - Expand allowed types to accommodate custom service discoverer events (#2379)
  • 509bec5 - DefaultPayloadInfo: enhance toString() to print all flags separately (#2373)
  • 5dc9838 - DefaultBlockingHttp objects to use cast and shareContextOnSubscribe (#2370)

Test Improvements

  • c74af36 - Fix flaky [Http|Grpc]LifecycleObserverTest (#2376)
  • 83760f5 - Fix flaky H2PriorKnowledgeFeatureParityTest.serverGracefulClose() (#2375)
  • 8281b15 - HttpLifecycleObserverTest: account for CL for *DataRequested checks (#2374)
  • 906c4fc - Fix flaky ResponseCancelTest (#2337)
  • 450096e - Add regression tests for netty client factories (#2382)
  • f29e8bd - Enhance testing of the server-side control flow (#2377)

Examples


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.

@mgodave
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.18

27 Sep 04:11
8ce38fe
Compare
Choose a tag to compare

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.

Changes

Bug Fixes

  • f8cb571 - Publisher#flatMapMerge subscribe after cancel (#2364)
  • 952ce2e - ContentEncodingHttpRequesterFilter to remove content-length (#2365)
  • c11d5a9 - ContentEncodingHttpServiceFilter to remove content-length (#2366)

Improvements

  • ae4d6d1 - Improvements for Set-Cookie parsing, allow lax parsing of older specs (#2368)

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.

@chrisvest
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.17

14 Sep 15:42
6ac3443
Compare
Choose a tag to compare

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.
As the ServiceTalk API advances towards a 1.0 release all users are strongly encouraged to update their applications to eliminate all use of deprecated APIs. Existing deprecated APIs will be removed in a future ServiceTalk release without further additional notice. If you encounter problems replacing deprecated usages please create a support issue.

Changes

API Deprecations

  • 43328e1 - gRPC request/response context to pass data between gRPC and HTTP layers (#2311)
    • Deprecate DefaultGrpcClientMetadata.INSTANCE constant and the same constant in all generated subtypes. Instead, always create a new instance of DefaultGrpcClientMetadata. If the INSTANCE is used, any manual attempt to access newly added request/response context will throw UnsupportedOperationException;
    • In the generated gRPC code, deprecate endpoints that operate with GrpcPayloadWriter. Users should migrate to the new overload that has BlockingStreamingGrpcServerResponse instead of GrpcPayloadWriter;
  • 5e5b746 - Deprecate CharSequences.asciiStringIndexOf(...) (#2353)
    • Users should use CharSequences#indexOf(...) instead.

New features

  • 43328e1 - gRPC request/response context to pass data between gRPC and HTTP layers (#2311)
    • No need to use AsyncContext anymore to pass HTTP headers to/from gRPC endpoint.
  • 40d2f02 - HTTP/2 set initial settings (#2341, #2346, #2361)
  • 6b6b162 - Introduce IdleTimeoutConnectionFilter as alternative to IDLE_TIMEOUT (#2340)
    • Helps to track idle connections at L7 OSI layer rather than L4.

Bug Fixes

  • 1681caf - HTTP/2 avoid premature connection closure when negotiating via ALPN (#2342)
  • f11310c - AsciiBuffer.indexOf returns incorrect result for 2-bytes characters (#2352)
  • 2928a29 - Publisher#flatMapMerge allow terminal propagation after invalid demand (#2348)

Improvements

  • 8efc07a - Override toString() for delegating connection (#2335)
  • b7b71bc - Improve DefaultHttp2Settings#toString() (#2347)
  • be079c1 - Use IdleTimeoutConnectionFilter instead of SocketOption by default (#2349)
  • 49f5f8f - Improve parsing of Set-Cookie headers (#2329)
  • 9c668f4 - Allow users access payloadBodyInputStream() multiple times (#2355)

Dependencies

Tests improvements

  • ba7e826 - Validate HTTP/2 messages with malformed headers are rejected (#2359)
  • 8bc579c - Update grpc-java 1.45.1 -> 1.49.0 to test compatibility with the latest release

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.

@chrisvest
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.16

31 Aug 16:36
f4338fe
Compare
Choose a tag to compare

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.

Changes

Bug Fixes

  • 8fbe0d3 - Avoid race when HTTP/1.x request is cancelled at connection level filter (#2331)
  • 797b5e5 - BeforeFinallyHttpOperator dereference subscriber after termination (#2327)

Documentation

  • 126f25d - Clarify debugging examples with more comments (#2330)

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
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.15

18 Aug 20:30
e8d7056
Compare
Choose a tag to compare

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.

As the ServiceTalk API advances towards a 1.0 release all users are strongly encouraged to update their applications to eliminate all use of deprecated APIs. Existing deprecated APIs will be removed in a future ServiceTalk release without further additional notice. If you encounter problems replacing deprecated usages please create a support issue.

Changes

API Deprecations

  • 443f412 - RoundRobinLoadBalancer health-checking should use DeltaJitter (#2326)
    • RoundRobinLoadBalancerFactory.Builder#healthCheckInterval(Duration) is deprecated in favor of the new overload RoundRobinLoadBalancerFactory.Builder#healthCheckInterval(Duration, Duration) that helps to control base duration and the delta jitter at the same time.

Bug Fixes

  • 49bb61f - Publisher#flatMapConcatSingle null value concurrency fix (#2323)
  • 9052736 - Add io_uring dependencies with classifiers in servicetalk-dependencies (#2328)
    • This issue didn't let Maven users to pull all transitive dependencies correctly.

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
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.14

11 Aug 17:59
Compare
Choose a tag to compare

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.

As the ServiceTalk API advances towards a 1.0 release all users are strongly encouraged to update their applications to eliminate all use of deprecated APIs. Existing deprecated APIs will be removed in a future ServiceTalk release without further additional notice. If you encounter problems replacing deprecated usages please create a support issue.

Changes

API Deprecations

Developer note: Additional API deprecation advisories and guidance have been added in each of the 0.41.X releases. Please build your application with the latest 0.41.X release and carefully review the deprecation warnings reported and associated suggestions. Changes to applications may be required for compatibility with future versions of ServiceTalk beyond the API compatible 0.41.X series. While there are many deprecations for planned future API changes, most applications should require few changes as the most significant changes are to internal or specialized APIs. If you have concerns or expect problems related to any of the API deprecations please report these as an issue.

  • 24ad6cc - Deprecate io.servicetalk.client.api.internal.DefaultPartitionedClientGroup (#2176)
    • Deprecation of DefaultPartitionedClientGroup. We are unaware of any use-cases of this API and we plan to remove it completely in future releases.
  • 908a84f - Deprecate public gRPC API that is not used anymore by ST (#2300)
    • Deprecate io.servicetalk.grpc.api.GrpcClientFactory#supportedMessageCodings, variant available as io.servicetalk.grpc.api.GrpcClientFactory#bufferDecoderGroup, and GrpcRoutes.AllGrpcRoutes interface.
  • 5cfe9c4 - Revert backward incompatible changes (api & binary) introduced in #2278 (#2306)
    • Deprecated HttpLoadBalancerFactory#toLoadBalancedConnection(FilterableStreamingHttpConnection) - introduced a variant that also accepts ContextMap and ReservableRequestConcurrencyController.
    • Deprecate all classes and interfaces in io.servicetalk.client.api.internal package. servicetalk-client-api-internal module will be removed in future releases.
  • df916b6 - Give access to the underlying TCP ConnectionContext from HTTP/2 service (#2319)
    • Deprecate one of io.servicetalk.transport.netty.internal.DefaultNettyConnection#initChildChannel overloads.

New API

  • 6e47753 - Make RequestConcurrencyController public (#2278)
  • df916b6 - Give access to the underlying TCP ConnectionContext from HTTP/2 service (#2319)

Bug Fixes

  • 986a80c - gRPC Trailers-Only response doesn't mark a streaming request as finished (#2313)

Improvements

  • 17fbb91 - Null check result of HttpServerBuilder supplier (#2317)
  • d46dbd6 - Throw error when score is invoked on a connection that doesn't support it (#2318)
  • a99f319 - Remove logging for duplicate termination in Jersey router (#2316)
  • af18034 - gRPC add default method for asBlockingClient to simplify filter creation (#2309)
  • 44c4343 - Remove unused internal code from servicetalk-grpc-api (#2299)
  • e5a00b5 - grpc-protoc javadoc testing updates (#2140)

Dependencies

  • 86c9b8b - Update protobuf 3.21.2 -> 3.21.4 (#2315)
  • 0515fd5 - Upgrade Gradle wrapper 7.5 → 7.5.1 (#2312)
  • 48e51f3 - Upgrade JMH 1.3.3 → 1.3.5 (#2272)
  • bd7b9da - Add netty-incubator-transport-native-io_uring to servicetalk-dependencies (#2295)
  • c7375c4 - Define jaxb-impl as api in servicetalk-dependencies

Build/Release/Github actions

Test improvements

  • 9c61136 - ConnectablePayloadWriterTest.multiThreadedProducerConsumer increase timeout (#2296)
  • 2a29d60 - Increase CompositeClosableTest timeouts (#2302)

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
@idelpivnitskiy
@Scottmitch
@tkountis

0.42.13

27 Jul 01:18
ff33d11
Compare
Choose a tag to compare

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.

As the ServiceTalk API advances towards a 1.0 release all users are strongly encouraged to update their applications to eliminate all use of deprecated APIs. Existing deprecated APIs will be removed in a future ServiceTalk release without further additional notice. If you encounter problems replacing deprecated usages please create a support issue.

Changes

API Deprecations

  • da74e30 - Deprecate unused ClientInvoker interface (#2287)
  • da06991 - Propagate ContextMap through LoadBalancedAddress (#2285)
    • Add LoadBalancedAddress#newConnection(ContextMap) method;
    • Deprecate LoadBalancedAddress#newConnection();

Bug Fixes

  • c4b13e9 - Cancellation can leave an HTTP/1.x connection in half-closed state (#2264)
  • 9f02857 - Default methods that return async sources should not throw (#2288)
  • 4bae4c1 - Handle HTTP/1.1 response cancelation same way at all levels (#2266)

Improvements

  • 2a0f45c - servicetalk-bom to include internal depdencies as API (#2283)
  • a09e56b - LoadBalancedStreamingHttpConnection doesn't need connect strategy (#2274)
  • 639c1b6 - Implement toString() for HttpProtocolConfig and its components (#2281)
  • 68b8609 - WriteStreamSubscriber: don't interact with Subscription after terminal (#2276)
  • ed3ea74 - Adjust logging in IdleTimeoutInitializer (#2289)

Dependency Updates

Build/Release/Github actions

Test improvements

  • 14e9fa7 - Add .p12 stores for tests which require format (#2286)

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
@idelpivnitskiy
@Scottmitch
@tkountis