Skip to content

Releases: apple/servicetalk

0.42.53

15 Jan 23:14
a75950e
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

Behavior Changes

  • 85fd41b - Do not cancel subscription on BlockingIterable#hasNext(long, TimeUnit) (#3128, #3154)
    • BlockingIterable#hasNext(long, TimeUnit) no longer cancels the subscription if the operation times out. This makes it consistent with the behavior of java.util.concurrent.Future.get(long, TimeUnit) and helps to preserve the stream for future use. However, this could result in resource leaks if the stream is not closed. We recommend using the try-with-resources pattern with blocking API's to avoid leaks.
  • We've started using the dependency analysis plugin (#3158) which highlighted a number of dependency cleanups we could do. Some of those involved lowering dependency scope from api to implementation. Those shouldn't affect most users but in limited cases you may have been inadvertently getting a compile time dependency on a module transiently that didn't belong. In those cases you'll need to include the relevant module in your build.

API Deprecations

  • 6fc7987 - loadbalancer: deprecate RoundRobinLoadBalancer types (#3149)

New Features

  • e4d4418 - loadbalancer: move DefaultLoadBalancer out of experimental (#3136)
  • 68055fa - http-netty: let RetryingHttpRequesterFilter return responses on failure (#3048)
  • 1bcf8ea - [grpc-protoc] Add an option to generate default service methods (#3110)

Bug Fixes

  • 2dfacd1 - gRPC Trailers-Only responses must be a single HEADERS frame (#3152)

Improvements

  • 569323f - Adding remote info to logger message so clients can be tracked down (#3155)
  • f570fdb - BlockingStreamingHttpService: drop trailers if users didn't create any (#3151)

Dependencies

  • ad2bbbb, 3fbc367 - Update Netty 4.1.115 -> 4.1.117 (#3141, #3172)
  • 135a994 - Update Netty io_uring 0.0.25 -> 0.0.26 (#3157)
  • 8951931 - Update OpenTelemetry 1.28.0 -> 1.38.0, instrumentation 1.28.0 -> 1.33.3 (#3161)
    • Notably, some of the opentelemetry-instrumentation modules contained breaking API changes that may cause incompatibilities.
  • a19a930 - Update Jersey for Jakarta EE 9 3.0.13 -> 3.0.17
  • 5277958 - Update Jersey for Jakarta EE 10 3.1.6 -> 3.1.9

Dependencies Scope Changes

  • 46d56ea - Remove unused api dependencies or move them to lower scope (#3169)
  • e87371c - Remove unused implementation dependencies or move them to runtime (#3168)
  • cb6fd6c - Promote dependencies to api where necessary (#3167)
  • 373299a - Explicitly declare transitive dependencies that we use directly (#3164)

Documentation

  • c750d92 - docs: incorporate default load balancer docs into the main site (#3153)
  • 673e4d9 - Add logo, favicon and footer copy (#3116)

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
@chrisvest
@colestanfield
@mgodave
@federicobucchi
@idelpivnitskiy
@daschl

0.42.52

19 Nov 14:04
c18a104
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

  • f8abe11 - Add option skipDeprecated to the protoc code generator to avoid generating deprecated code (#3089)
  • 7a05d7d - Add Single/Completable subscribe overloads that can also handle failures (#3112)

Bug Fixes

  • f783e7d - Publisher#flatMapConcatIterable may skip emitting items (#3108)
  • 158d4c3 - Reset flush strategy after client request is written (#3103)
  • d7dd886 - Server-side AsyncContext initialized in lifecycle observer is lost (#3111)
  • 4187c05 - Discard new writes without closing connection on AbortWritesEvent (#3102)

Improvements

  • 8d30706 - Preserve full request context while redirecting (#3104)
  • 38cc84b - RedirectSingle: avoid extra operator for exception handling path (#3114)
  • 057cc56 - capacity-limiter-api: observe all gradient limit changes (#3107)
  • c14e4aa - TcpServerBinder logs "Failed to create a connection" twice (#3113)

Dependencies

Documentation


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

0.42.51

14 Nov 06:55
5d187f7
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

  • 8441a20 - traffic-resilience-http: Add dry-run mode for resilience filters (#3085, #3091)

Bug Fixes

  • eebe458 - Fix response leak that can be caused by an exception during redirect (#3095)

Improvements

  • 99371cf - CloseableIteratorBufferAsInputStream: fix CLOSED marker instance (#3086)
  • 8fd62da - Detect unexpected response leaks for multi-address client instances (#3096)
  • 275623c - Preserve default Http2Settings when Http2SettingsBuilder is used (#3092)

Documentation

  • ec8ea4c - traffic-resilience-http: Add documentation for capacity limiters (#3082, #3098)
  • 681cf76 - LifecycleObserver examples: clarify server-side ordering options (#3087)
  • d282dcc - HelloWorldJaxRsResource: fix method name (#3094)

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
@chrisvest
@daschl
@idelpivnitskiy
@mgodave
@tkountis

0.42.50

15 Oct 08:39
140ccb5
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

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

0.42.49

04 Oct 18:07
906f37c
Compare
Choose a tag to compare

⚠️ This release has an issue with generated pom.xml files that does not let Maven to import all transitive dependencies correctly. Please upgrade to 0.42.50.

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

  • 94c1bbb - Add SslConfig to ConnectionObserver.onSecurityHandshake (#3074)
    • Deprecated ConnectionObserver.onSecurityHandshake(), use new ConnectionObserver.onSecurityHandshake(SslConfig) instead.
  • 6613bd5 - Add experimental system properties for Netty DnsNameResolver (#3073)
    • io.servicetalk.dns.discovery.netty.experimental.tcpFallbackOnTimeout (default: false) - enables fallback to TCP protocol if UDP query failed with timeout exception;
    • io.servicetalk.dns.discovery.netty.experimental.datagramChannelStrategy (default: ChannelPerResolver) - use ChannelPerResolution to force Netty to create a new UDP channel on every resolution.

Bug Fixes

  • 004983e - HttpRequestMetaData#hasQueryParameter(String) implementaiton fix (#3058)
  • ab4e9b2 - HttpRequestMetaData#hasQueryParameter(String) default implementation fix (#3061)
  • 19d0907 - tcp-netty-internal: fix race in TcpConnector (#3069)
  • a3a4212 - Use invoke for SslContextBuilder#endpointIdentificationAlgorithm(String) (#3072)

Improvements

  • 249efc7 - concurrent-api: save the timestamp of the SingleToFuture.get() calls (#3051)
  • 34a0849 - Allow null value for query parameter setter methods (#3059)

Experimental loadbalancer changes

  • a75232b - loadbalancer-experimental: make DefaultLoadBalancer the default RR implementation (#3065)
  • 57f8454 - loadbalancer-experimental: don't always pay for EWMA with noop detector (#3057)
  • a5b42a0 - loadbalancer-experimental: Add support for randomly subsetting hosts (#3062)

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

0.42.48

27 Aug 12:04
16af216
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

  • 9f68119 - Encode/Decode grpc-message status per spec (#3023)
  • 372f108 - http-utils: cleanup the BeforeFinallyHttpOperator state (#3042)
  • 44a5b80 - http-netty: fix JavaNetSoTimeoutHttpConnectionFilter leak (#3043)
  • ed0265c - ConnectablePayloadWriter: avoid static exception that may leak memory (#3047)
  • f345761 - SpliceFlatStreamToMetaSingle: propagate cancel when races with data (#3036)
  • 2316f7c - Amb operators for Single and Completable should respect reactive contract 2.3 (#3040)
  • d09421a - http-utils: fix leak in AbstractTimeoutHttpFilter (#3038)
  • 0537138 - http-utils: fix leak in BeforeFinallyHttpOperator (#3034)

Improvements

  • 4d9ab77 - Add TransportConfig to control low level transport settings (#3041)
  • edb05b5 - Single.repeat: use TerminateRepeatException as a terminal marker (#3045)
  • 8074930 - Subscribable sources: try-catch onSubscribe and cleanup state if any (#3046)
  • 2f2bf85 - Improve CancellationException (#3039)
  • 893a156 - capacity-limiter-api: avoid division in EMA (#3030)
  • 4e7d64e - capacity-limiter-api: make AimdCapacityLimiter use ReentrantLock (#3025)
  • 1c2afec - Remove some uses of synchronized (#3024)

Experimental loadbalancer changes

  • 6b3a09f - loadbalancer-experimental: reduce dogpiling on hosts after healthy hosts (#3021)

Dependencies

Documentation

  • 977ac05 - Improve Single (+Completable) amb* documentation (#3044)
  • 21c0a74 - Properly drain failed responses in http-service-composition example (#3026)
  • 52d68b0 - capacity-limiter-api: polish javadocs and minor code modifications (#3031)

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

0.42.47

25 Jul 21:05
4fb4028
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

  • 434da83 - Add Publisher.fromInputStream(InputStream, ByteArrayMapper) (#2989)
    • Deprecated pre-existing Publisher.fromInputStream(InputStream) and Publisher.fromInputStream(InputStream, int) overloads.

Bug Fixes

  • 821619a - Fix discovery flow for PartitionedHttpClient (#3001)
  • e3759e8 - LoadBalancer should always consider the first events as initial state (#3004)
  • 3897efb - Avoid race b/w ServiceDiscoverer events after cancel and re-subscribe (#3005)
  • b58d0b5 - Incorrect state possible after retrying ServiceDiscoverer events (#3006)

Improvements

  • 4ce7d2c - StreamingConnectionFactory should set hostnameVerificationAlgorithm to an empty string (#2988)
  • efb24b3 - Align Set-Cookie attribute names with RFC6265 syntax (#2995)

Experimental loadbalancer changes

  • c4198c2 - loadbalancer-experimental: allow configuring the pending request penalty (#2991)
  • d78f85a - loadbalancer-experimental: Narrow ewma config params from long to int (#2994)
  • 72e9511 - loadbalancer-experimental: DefaultLoadBalancer logs settings on startup (#3000)
  • e1d0ba2 - loadbalancer-experimental: remove deprecated APIs (#2998)
  • dafeeb0 - loadbalancer-experimental: subscribe is the last thing we do in DefaultLB constructor (#3007)
  • 0a7f539 - loadbalancer-experimental: add LB observer method for when the host set changes (#3003)

Dependencies

Documentation


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

0.42.46

26 Jun 01:27
17b97c8
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

  • 7b68059 - DefaultHostAndPort: equals and hashCode are not consistent (#2974)

Improvements

  • 7dad836 - Multi-address client: don't leak full request target in exception msg (#2972)
  • ff218cc - Multi-address client: take advantage of lowercase scheme (#2975)
  • e110d64 - Multi-address client: move setHostHeader to key factory, avoid NPE warn (#2976)
  • 7f8a7f4 - Multi-address client: optimize client selection (#2979)
  • 82e256e - FromInputStreamPublisher: avoid extra allocation of a buffer (#2965)
  • 2c90b8d - Set SslContextBuilder.endpointIdentificationAlgorithm for Netty 4.2.x (#2985)

Experimental loadbalancer changes

  • 411ddc6 - loadbalancer-experimental: thread through the ConnectionPoolStrategyFactory (#2969)
  • febb582 - loadbalancer-experimental: thread the LoadBalancingPolicy into the DefaultLoadBalancer (#2970)
  • 4e6ce9b - loadbalancer: better LoadBalancerFactory.toString() implementations (#2971)
  • 7e19105 - loadbalancer-experimental: properly capture consecutive error signals (#2984)

Dependencies

  • 6b303b3 - Update log4j 2.22.1 -> 2.23.1
  • e16b09e - Update com.sun.xml.bind:jaxb-impl 2.3.3 -> 2.3.9
  • 49488fa - Update Jersey 2.37 -> 2.41
  • 965e33f - Update Jackson 2.15.4 -> 2.16.2
  • 8e89dde - Revert "Update Netty 4.1.110 -> 4.1.111 (#2959)"
    • We had to downgrade Netty to avoid breaking grpc-java users in the same classpath.

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.45

12 Jun 23:00
97dae90
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

Behavior Changes

  • b49e66b - Reduce default TLS handshake timeout from 10 to 5 seconds (#2947)

Improvements

  • bc6c3c4 - Convert scheme to lower case when parsing URI (#2938)
  • 2f50382 - Enhance header name validation exception message (#2924)
  • 8949741 - Fallback to readChunkSize if InputStream.available() not implemented (#2949)
  • d84cb41 - FromInputStreamPublisher: reduce default read chunk size to 16Kb-32B (#2958)

Experimental loadbalancer changes

  • 26ecff5 - loadbalancer-experimental: support non-sequential priorities (#2953)
  • bb569d0 - loadbalancer-experimental: allow configuring whether cancellation is an error (#2956)
  • 4eeffeb - loadbalancer-experimental: split ErrorClass into connection and request types (#2940)
  • 54ec680 - loadbalancer-experimental: thread lbDescription into the LoadBalancerObserver (#2936)
  • 6027c74 - loadbalancer-experimental: rename LoadBalancerPolicies to LoadBalancingPolicies (#2937)
  • d667d1d - loadbalancer-experimental: remove deprecated API's (#2935)

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.

@0x1306e6d
@bryce-anderson
@daschl
@idelpivnitskiy
@Scottmitch

0.42.44

15 May 19:53
73d6518
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

  • a65238c - Support Jersey 3 and Jakarta EE 9/10 (#2919)
  • baac8d6 - Introduce traffic resiliency features (#2911)
  • 7919d3a - RetryingHttpRequesterFilter: add on request retry callback (#2916)

Improvements

  • c85a8f4 - DnsServiceDiscoverer: add total resolution timeout (#2908)

Experimental loadbalancer changes

  • f0e7aff - loadbalancer-experimental: adjust load balancer policy docs and helpers (#2926)
  • a75d9fa - loadbalancer-experimental-provider: use System.getProperty(...) directly (#2922)
  • 6f12039 - loadbalancer-experimental: add flag to use DefaultLoadBalancer in place of RoundRobinLoadBalancer (#2913)
  • 2b55150 - loadbalancer-experimental: add a ServiceDiscovererEvent to carry weight and priority (#2907)
  • 53f9f35 - loadbalancer-experimental: add provider for enabling DefaultLoadBalancer (#2900)
  • 8f096da - loadbalancer-experimental: add weight support for P2C selection (#2892)
  • f1e39d7 - loadbalancer-experimental: add support for weights in round robin (#2909)
  • d02f866 - loadbalancer-experimental: add support for prioritization (#2905)

Documentation

  • e965d5a - client-api: add an example of how to use the ServiceDiscoverer API (#2903)

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.

@blake-bauman
@bryce-anderson
@chrisvest
@daschl
@idelpivnitskiy
@tkountis