Skip to content

Releases: apple/servicetalk

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.

0.41.2

15 Jul 20:41
8a721d8
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

  • ac72f93 - Deprecate OpenTracing APIs that will be removed later (#1669)
    • For more context of future OpenTracing API changes see "Fix B3 sampling API to support missing values" (#1640)
  • ebd777e - Deprecate publishAndSubscribeOn operators (#1648)

Bug fixes

  • 05a1cc5 - Fix H2 Server with SNI bug (#1665)
  • fd8f27e - Publisher#buffer doesn't emit if count is met or original terminates (#1650)
  • ac8937d - HTTP request may become non-retryable when first write fails (#1644)
  • f615202 - Single#concat(Publisher) potential demand deadlock fix (#1646)

Improvements

  • a0c4a43 - Mark any exception before the first message is written as RetryableException (#1641)
  • 1c19c0a - FromNPublisher: limit recursion depth to 1 (#1653)
  • ecd9ff3 - SingleConcatWithPublisher: limit recursion depth to 1 (#1654)
  • ea2f56c - Single.concat(Publisher) defer subscribe to Publisher until requested (#1643)

Improvements for tests

  • 6be8a8d - ClientEffectiveStrategyTest and ServerEffectiveStrategyTest cleanups (#1667)
  • 8f2c372 - TestSubscription#requestedEquals(0) incorrectly validates the value (#1642)
  • 1920d33 - Migrate servicetalk-http-* tests to junit5 (#1659)
  • fe4eff2 - Migrate tests of misc modules to junit5 (#1664)
  • fb6fef8 - Migrate servicetalk-data-jackson-jersey and servicetalk-http-router-jersey tests to junit5 (#1645)

Documentation

  • 1835d89 - Convert "ASCII-art" arrows to unicode arrows (#1668)
  • af1f67d - Fixes issues with GRPC Examples documentation (#1656)

Build/Release/Github actions


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.