Skip to content

Releases: apple/servicetalk

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)
  • 45fc8f4 - capacity-limiter-api: add GradientCapacityLimiterTest (#3032)
  • 52d68b0 - capacity-limiter-api: polish javadocs and minor code modifications (#3031)
  • 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)

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

0.42.43

17 Apr 18:48
e9cbcbd
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

  • fc8b1df - Add support for Optional TLS negotiation for http/1 and http/2 (#2871)

Behavior Changes

  • cbefaa9 - Lower initial delay for ServiceDiscovery retries from 8 to 2 seconds (#2891)
  • cc2cdfa - Lower max delay for ServiceDiscovery retries from 256 to 128 seconds (#2895)

Improvements

  • 5771163 - Always log registered ServiceLoader providers at INFO level (#2880)
  • e605c87 - Handle DNS SERVFAIL differently than NXDOMAIN (#2776)

Bug Fixes

  • dabaabc - Fix Content-Length header removal after content compression (#2863)
  • d4012e6 - http-netty: Properly set the host header for MultiAddressUrlClient (#2868)

Experimental loadbalancer changes

  • 9b1a8a6 - loadbalancer-experimental: Rename HealthChecker to OutlierDetector (#2860)
  • acdf203 - loadbalancer-experimental: Remove type param from LoadBalancerObserver (#2866)
  • 7c0815c - loadbalancer-experimental: remove the generic load balancer factory methods (#2865)
  • ad90616 - examples: add an example of using DefaultLoadBalancer (#2855)
  • 023e635 - experimental-loadbalancer: remove 'healthChecker' names (#2873)
  • 08f2c43 - loadbalancer-experimental: centralize LoadBalancingPolicy fail open default setting (#2872)
  • 1f31e61 - loadbalancer-experimental: consolidate outlier detector concerns into the OutlierDetectorConfig (#2864)
  • 71b5fa6 - loadbalancer-experimental: make connection selection strategy modular (#2815)
  • 1aafb7a - loadbalancer-experimental: tighten up load balancing policy (#2884)
  • aacc5b9 - grpc-netty: add RequestTracker support to grpc (#2885)

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

23 Feb 23:17
da1b7e3
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

  • 6f6c9e5 - Add DelegatingServiceDiscoverer to client-api (#2842)
  • bf64643 - Add HttpClients.forMultiAddressUrl() overload with ServiceDiscoverer (#2843)
  • 0af167a - Expose global A/AAAA and SRV DNS ServiceDiscoverer instances (#2844)

Experimental loadbalancer changes

  • f3635b1 - loadbalancer: Add an xDS compatible HealthChecker implementation (#2809)
  • 11c5a3d - LoadBalancer wire the tracker on the host layers with the request flow (#2816)
  • fb39471 - loadbalancer-experimental: track the length of outstanding requests (#2833)
  • 954c147 - loadbalancer: move DefaultLoadBalancer to its own experimental module (#2819)
  • d2794c4 - loadbalancer-experimental: Add some documentation for DefaultLoadBalancer (#2837)

Dependencies

  • 3a652dd - Update Netty 4.1.106 -> 4.1.107 (#2834)
  • 612b080 - Update netty-incubator-transport-native-io_uring 0.0.24 -> 0.0.25 (#2840)
  • e80d853 - Update protobuf 3.23.2 -> 3.25.1 (#2846)
  • e67bf6e - Update log4j 2.20.0 -> 2.22.1
  • e269d36 - Update jctools 4.0.1 -> 4.0.3
  • b23bcaa - Update Jackson 2.15.2 -> 2.15.4
  • 1a916e5 - Update zipkin-reporter 2.16.4 -> 2.17.2
  • 12190dd - Update proto-google-common-protos 2.21.0 -> 2.29.0

Documentation

  • de5278d - Clarify ConnectionObserver callbacks contract (#2838)
  • c17a0f6 - Clarify lifecycle of global Executors (#2845)

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

20 Jan 00:05
15d8a5f
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

Bug Fixes

  • 904ed6f - h2: disable auto read for stream channels (#2799)

Improvements

  • aeca73c - Add validation for H1ProtocolConfigBuilder setters (#2792)

Experimental loadbalancer changes

  • 00e740c - loadbalancer: Add the ErrorClass enum and use it in RequestTracker (#2808)
  • 34db3ac - loadbalancer: introduce the HealthChecker interface (#2800)
  • 8a8e3ab - Latency tracking utilities to support LB L7 breakers (#2794)
  • cb8405d - loadbalancer: cleanup HostSelector List variance (#2795)
  • aac806c - loadbalancer: Simplify ConnectionFactory usage in DefaultHost (#2796)
  • 6b2b65e - loadbalancer: selectors consider health first and have configurable fail-open behavior (#2787)
  • e5784f8 - loadbalancer: fix NormalizedTimeSourceExecutor to work with units other than nanos (#2791)
  • e3daaf3 - loadbalancer: Some cleanups for DefaultHost (#2779)

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

0.42.40

14 Dec 23:37
9566dab
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

  • cf40cb3 - concurrent-api: fix IllegalArgumentExcetion for zero jitter in RetryStrategies (#2777)
  • 1d00f69 - Additional fix for IPv6-derived SNI hostnames (#2778)

Improvements

  • 3266749 - Disable RRLB health-checking for DiscoveryStrategy.ON_NEW_CONNECTION (#2772)
  • 112fb07 - mdc-utils: Make LoggerStringWriter thread friendly (#2771)

Experimental loadbalancer changes

  • 0fdbdd5 - loadbalancer: fix observer name pattern (#2783)
  • 82ad584 - loadbalancer: add an observer pattern to DefaultLoadBalancer (#2770)
  • bad9558 - loadbalancer: HostSelector can be rebuilt each time the DefaultLoadBalancer gets a host set update (#2774)
  • d288479 - loadbalancer: Change generics of LoadBalancerPolicy (#2773)
  • e3a10f8 - loadbalancer: Use a sequential execution concurrency model in DefaultLoadBalancer (#2768)
  • ad80596 - loadbalancer: add builder for the DefaultLoadBalancer (#2749)
  • 623c32a - loadbalancer: move health check related constants to the HealthCheck class (#2764)
  • 936e01b - loadbalancer: better asymptotic behavior of host updates (#2745)

Dependencies

  • 42e3b0b - Revert grpc-java back 1.59.1 -> 1.56.1 (#2784)
  • 4d30837 - Update Netty 4.1.101 -> 4.1.103 (#2782)
  • 90205ff - Bump dawidd6/action-download-artifact from 2.28.0 to 2.28.1 (#2781)

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

0.42.39

17 Nov 16:09
b8a3ecb
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

  • 231ec64 - Fix incorrect name of decoderEnforceMaxRstFramesPerWindow property (#2740)
    • Deprecates mistakenly named io.servicetalk.http.netty.http2.decoderEnforceMaxRstFramesPerWindow.maxConsecutiveEmptyFrames=200 system property in favor of the correct naming: io.servicetalk.http.netty.http2.decoderEnforceMaxRstFramesPerWindow.maxRstFramesPerWindow=200
  • 40e20f5 - Add initializer API for headers of HTTP proxy CONNECT request (#2744)
    • Deprecates SingleAddressHttpClientBuilder.proxyAddress(Object) in favor of a new method SingleAddressHttpClientBuilder.proxyConfig(ProxyConfig)

New Features

  • 40e20f5 - Add initializer API for headers of HTTP proxy CONNECT request (#2744)

Bug Fixes

  • 7906cda - Fix bug in http/grpc logging observer that prevented request Throwables to be logged (#2759)
  • f2fbd46 - Mark HTTP/2 connection as closing on exception caught (#2686)

Improvements

  • ff33868 - Disable decoderEnforceMaxRstFramesPerWindow for HTTP/2 clients (#2752)
  • 99ea1c5 - ZipkinReporter: add trace logging for batching and encoded spans (#2739)
  • 877c4f7 - Enable Keep-Alive socket option by default (#2676)
  • 3649525 - Warn if response payloads are not drained properly (#2710)
  • 294de53 - Do not consume orphaned message bodies, just warn (#2733)

Dependencies

Documentation

  • 25b09db - Adjust servicetalk-examples-http-retry (#2746)
  • 5e711b4 - Improve javadocs for Publisher.firstOrElse(...) and Publisher.firstOrError()` (#2736)

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