Skip to content

Releases: apple/servicetalk

0.27.0

15 May 17:41
Compare
Choose a tag to compare

Changes

This release contains the following significant changes:

Noticeable behavior change

  • b82319f - RoundRobinLoadBalancer to allow duplicate addresses (#1052)

New Features

Bug Fixes

  • 592b477 - Release DnsRawRecords after SRV response (#1044)
  • d897beb - Publisher#flatMapMergeSingle potential queue drain visibility issue (#1014)
  • 00eb752 - Publisher#flatMapMergeSingle terminal condition race (#1012)

Improvements

  • ca502e9 - DelayedSubscription no longer uses ConcurrentSubscription internally (#1046)
  • b7cabe4 - RoundRobinLoadBalancer should not sort the addresses (#1051)
  • c9b404e - Implement Component#chek() for UdpReporter (#1054)
  • 2d111d9 - Consolidate concurrent.api NULL_TOKEN usage (#1045)
  • 44161eb - SingleConcatWithPublisher and invalid request-n (#1042)
  • e57a01c - ConcurrentSubscripiton avoid concurrent access for invalid demand (#1015)
  • f72b6d9 - More robust exception handling from Subscribers (#1034)
  • 1a0d51d - Remove keep alive duration limits (#1037)
  • 29a8d45 - HTTP Client Pipelining fullduplex (#980)
  • 454cf96 - ConcurrentUtils cleanup, [Completable|Single]Processor cancel concurrency fix, Simplify Publisher#flatMapConcatIterable (#1026)
  • c4fa823 - Publisher#flatMapSingle make subscription non-volatile (#1025)
  • c20478a - RoundRobinLoadBalancer should close connections gracefully (#1028)
  • b2562c1 - ReactiveStreams TCK tests to use Publisher#range() instead of Publisher#from(Integer[]) (#1021)
  • 4773b14 - servicetalk-opentracing-zipkin-publisher: declare api dependencies (#1020)
  • b88008b - Minor improvements for servicetalk-opentracing-zipkin-publisher (#1019)

Dependencies upgrade

  • ef6502f - Update netty to 4.1.50.Final (#1050)
  • b22e5ea - Update Netty 4.1.48 -> 4.1.49 and netty-tcnative 2.0.29 -> 2.0.30 (#1030)

Documentation

  • 1b41a01 - Governance - clarify yes/no vote (#1041)
  • d9290d4 - Remove Project Communication section from CONTRIBUTORS.adoc ToC (#1038)
  • 4fb9547 - Clarify Governance and Contribution guidelines (#1031)
  • 8576f00 - Disable SHA256 and SHA512 checksums for published artifacts (#1017)

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

15 Apr 22:54
Compare
Choose a tag to compare

Changes

This release contains the following significant changes:

Noticeable behavior change

  • 289f908 - Change when* operators to before* instead of after* (#1005)

New Features

  • 0ebe48e - Initial support for windows development (#977)
  • 51d3682 - Add support for SameSite attribute in Cookies (#989)
  • 52532d4 - Add whenFinally(TerminalSignalConsumer) for Publisher, Single, Completable (#990)
  • 5b971c1 - Add ambWith and amb methods for Single and Completable (#1003)
  • 33a69b6 - Converting ZipkinPublisher to use a zipkin2.Reporter interface for reporting spans (#1001)

Bug Fixes

  • 3bd64a9 - Fix ChannelSetTest async issues (#979)
  • 4a85c39 - gRPC gradle plugin rework (#983)
  • 8084127 - gRPC protoc script pushd not found (#982)
  • 8de9054 - AsyncContextInMemoryScopeManager to restore previous Scope on close() (#1004)
  • 3756013 - RoundRobinLoadBalancer should compose connection closure with error response (#1006)
  • ebb4931 - ProxyConnectConnectionFactoryFilter leaks connection in case of errors (#1002)

Improvements

  • 3c222b2 - buildStreaming(HttpClientBuildContext) should use information only from HttpClientBuildContext (#974)
  • c9aba8d - WriteStreamSubscriber aggregate Netty Promise return true (#978)
  • afe0a23 - NettyChannelPublisher cancel active subscriber should terminate (#976)
  • d5a562e - gRPC gradle plugin write script to buildDir (#984)
  • 2217f9d - Follow-up enhancements for servicetalk-grpc-gradle-plugin (#985)
  • 5508ae6 - Fix typo in inheritRepositoriesFromBuildScript method name (#986)
  • c5dbb2b - Replace ConcurrentSubscription with DelayedCancellable when synchronous request(Long.MAX_VALUE) (#993)
  • 38c10dd - Do not wrap unreleasable ByteBuf(s) with Unpooled.unreleasableBuffer (#991)
  • 9b45657 - Work around SpotBugs JDK11 bug, make code more robust (#998)
  • dad967a - Use ints as scores for ScoreSupplier (#996)
  • 10ded56 - Completable#concatWith(Completable) remove atomic operation (#1000)
  • 3e616be - Introduce HttpLoadBalancerFactory (#994)
  • 9c11c95 - Rename BeforeFinallyOnHttpResponseOperator to BeforeFinallyHttpOperator (#1007)
  • e53d677 - Promote Single.TerminalSignalConsumer to top level interface (#1008)
  • 6d06124 - CollectTest remove assumption about subscribe ordering (#1016)
  • fd9eff4 - Use Math.min in SubscriberUtils (#1013)

Dependencies upgrade

Documentation

  • cecc56d - publish-docs.sh overrides javadoc for older versions when it publishes SNAPSHOT update (#972)
  • 666a16b - Enforce JDK8 when running publish-docs.sh (#973)

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

18 Mar 15:22
Compare
Choose a tag to compare

Changes

This release contains the following significant changes:

New Features

Bug Fixes

  • c4d421f - Ensure TcpConnector#connect does not emit error after success (#967)
  • e5f4c56 - JDK provider incorrectly configures default ciphers for TLSv1.3 (#968)

Improvements

  • 429f12d - More strict decoding of HTTP/1.x start-line (#969)

Dependencies upgrade

Documentation

  • 1700aa1 - Add a separate page for ServiceDiscoverer in docs (#963)
  • 8c4463d - Fix link for Maven Central (#965)

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

11 Mar 01:50
Compare
Choose a tag to compare

Changes

This release contains the following significant changes:

New Features and API Changes

  • 592a0c1 - Expose SocketOption querying on ConnectionContext API (#950)
  • 001f579 - Expose protocol name at ConnectionContext API (#955)
    • This also introduces HttpConnectionContext interface that may cause compilation errors for users who filter HTTP connections.

Bug Fixes

  • 66db739 - HostHeaderHttpRequesterFilter does not work for HTTP/2 (#944)
  • e035da6 - Disable netty's go away handling for H2 (#946)
  • 8e4f570 - MultiAddressUrl client fails to send http request after https request (#962)

Performance optimizations:

  • 82e0431 - Use PooledByteBufAllocator for netty internally (#942)
  • 1653fc7 - Optimize ProtoBufSerializationProvider by minimizing copying (#943)
  • c585735 - Allocate smaller ArrayDeque for NettyChannelPublisher.addPending (#945)

These changes significantly improve performance for HTTP/2 and gRPC protocols.

Improvements

  • c4ab887 - WriteStreamSubscriber and WriteListener cleanup (#923)
  • a8ea7e6 - gRPC BlockingResponseStreamingRoute expects only one request item (#947)
  • cf885d1 - Reduce probability of LB selecting an unusable connection (#948)
  • cc466dc - Don't re-use *Exceptions when stored in static fields if enableSuppression can not be set to false (#958)

Dependencies upgrade

  • netty 4.1.47
  • netty-tcnative 2.0.29
  • jersey 2.30.1
  • grpc-java 1.27.1
  • protobuf-java 3.11.4
  • protobuf-gradle-plugin 0.8.12
  • zipkin 2.20.1
  • log4j 2.13.1
  • javapoet 1.12.1
  • jmh 1.23

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

20 Feb 21:56
Compare
Choose a tag to compare

Changes

This release contains the following significant changes:

Bug Fixes

  • 412222c - H2 client ignores query parameters (#933)
  • b4413a1 - gRPC filters override configured execution strategy for the route (#932)
  • 2c4bbac - Avoid potential memory leak in ByteToMessageDecoder (#937)
  • 64718a4 - Add trailers after gRPC BlockingStreamingRoute response (#929)
  • fa495f9 - gRPC-server should return UNIMPLEMENTED when route is not found (#931)

Improvements

  • 8005373 - Prevent - misconfigurations for gRPC router (#930)
  • 349f2ca - gRPC-client should fail responses without grpc-status code (#934)
  • 1f9c675 - HttpObjectEncoder should always allocate direct outbound buffers (#936)
  • 75f1754 - when* operators for async sources (#935)
  • f93880e - Use payloadBodyAndTrailers() to drain payload body (#941)
  • 9433208 - H2 client should send ENABLE_PUSH=false setting for new connections (#940)

Documentation changes

  • 022b55d - README file update (#938)
  • 92f3b7c - Adding RFC links for standardised HttpHeaderNames constants in javadoc (#939)

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

23 Jan 21:29
Compare
Choose a tag to compare

Special thanks to our contributors: Xiaofei Long, Muthupalaniappan, Dmitrii Volykhin

Updates

464554a - Update dependencies to the latest versions (#922)
b936679 - Minor updates to reactive-streams adapter (#906)

Fixes

c72d080 - Make DefaultThreadFactory name prefix consistent with IoThreadFactory (#925)
781dbef - Protocol emits payload boundary event (#919)
f0e6c0b - Spotbugs exclusion for JDK flow (#917)
15dbe98 - Do not compare request methods and response statuses by reference (#913)

Improvements

2be51e9 - Remove LegacyBlockingSubscriber (#918)
6cfd434 - Generated gRPC RPC interfaces should be annotated as @FunctionalInterface (#915)
f7e14f7 - Remove unused HttpObjectDecoder#FIND_COLON variable (#916)
9a73965 - Rename HttpServiceContext.streamingBlockingResponseFactory() (#914)
e137e41 - Allow default deserializers to handle payload without specified encoding (#891)
5698947 - Provide JDK flow adapters #824 (#904)
1634895 - gRPC services to support closing (#903)
63f7616 - Run protoc:buildExecutable task right after compileJava (#905)

API changes

9edcc9d - Move RPC paths to generated RPC interfaces (#910)
6bb2722 - Support router-api annotations for gRPC services (#912)

  • As part of this PR Jersey router starts using RouteExecutionStrategyFactory insteaed of Function<String, HttpExecutionStrategy> now

Documentation improvements

a71a7c3 - Publishing of docs didn't update SNAPSHOT versions. (#902)

0.21.0

21 Dec 00:44
Compare
Choose a tag to compare

ServiceTalk is now available on maven central!

Special thanks to our contributors: Dmitrii Volykhin, Xiaofei Long, Karim ElNaggar, Muthupalaniappan, WonChul Heo, blake-bauman

Updates

Fixes

  • c9e8202 - Disallow space after header name and colon (#901)
  • c3c0e81 - HTTP/1.x and HTTP/2.0 decoder Buffer visibility and data corruption (#898)
  • 33574d1 - BlockingUtils should not assume the cause of ExecutionException is not null (#873)
  • fc5be20 - Declare character encoding in responses returned from fallback service (#868)
  • 56e0dd7 - gRPC clients do not provide ExecutionContext (#866)
  • fd298cd - BOM is not publishing artifacts (#859)

Improvements

  • c4cfc28 - Add 5 http status methods (#892)
  • 1e6f7cd - Remove redundant state from ProtoBufSerializationProvider (#897)
  • ad74fe0 - Adhere http-api HttpResponseStatus error code names to RFC standards (#890)
  • 7e96579 - Add RFC links for each HttpResponseStatus constant (#888)
  • 4fa8aa4 - Refactor check content type http api (#887)
  • d182820 - Add http headers values to serialization exception message (#880)
  • 707d8be - Move PlatformDependent to servicetalk-utils-internal #879 (#882)
  • 0677c62 - Remove http/api/StringUtils (#883)
  • df1c3bf - Introduce servicetalk-router-api module (#874)
  • 3a67c9f - Align names of utility classes FooUtil vs FooUtils (#872)
  • 5ae6a1b - Add missed HttpResponseStatus constants (#876)
  • aa0e889 - Fix evaluation order in HeaderUtils.hasContentType (#875)
  • 03a7b0a - RedirectingClientAndConnectionFilterTest should leverage AbstractHttpRequesterFilterTest (#867)
  • 3c27052 - Introduce automatic retries (#861)
  • 183c5ef - Add servicetalk-utils-internal module (#862)
  • 1e687e6 - Support for Single.fromCallable(), Single.fromSupplier(), Completable.fromRunnable() (#850)

Documentation improvements

  • d8ac300 - Make "project communication" guideline more discoverable (#864)
  • c19b9b8 - Do not override older javadoc with anotra's placeholder (#857)
  • c2fc518 - Update README with maven-central info (#858)

0.20.0

08 Nov 23:48
Compare
Choose a tag to compare

ServiceTalk is now available on maven central!

Updates

  • Update versions of dependencies (96e3e19):
    • SLF4J 1.7.29
    • zipkin 2.19.1
    • gRPC 1.24.2
  • Ensure CI builds with latest AdoptOpenJDK versions for JDK8 and JDK11 (ff0694c)

Fixes

  • Parse headers with no whitespaces (e3528e6)
  • ReactiveStreams offloading tests to create single executor for test (cd46059)
  • Improve usage of AddressUtils.localAddress in tests (c448182)
  • Fix broken code links in gRPC examples docs (d385d81)

Documentation improvements

  • HTTP/2 examples and documentation (20fd245)
  • LoadBalancer documentation (26b24e9)
  • Fix missing titles in Antora docs (5df41cc)