Skip to content

Releases: apple/servicetalk

0.42.30

25 May 19:25
533702c
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

  • 1a15108 - Deprecated some internal classes in concurrent-internal (#2566)
    • Deprecated io.servicetalk.concurrent.internal.ArrayUtils;
    • Deprecated io.servicetalk.concurrent.internal.ConcurrentTerminalSubscriber;
    • Deprecated io.servicetalk.concurrent.internal.QueueFullAndRejectedSubscribeException;

New features

  • 3c44998 - Publisher.validateOutstandingDemand() operator (#2595)

Bug Fixes

  • 34078fc - Handle graceful closure for indefinite streams (#2608)
  • ee98d18 - TransportObserver doesn't propagate connect failure before established (#2600)
  • 4f4f49a - Jersey router: async endpoints don't propagate AsyncContext (#2593)
  • 6f92e49 - Logging LifeCycleObservers quote connection (#2592)
  • 07bd07a - Publisher#buffer retry with sequential subscription (#2591)
  • e334146 - Fix race in TimeoutDemandPublisher (#2578)
  • e0f4ab6 - Publisher#timeoutDemand avoid suprious timer error (#2584)
  • cfc6746 - HttpObjectDecoder: handle chunk size greater than Integer.MAX_VALUE (#2579, #2594)

Improvements

  • 643ea5a - Use an unbounded queue for fixed size Executors (#2546)
  • f3929d2 - ThreadInterruptingCancellable consolidate state (#2599)
  • c9f262d - KeepAliveManager: improve debuggability (#2605)
  • eeebde9 - KeepAlivePolicy: validation, improved defaults & javadoc, ns precision (#2602)
  • bca9f11 - Jersey's EndpointEnhancingRequestFilter: use Single.fromSupplier (#2596)
  • 8d7697e - Delete code that is not used anywhere (#2597)

Testing

  • 6be77e1 - Test HTTP/2 KeepAliveManager with DuplexChannel (#2604)
  • 894ab87 - WriteStreamSubscriberTest verify writability change (#2606)

Documentation

  • 5f8a1cc - Clarify blocking scenarios Subscriber/Subscription (#2598)
  • fc8e698 - Publisher.fromInputStream: clarify InputStream ownership in javadoc (#2586)

Dependencies


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

0.42.29

04 May 20:12
3eea4ec
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

  • 6db81bc - Http2SettingsBuilder.initialWindowSize should accept int, not long (#2573)
    • Deprecate Http2SettingsBuilder.initialWindowSize(long), users should migrate to Http2SettingsBuilder.initialWindowSize(int);

New features

  • 4dc7bf3 - Add Publisher#timeoutDemand(Duration) operator (#2576)

Bug Fixes

  • abe118d - Avoid int overflow when receive large MAX_CONCURRENT_STREAMS value (#2572)
  • 9f25cd6 - Convert IPv6 colons to dots for the new peer host (#2575)

Improvements

  • d22363b - RRLB: reduce number of state transitions when health-check passed (#2577)

Dependencies

  • 802d6d1 - Revert "Update protobuf 3.21.12 -> 3.22.3" (#2574)

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

0.42.26.1

03 May 02:35
6622980
Compare
Choose a tag to compare

This is a recommended bug-fix release only for 0.42.26 users if they can not upgrade to 0.42.28.

Changes

Bug Fixes

  • 1d8c08f - DefaultDnsClient: make configuration for all caches consistent (#2530)
  • fac100a - RetryingHttpRequesterFilter to duplicate payload body (#2541)
  • 6da8c12 - Avoid int overflow when receive large MAX_CONCURRENT_STREAMS value (#2572)

Improvements

  • 825f235 - DefaultDnsClient reduce log level for TTL > max (#2557)

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.

@daschl
@idelpivnitskiy
@Scottmitch

0.42.28

28 Apr 21:31
f30f930
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

  • de05283 - Publisher#timeout always propagate TimeoutException (#2555)
  • 35bf953 - ConcurrentTerminalSubscriber fix deferred terminal concurrency (#2556)
  • 6a8a226 - Publisher.takeUntil(Completable): preserve original terminal signal (#2565)
  • 75db082 - HttpConnectionContext must reference single-threaded IoExecutor (#2564)

Improvements

  • 041f3dc - Allow null values with FormUrlEncodedHttp[De]Serializer (#2554)
  • 00179dd - DefaultDnsClient reduce log level for TTL > max (#2557)
  • 4011c8f - Improve how we copy payload body in case of redirect (#2563)
  • 35ab88d - Don't log "does not allow redirect" for non 3XX status codes (#2562)
  • 88086c7 - RetryingHttpRequesterFilter: share context when drain response payload (#2568)
  • 247fde1 - ConcurrentTerminalSubscriber: consolidate code for process* methods (#2567)

Documentation

  • a15d972 - JAXRS example demonstrating async response code override (#2558)

Dependencies

  • a143d72 - Update Netty 4.1.91 -> 4.1.92 (#2559)
  • e16073f - Update netty-incubator-transport-native-io_uring 0.0.19 -> 0.0.21 (#2569)
  • 92f40c3 - Update log4j 2.19.0 -> 2.20.0
  • 38fb8ac - Update protobuf 3.21.12 -> 3.22.3
  • 4965150 - Update proto-google-common-protos 2.13.0 -> 2.17.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.

@bryce-anderson
@daschl
@idelpivnitskiy
@Scottmitch

0.42.27

07 Apr 21:41
2a443eb
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 features

  • 10973ca - Add new operators for Publisher: merge, mergeDelayError, mergeAll, mergeAllDelayError (#2533)
  • d9fd486 - Add Publisher.skipWhile(Predicate) operator (#2542)
  • 2991d28 - Extend RedirectConfig: custom allowed statuses and location mapper (#2552)
  • eb570b6 - New filter: JavaNetSoTimeoutHttpConnectionFilter (#2551)
  • be0043d - Add new tags for OpenTelemetry (#2536)
  • 8cb1dd2 - Move ProxyTunnel to servicetalk-http-netty-test-fixtures (#2550)

Bug Fixes

  • fd9a9c6 - DefaultDnsClient: make configuration for all caches consistent (#2530)
  • cd547f3 - RetryingHttpRequesterFilter to duplicate payload body (#2541)
  • 47fa6c0 - MultiAddressUrlClient: incorrect transformation of the request target without path (#2545)

Improvements

  • 5e39fb6 - Enhance RRLB logs to let users know when it resubscribed to SD (#2535)
  • a9d6619 - Use unpadded jctools queue by default (#2490)
  • e3f545a - Implement all default methods in EmptyHttpHeaders (#2543)
  • 14f09b2 - ProxyConnectConnectionFactoryFilter: report when the channel is closed (#2544)
  • 2065040 - MultiAddressHttpClientBuilder.followRedirects take a nullable config (#2547)

Dependencies

  • bf0b0dc - Update Netty 4.1.89 -> 4.1.91 (#2548)
  • 2ff3eef - Only depend on opentelemetry-api and not the overall opentelemetry-bom (#2538)

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
@bryce-anderson
@daschl
@idelpivnitskiy
@mgodave
@Scottmitch
@tkountis

0.42.26

01 Mar 00:44
6f571be
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

  • Deprecated DefaultDnsServiceDiscovererBuilder
    • Use DnsServiceDiscoverers#builder(String) instead (#2511);
  • Deprecated RoundRobinLoadBalancerFactory
    • Use RoundRobinLoadBalancers#builder(String) instead (2527);
  • Deprecated DnsServiceDiscovererObserver#onNewDiscovery(String)
    • Use DnsServiceDiscovererObserver#onNewDiscovery(String, String) instead (#2521)
  • Deprecated MultiAddressHttpClientBuilderProvider#newBuilder(MultiAddressHttpClientBuilder)
    • Implement MultiAddressHttpClientBuilderProvider#newBuilder(String, MultiAddressHttpClientBuilder) (#2525);

New features

  • fc6881a - Implement explicit, customizable DNS maxTTL (#2508)
  • d2bbae6 - Implement DnsServiceDiscovererBuilderProvider(#2511)
  • 4840dea - Implement RoundRobinLoadBalancerBuilderProvider (#2527)
  • b4543f4 - RoundRobinLoadBalancer: re-subscribe when all hosts become unhealthy (#2514)
  • 5fdb1ad - Extend DnsServiceDiscovererObserver functionality (#2521)
  • 6c2be4c - Option to create a client that runs DNS resolutions for every new connection (#2520)
  • 929fa66 - Provide a way to specify an id (label) for MultiAddressHttpClientBuilder (#2525)

Bug Fixes

  • 57e7001 - Avoid potential memory leak when SrvAddressRemovedException is thrown (#2522)
  • 024d663 - DnsServiceDiscovererObserver should always report adjusted TTL (#2526)
  • 17baadd - SequentialCancellable: all nextCancellable must be cancelled too (#2513)
  • c91c7a4 - Sequential Subscriber is not reset after cancel for all test sources (#2515)

Improvements

  • 7919e6a - DefaultDnsClient: enhance logging (#2509)
  • 38d5166 - Disable cache by default for DNS ServiceDiscoverer (#2518)
  • a5f73b3 - Don't allow to override ServiceDiscoverer for resolved address client (#2524)
  • 61d74b2 - Use SslProvider.isOptionSupported(...) to determine certificate compression support (#2507)

Dependencies


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.

@daschl
@idelpivnitskiy
@mgodave
@Scottmitch
@tkountis

0.42.25

15 Feb 10:10
2c610e6
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

  • dda6869 - Deprecate ConnectionAcceptor and ConnectionAcceptorFactory (#2491)
    • Migrate to LateConnectionAcceptor and use HttpServerBuilder#appendLateConnectionAcceptor(...) to configure it. Pre-existing HttpServerBuilder#appendConnectionAcceptorFilter(...) is also deprecated.

New features

  • 570a81a - Implement TLS Certificate Compression Support (#2497)
  • 6954627 - Introduce Early and Late ConnectionAcceptors (#2486)

Bug Fixes

  • db3522d - Guard against trying to complete a cancelled Future in DNS service discovery (#2496)

Improvements

  • c3f4145 - GrpcServiceContext should provide access to netty channel id (#2498)
  • 9b8972f - GrpcDeadlineServerFilter: use inner class to capture external state (#2501)
  • 049af48 - Always disable AUTO_READ for TcpServerBinder (#2492)
  • 0dcca97 - Keep only preferred addresses for DNS resolutions (#2500)

Dependencies

  • 27f856b - Update Netty 4.1.87 -> 4.1.89 (#2505)
  • aae691a - Update netty-incubator-transport-native-io_uring 0.0.16 -> 0.0.17
  • 492abdc - Update proto-google-common-protos 2.12.0 -> 2.13.0
  • 9b594e4 - Update OpenTelemetry 1.18.0 -> 1.22.0
  • ec21f9d - Update Jackson 2.14.1 -> 2.14.2
  • e5f0853 - Update jctools 3.3.1-ea -> 4.0.1 (#2351)

Documentation

  • c2e6f84 - Fix some broken {source-root} references in documentation (#2493)

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

0.42.23.1

24 Jan 05:52
0c34911
Compare
Choose a tag to compare

This is a recommended bug-fix release only for 0.42.23 users if they can not upgrade to 0.42.24.

Changes

Bug Fixes

  • 2df3fe9 - Fix a memory leak and increased latency for gRPC after adding ListenableAsyncCloseable.onClosing() (#2473)
  • 0e54e33 - Do not apply InternalRetryingHttpClientFilter for reserved connections (#2470)
  • a251047 - Revert "Preserve the caller's stacktrace for blocking API (#2420)" (#2488)
    • Avoids memory leak when Netty reuses the same exception instance.

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.

@daschl
@idelpivnitskiy
@tkountis

0.42.24

13 Jan 17:43
c8b34fc
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

  • 8cf86df - Deprecate gRPC ServiceFactory constructors that take RouteExecutionStrategyFactory (#1624)
    • Users should use ServiceFactory.Builder#routeExecutionStrategyFactory(...) method instead.
  • debd2df - Deprecate ConnectionFactoryFilter#append(...) (#2480)
    • Users should use SingleAddressHttpClientBuilder#appendConnectionFactoryFilter(ConnectionFactoryFilter) instead.
  • 39356fd - RetryingHttpRequesterFilter: rename ofImmediate (deprecated) to ofImmediateBounded (new method) (#2459)
  • 4791eaf - Deprecate ServiceAdapterHolder interface and some utilities in HttpApiConversions (#2460)
  • 38bda20 - Deprecate unnecessary internal methods of NettyIoExecutors (#2474)
  • 8ecb866 - Deprecate unused DefaultNettyConnection#initChannel(...) overload (#2489)

New features

  • 5941982 - Provide a common HTTP Service interface for all API variants (#2456)
  • 2344448 - Introduce GrpcExecutionStrategies#offloadNone() (#2478)
  • 469dc27 - Allow to open a new connection when reserving (HTTP) (#2476)

Bug Fixes

  • 5e3e4ce - Fix a memory leak and increased latency for gRPC after adding ListenableAsyncCloseable.onClosing() (#2473)
  • 8e1d448 - Do not apply InternalRetryingHttpClientFilter for reserved connections (#2470)
  • 6c75e8f - Revert "Preserve the caller's stacktrace for blocking API (#2420)" (#2488)
    • Avoids memory leak when Netty reuses the same exception instance.

Improvements

  • c4dd3e4 - Make HTTP/1.x server-side control flow consistent with the client-side (#2367) (#2423) (#2419)
  • 35d326c - Consider request context when we schedule timeouts or retries (#2482)
  • b1f8a4d - Perform GRPC route building lazily on bind (#2467)
  • 7e7f201 - SpecialHttpExecutionStrategy should implement all interface methods (#2469)
  • 40bdaa8 - Revert "PublisherAsBlockingIterable LinkedBlockingQueue -> LinkedTransferQueue (#2386)" (#2472)

Dependencies

  • d2e0021 - Update Netty 4.1.86 -> 4.1.87 (#2487)
  • 7e0cc9a - Update proto-google-common-protos 2.9.2 -> 2.12.0
  • 9f97b29 - Update protobuf 3.21.4 -> 3.21.12
  • 6e829da - Update Jackson 2.14.0 -> 2.14.1
  • 2c52333 - Update log4j 2.18.0 -> 2.19.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.

@daschl
@idelpivnitskiy
@mgodave
@Scottmitch
@tkountis

0.42.23

13 Dec 05:09
e7009fb
Compare
Choose a tag to compare

! Note !

This release contains a memory leak introduced in #2430. The issue is fixed in #2473 and available in either 0.42.23.1 or 0.42.24 releases. Upgrade as soon as possible.

Changes

API deprecations

  • 8b414d8 - Deprecate BufferHandler and BufferHolder (#2452)
  • f50a615 - Change return type of LoadBalancerFactory#newLoadBalancer(...) (#2465)
    • A new overload was introduced to change the return type from <T extends C> LoadBalancer<T> to LoadBalancer<C>. This makes it possible for the LoadBalancer implementation to more easily wrap the connection and augment behavior if necessary.

New features

  • e8b584e - This release is JDK19 compatible (#2433)
  • 557f530 - Add ListenableAsyncCloseable#onClosing() (#2430)
  • 2ea43f3 - Add CacheConnectionHttpLoadBalanceFactory (#2334)
  • 080d6a0 - Added mark/reset functionality to BufferInputStream (#2447)

Bug Fixes

  • 344083e - RetryingHttpRequesterFilter subtract LB not ready from request retry strategy (#2438)
  • ce185f1 - CloseHandler force RST on close if still reading to avoid half close hang (#2431)
  • 0a9efcc - RoundRobinLoadBalancer fix connection leak during graceful closure (#2450)
  • 8e098e8 - ConnectionLimitReachedException should not trigger RRLB health-checking (#2457)
  • 5608ce7 - Possible race when MAX_CONCURRENT_STREAMS setting changes in HTTP/2 (#2461)

Improvements

  • d6476f7 - ScheduledExecutorService to remove timeout objects on cancel (#2426)
  • bd5ffea - Improve DefaultTestCertsTest and validate cert/key resources (#2427)
  • b3b6606 - Add FlowControlUtils.addWithUnderOverflowProtection for int (#2437)
  • b843d5c - Reduce allocation in PublishAndSubscribeOn* (#2436)
  • d5918cc - Provide better exception when connection limit reached in LimitingConnectionFactoryFilter (#2454)
  • e83c645 - Add null checks to generated GRPC API (#2455)
  • 10dbc25 - RetryingHttpRequesterFilter: change disableAutoRetries(), add disableAllRetries() (#2458)

Dependencies

Documentation

  • 43c69c9 - Add gRPC Request Response Context Example (#2429)
  • e9c7be7 - Remove duplicate doc sections from "Blocking: Safe by default" (#2448)
  • b93ca66 - Add warning in example that DefaultTestCerts should not be used (#2428)
  • f3636fb - Clarify semantics around Jackson's ByteBufferFeeder (#2425)

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.

@bobbyowolabi
@daschl
@idelpivnitskiy
@mgodave
@Scottmitch
@tkountis