Skip to content

Releases: apple/servicetalk

0.41.12

15 Dec 01:26
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

New features

  • cc61daa - Add support for io_uring (#1971)
    • io_uring is a new asynchronous I/O API for Linux that provides significant performance improvements for I/O operations. The minimal Linux kernel requirement is 5.10. Users need to set -Dio.servicetalk.transport.netty.tryIoUring=true to activate this feature.
  • 13dce91 - Let users opt-in for app initialization failures without native libs (#2006)
    • Use -Dio.servicetalk.transport.netty.requireNativeLibs=true to fail ServiceTalk to start without native transport (epoll/kqueue). Without this system property, netty will fallback to Java NIO. However, Java NIO has limitations which may cause unexpected behavior and increased number of failed requests. For example, it does not proactively notify when a remote peer closes connections. As the result, a new request have to be attempted to observe that connection was closed leading to a request error.
  • ad81b3f - Adjusting ServiceDiscovererEvent contract (#1906)
    • ServiceDiscovererEvent now has status() method instead of isAvailable() boolean flag;
  • 93a98af - Completable#concat(Completable...) (#1945)
  • cfe7007 - Add context associated with an HTTP request or response (#1904)
    • As an alternative to AsyncContext, each HTTP request and response has a context() method that holds a state during request-response exchange. It's more lightweight and always is associated with a request or response, regardless of asynchronous boundaries or transitioning from async to blocking API.

API deprecation

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.

  • 3c2d0e2 - Remove HttpExecutionStrategy from requester and reserveConnection API (#1956)
    • Users should update their filters to override another request or reserveConnection methods that do not take HttpExecutionStrategy as an argument. If modifications for the HttpExecutionStrategy are required, use HttpContextKeys#HTTP_EXECUTION_STRATEGY_KEY;
  • ebe2911 - Deprecate ServiceDiscoveryRetryStrategy (#1931)
    • Deprecated ServiceDiscoveryRetryStrategy and DefaultServiceDiscoveryRetryStrategy;
    • Deprecated PartitionedHttpClientBuilder#retryServiceDiscoveryErrors(ServiceDiscoveryRetryStrategy) and introduced a variant accepting BiIntFunction<Throwable, ? extends Completable>;
    • Deprecated SingleAddressHttpClientBuilder#retryServiceDiscoveryErrors(ServiceDiscoveryRetryStrategy) and introduced a variant accepting BiIntFunction<Throwable, ? extends Completable>.
  • 9c66e41 - Deprecate and replace noOffloadsStrategy() (#1989)
    • noOffloadsStrategy() is deprecated and the more descriptive offloadNever() is introduced to replace it.
  • 0d70851 - Unified retry / auto-retry filter support (#2020)
    • A new variant of RetryingHttpRequesterFilter was introduced in io.servicetalk.http.netty package;
    • io.servicetalk.http.utils.RetryingHttpRequesterFilter and AutoRetryStrategyProvider are deprecated and their logic in consolidated in io.servicetalk.http.netty.RetryingHttpRequesterFilter;
  • 34f726e - Migrate AsyncContext to ContextMap API (#1910)
    • API modifications:
      • Deprecate AsyncContextMap in favor of ContextMap API;
      • Deprecate AsyncContextMapHolder in favor of ContextMapHolder;
      • AsyncContext: deprecate all methods that reference AsyncContextMap and add new static methods that target ContextMap API;
      • Add temporarily method AsyncContext.newKeyMapping to allow mapping AsyncContextMap.Key <-> ContextMap.Key to let users use old/new API in the same codebase;
      • IoThreadFactory.IoThread extends deprecated AsyncContextMapHolder, consider migrating to NettyIoExecutors static factories that do not require an IoThreadFactory. If your codebase implements IoThreadFactory, make sure it also implements ContextMapHolder;
      • BasicAuthHttpServiceFilter: deprecate userInfoKey(AsyncContextMap.Key) in favor of userInfoAsyncContextKey(ContextMap.Key) and userInfoRequestContextKey(ContextMap.Key);
      • BasicAuthSecurityContextFilters: deprecate forGlobalBinding(AsyncContextMap.Key) in favor of forGlobalBinding(ContextMap.Key) and forNameBinding(AsyncContextMap.Key) in favor of forNameBinding(ContextMap.Key);
    • Behavior changes:
      • AsyncContext.put(...) and AsyncContext.putAll(...) don't throw UnsupportedOperationException when AsyncContext is disabled;
      • Default implementation of AsyncContext more strictly validates null keys. null keys were never allowed, but pre-existing behavior throws NPE on AsyncContext.get(key) instead of AsyncContext.put(null, value);

Improvements

  • 1fecc6b - Read/WriteObserver: give users visibility into items (#2013)
  • c0c2c83 - TransportObserver#onNewConnection give visibility into addresses (#2012)
  • e7a287b - Provide more context when native transport is unavailable (#1978)
  • 1d3ba69 - Give visibility to the assigned HTTP/2 Stream ID (#1969)
  • 81c81c9 - MessageEncodingException should take an encoding name only (#1940)
  • 3358e01 - Implement toString() for our ThreadFactory variants (#1939)
  • cc4d56f - Correctly report TLS handshake when TCP Fast Open is enabled (#1970)

Bug Fixes

  • 582259a - Reduce SSLSession cache misses (#1958) (#1966)
  • 80435d7 - DefaultCompositeCloseable StackOverflowException (#1946)
  • c08a411 - HttpLoadBalancerFactory should override newLoadBalancer with 3 args (#1935)

Documentation

  • 5055942 - Improve BlockingIterable javadoc (#2010)
  • f07e708 - Clarify ServiceDiscovererEvent contract related to address and status (#1963)

Dependencies

This release upgrades Netty to 4.1.72 which contains an important fix for CVE-2021-43797 and Log4J to 2.16.0 which contains fixes for CVE-2021-44228 and CVE-2021-45046.


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 an unintended omission.

@bondolo
@chemicL
@idelpivnit...

Read more

0.41.11

04 Nov 22:58
cdd7e6e
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

Bug fixes

  • 378a61c - RoundRobinLoadBalancer: use an Executor with unbounded queue by default for health checks (#1937)

Improvements

  • f09799b - RoundRobinLoadBalancer: reduce number of operators in health check chain (#1938)
  • 95c6bdd - RoundRobinLoadBalancerFactory flip eagerConnectionShutdown to false by default (#1934)
  • 934b7ba - SingleThreadedScheduler should fallback execution upon offloading failure and give visibility for unexpected exceptions from offloadExecutor (#1936)

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 an unintended omission.

0.41.10

03 Nov 14:15
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

API deprecation

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.

Bug fixes

  • b6af2b6 - Fixes for EmptyBuffer implementation (#1929)
  • 70ce4bb - Make static final buffers unreleasable and read-only (#1928)

Improvements

Build/Release/Github actions

  • c6ae8c3 - Bump actions/checkout from 2.3.5 to 2.4.0 (#1932)

Dependency upgrades


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 an unintended omission.

0.41.9

01 Nov 23:00
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

API deprecation

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.

Bug fixes

  • 9c79e91 - Add Netty BOM as platform for test fixtures (#1916)

Improvements

  • 48a9851 - Use connection/context executor for timeout (#1911)
  • 43d64fd - Improve POM/BOM publication metadata (#1917)
  • e300d27 - Enhance javadoc to clarify StackOverflowError possibility (#1925)
  • ff7bf79 - Add missed serialVersionUID for exceptions (#1919)
  • 5106670 - Enhance GrpcStatus.fromCodeValue static factories to include actual status code when it maps to UNKNOWN (#1923)

Build/Release/Github actions


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 an unintended omission.

0.41.8

13 Oct 20:14
c91d665
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

API deprecation

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.

  • f249032 - Untangling GrpcClientBuilder from SingleAddressHttpClientBuilder (#1867) (#1882)
    • Introduce a GrpcClientBuilder.HttpInitializer interface and a corresponding GrpcClientBuilder#initializeHttp method which accepts the initializer for the underlying SingleAddressHttpClientBuilder;
    • Deprecate GrpcClientBuilder methods which have only served the purpose of delegating to the underlying HTTP client builder;
  • f8aaa8d - Untangling GrpcServerBuilder from HttpServerBuilder (#1861)
    • Introduce a GrpcServerBuilder.HttpInitializer interface and a corresponding GrpcServerBuilder#initializeHttp method which accepts the initializer for the underlying HttpServerBuilder;
    • Deprecate GrpcServerBuilder methods which have only served the purpose of delegating to the underlying HTTP server builder;

Improvements

  • 4814621 - gRPC catch-all filters should implement HttpExecutionStrategyInfluencer (#1884)
  • 04d351c - Removing DefaultGrpc*SecurityConfigurator classes (#1885)
  • 5479215 - Add missed @FunctionalInterface for GrpcClientBuilder.HttpInitializer

Build/Release/Github actions

  • 8e9d0e6 - Use BOMs for versions of module dependencies (#1827)
  • ebf2d8d - Remove enforcedPlatform from test fixtures (#1881)

Dependency upgrades

Dependency upgrades for tests


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 an unintended omission.

0.41.7

08 Oct 22:57
1d6b58a
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

New features

  • 29d4c4c - Identify LoadBalancer instance using a targetResource(String) (#1831)
  • 349df1e - Support proxy for MultiAddressHttpClientBuilder and for clients using already resolved address (#1751)

API deprecation

Developer note: Additional API deprecation advisories and guidance has 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.

  • Combination of #1831 and #1852 deprecates the following:
    • LoadBalancerFactory#newLoadBalancer(Publisher, ConnectionFactory) in favor of a new method: LoadBalancerFactory#newLoadBalancer(String, Publisher, ConnectionFactory);
    • Second argument changed from Publisher<ServiceDiscovererEvent> to Publisher<Collection<ServiceDiscovererEvent>> to be aligned with ServiceDiscoverer API;
  • 349df1e - Support proxy for MultiAddressHttpClientBuilder and for clients using already resolved address (#1751):
    • Deprecated HttpClients.*viaProxy(...) methods in favor of SingleAddressHttpClientBuilder#proxyAddress(...) method that allows configuring proxy at the builder;
  • 5cc648c - Enhance RedirectingHttpRequesterFilter: redirect headers and message body (#1792)
    • Deprecated unnecessary constructors on RedirectingHttpRequesterFilter in favor of a new RedirectingHttpRequesterFilter(RedirectConfig);
    • Deprecated MultiAddressHttpClientBuilder#maxRedirects(int) in favor of a new MultiAddressHttpClientBuilder#followRedirects(RedirectConfig);

Bug fixes

  • 66eb875 - Fix race condition in SpliceFlatStreamToMetaSingle (#1845)
  • 6720628 - RoundRobinLoadBalancer: recover health checks from unexpected errors (#1871)

Improvements

  • c15d825 - Unifying ServiceDiscoverer and LoadBalancerFactory APIs (#1852)
  • 80c1ff8 - Log the cause of failed attempt to open a new connection (#1854)
  • 5cc648c - Enhance RedirectingHttpRequesterFilter: redirect headers and message body (#1792)
  • c4ece4f - RoundRobinLoadBalancer: trace log when a connection added/removed (#1869)
  • c7f0d32 - RoundRobinLoadBalancer: further logging enhancements (#1870)

Improvements for tests

  • 0a1a7b5 - NettyHttpServerTest.testErrorBeforeRead handle exception (#1848)
  • 28ae1e2 - Avoid mock abstract class creation in test (#1846)
  • ad67f2d - GrpcLifecycleObserverTest: close client and server after each test (#1863)
  • db2fa60 - Rename default logger name for LifecycleObserver(s) (#1865)

Build/Release/Github actions

  • 0b4043c - Build improvements from Gradle Enterprise testing (#1853)
  • 358e0bb - Fix javadoc warnings for JDK17 (#1849)
  • 759f589 - Fix how CI env variable is set for CodeQL workflow (#1858)
  • a3cd845 - japicmp.sh: skip jdkflow on JDK8 and adjust error msg format (#1864)
  • 2205490 - Bump dawidd6/action-download-artifact from 2.14.1 to 2.15.0 (#1868)

Dependency upgrades

  • 39cb82f - Update netty-tcnative 2.0.43.Final -> 2.0.44.Final (#1872)

Documentation

  • a256d9e - Add [Http|Grpc]LifecycleObserver examples (#1857)

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 an unintended omission.

0.41.6

24 Sep 21:13
9a87b12
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

JDK17-compatible ✅

New features

  • 258f33a - BeforeFinallyHttpOperator: add option to discard signals after cancellation (#1835)
  • 24ed0b3 - HTTP/gRPC LifecycleObserver API and logging implementations (#1824)
  • 801f82f - Add Netty macos aarch64 runtime dependencies (#1841)

API deprecation

Developer note: Additional API deprecation advisories and guidance has 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.

  • 0ad42cc - Deprecate IoExecutor create w/ ThreadFactory (#1811)
    • Introduces IoThreadFactory as a replacement for java.util.concurrent.ThreadFactory which will be required in the future to build an IoExecutor.
    • Adds new methods accepting IoThreadFactory and deprecates existing NettyIoExecutors factories that accept ThreadFactory.
  • 78c10b9 - Deprecated GrpcClientBuilder#MultiClientBuilder and GrpcClientBuilder#buildMulti method (#1808)
  • 69e98ae - Deprecate one-way boolean settings on builders (#1750) (#1823)
    • Deprecated GrpcClientBuilder.disableHostHeaderFallback in favor of GrpcClientBuilder.hostHeaderFallback(boolean);
    • Deprecated GrpcClientBuilder.disableDrainingRequestPayloadBody in favor of GrpcClientBuilder.drainRequestPayloadBody(boolean);
    • Deprecated HttpReporter.Builder.disableSpanBatching in favor of HttpReporter.Builder.spansBatchingEnabled(boolean);
    • Deprecated HttpServerBuilder.disableDrainingRequestPayloadBody in favor of HttpServerBuilder.drainRequestPayloadBody(boolean);
    • Deprecated SingleAddressHttpClientBuilder.disableHostHeaderFallback in favor of SingleAddressHttpClientBuilder.hostHeaderFallback(boolean);
  • 274f0d6 - Deprecate remaining disable* methods in builder APIs (#1825)
    • Deprecated DefaultAutoRetryStrategyProvider#disableWaitForLoadBalancer in favor of DefaultAutoRetryStrategyProvider#waitForLoadBalancer(boolean);
    • Deprecated DefaultAutoRetryStrategyProvider#disableRetryAllRetryableExceptions in favor of DefaultAutoRetryStrategyProvider#retryAllRetryableExceptions(boolean);
  • f3261db - Deprecating HttpServerBuilder protected methods (#1830)
    • Deprecated HttpServerBuilder#doListen;
    • Deprecated HttpServerBuilder#buildExecutionContext;

Bug fixes

  • e559ca8 - Prevent response publisher from being canceled before onComplete (#1838)

Improvements

  • 58c6e1d - Add missing subscribeShareContext to missing static sources (#1812)
  • 1c929b8 - Use internal NettyIoExecutors for public NettyIoExecutors (#1814)
  • 8be5b2b - LifecycleObservers: log responseTime and totalTime (#1843)

Improvements for tests

  • eb246be - Test utility ProxyTunnel wait for all input to copy (#1816)
  • 537a726 - ConnectionCloseHeaderHandlingTest don't write empty payload (#1818)
  • 1d22cec - Avoid appSerializerUtf8FixLen in tests if content-length is byte length (#1822)
  • dc92964 - Improve split cookie crumbs test in H2ToStH1UtilsTest (#1748)
  • cdd65b3 - Disable frequently flaky GracefulConnectionClosureHandlingTest(s) (#1840)

Build/Release/Github actions

  • f6fee95 - Github Actions: Switch to Zulu, Update PR builds JDK 16 -> 17 (#1837)
  • d48941f - Update gradlew wrapper 7.1.1 -> 7.2 (#1765)
  • 12891ee - Fix grpc-protoc maven publications (#1775)
  • e37ff4c - Replace actions/cache with new setup-java cache feature of GitHub Actions (#1800)
  • 3e834c0 - Extend japicmp.sh to compare versus local build (#1810)
  • 3e9b434 - Use bom to determine modules to compare (#1821)
  • abae386 - Increase memory for quality build tasks (#1778)

Dependency upgrades


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 an unintended omission.

0.41.5

07 Sep 18:41
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

New features

  • 25191f3 - Add EnforceSequentialModeRequesterFilter for http-utils module (#1752)
  • dd94bb1 - Enable wrapping Callable with AsyncContext via public API (#1798)
  • f0faf8c - Allow users enable validation for header values (#1757)
  • 019c270 - Add Http2Exception type to the public API that exposes HTTP/2 error code (#1803)

API deprecation

Developer note: Additional API deprecation advisories and guidance has 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.

  • 42688df - Deprecate payloadBody(CloseableIterable<Buffer>) methods (#1797)
  • b753dad - Deprecate ExecutionStrategy offload*() (#1791) (#1795)
  • 708a0c7 - Deprecate syncUninterruptibly() and awaitRequestNUninterruptibly() in tests (#1756)
  • e17b021 - ExecutionStrategy simplification deprecations for gRPC builders (#1804)
  • 1674e44 - ExecutionStrategy simplification deprecations (#1781) (#1793)

Bug fixes

  • 019c270 - Convert Http2Exception into appropriate GrpcStatusCode (#1803)
  • 35cd4e8 - gRPC send RST_STREAM on client deadline expire (#1801)
  • c176be5 - Catch exeptions thrown from HttpService(s) (#1753)

Improvements

  • 02b8616 - NettyHttpServer: log DecoderExceptions at WARN level (#1749)
  • ceea6b6 - IoThreadFactory create daemon threads by default (#1739)

Improvements for tests

  • 2f3fbe9 - Migrate servicetalk-loadbalancer module tests to jUnit5 (#1762)
  • 136509c - TestExecutor minor simplify AsyncContext wrapping (#1704)
  • a6391fe - TestExecutor Runnable preserve AsyncContextMap (#1699)
  • a64d009 - Permit copy for TestExecutor AsyncContextMap (#1675)
  • 9526877 - Enforce correct AsyncContext use and name "thread" (#1662)
  • a635173 - Propogate InterruptedException to the NettyPipelinedConnectionTest tests (#1744)

Build/Release/Github actions

  • 22d9935 - Github Actions: update actions/cache for gradle (#1776)

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 an unintended omission.

0.41.4

20 Aug 23:11
690ccdb
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

New features

  • 839294b - Load balancer health checks problematic hosts (#1709)
  • 25afec5 - gRPC protoc plugin proto3 optional support (#1712)

API deprecation

  • 6a3684e - MultiAddressHttpClientBuilder deprecation and de-deprecation refactoring (#1722)
    • Removed @Deprecated annotation from ioExecutor, executionStrategy, and bufferAllocator methods;
    • Deprecated MultiAddressHttpClientFilterFactory;
    • Deprecated appendClientFilter methods accepting MultiAddressHttpClientFilterFactory;
    • Deprecated StreamingHttpClientFilterFactory#asMultiAddressClientFilter.
  • 168871d - Deprecate HttpExecutionStrategy.invokeService (#1720)

Bug fixes

  • aa5c25e - AllWritesPromise should not be writable after channel is closed (#1696)
  • d37ea47 - Inspect deprecated RoundRobinLoadBalancerFactory for execution strategy computation (#1693)

Improvements

  • 2b5db73 - Make sure ConnectionInfo#toString() format is consistent (#1746)
  • 49d20bf - Account for recent TFO changes in netty 4.1.67 for macOS (#1740)
  • ae838ce - Fix gradle grpc protoc project local dependency sequencing (#1727)
  • 813ab13 - AbstractRetryingFilterBuilder to require jitter (#1692)

Improvements for tests

  • 57ebcfa - Fix flaky HttpTransportObserverTest#clientFailsRequestPayloadBody (#1702)
  • 4542639 - Fix flaky HttpRequestDecoderTest.unexpectedContentAfterNoContentHeaders() (#1700)
  • 0d334a3 - PublisherFlatMapSingleTest reuse existing Executor (#1707)

Documentation

Build/Release/Github actions

  • fadad10 - Update gradlew 7.0.2 -> 7.1.1 (#1717)
  • a1ce194 - Update gradlew wrapper and jar -> 7.1.1 (#1718)
  • 8e24764 - Bump scacap/action-surefire-report from 1.0.12 to 1.0.13 (#1742)
  • 9e83b0f - Bump dawidd6/action-download-artifact from 2.14.0 to 2.14.1 (#1719)

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.

0.41.3

21 Jul 23:45
1fdc04c
Compare
Choose a tag to compare

Changes

This is a minor maintenance release appropriate for all ServiceTalk users that contains several bug fixes and improvements.

New features

  • 0c91042 - Support controlling peerHost and SNI hostname inference for GRPC clients (#1678)

API deprecation

  • a6836d7 - Deprecate RunnableCompletable (#1686)
  • dd46d5c - Load balancer should not close existing connections (#1629):
    • As part of this work we deprecated RoundRobinLoadBalancer class and plan to make it pkg-private in future releases. As a replacement, we offer a new RoundRobinLoadBalancerFactory top-level class.

Bug fixes

  • 5b66b7e - Publisher#flatMapConcatIterable propagate error even if no onSubscribe (#1671)
  • 579306e - SequentialSubscription reentry bug fix (#1676)
  • 4a829ec - Write of HTTP/2 message may never complete (#1679)

Improvements

  • 85f75e2 - StreamingHttpPayloadHolder remove unused constructor argument (#1680)
  • da3ab3e - Remove unused imports from examples (#1681)
  • e020017 - Consolidate Completable#fromRunnable and Single#fromCallable implementations (#1685)
  • 1053dfb - Code/test/javadoc updates for JDK 16 (#1687) (#1690)
  • a991695 - DefaultExecutor internally use AutoCloseable (#1691)
  • dd46d5c - Load balancer should not close existing connections (#1629)

Improvements for tests

  • f220afd - Verify that TFO works with all protocols combinations (#1677)
  • 8ac828c - Migrate servicetalk-grpc-* tests to junit5 (#1660)
  • cff64ee - Improve TCK tests to actually use repeatWhen, retry, retryWhen (#1683)

Documentation

  • 78b5c12 - Remove gRPC not performance tested statement from docs (#1682)

Build/Release/Github actions

Dependency upgrades

  • 372285e - Update Netty 4.1.65->4.1.66, netty-tcnative 2.0.39->2.0.40 (#1674)

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.