Releases: apple/servicetalk
0.29.0
Changes
This release contains the following significant changes:
New Features
- 5e977e3 - Fail requests if ServiceDiscoverer emits an error (#1070)
- ef44bcb - Observer for DNS ServiceDiscoverer (#1081)
Bug Fixes
- a856d50 - ServiceTalkThreadContextMap to support null values (#1084)
- 6c8db6b - Zipkin Publisher remove explicit io.zipkin.zipkin2:zipkin dependency (#1078)
Improvements
- d37946e - Fix all deprecation warnings from Gradle 6.3 (#1080)
- e514522 - Unwrap the cause only for
DecoderException
(#1077) - 848678f - Replace MaxSizeBasedWriteDemandEstimator with EWMAWriteDemandEstimator (#1076)
- aaa77cd - Unwrap instances of
SSLException
(#1075) - 5e83430 - Avoid blocking JDK DNS resolutions (#1074)
- 8061128 - Clarify exception when payload body can not be aggregated (#1073)
- b863902 - Configure
ServiceTalkJacksonSerializerFeature
explicitly and removeorg.glassfish.jersey.jackson.JacksonFeature
check (#1072) - 296555b - Method to create
PUT
requests for[Blocking]StreamingHttpRequestFactory
(#1064)
Dependencies upgrade
- fbc31d8 - Update versions of quality plugins (#1082)
- e731737 - Update zipkin-reporter 2.12.2 -> 2.15.0 (#1079)
- 198d12c - Update jackson-databind 2.10.3 -> 2.10.4 (#1069)
- 71a4a71 - Update grpc-java 1.27.1 -> 1.29.0 (testing dependency) (#1068)
- f6f8b13 - Update log4j 2.13.1 -> 2.13.3 (#1067)
- a466ba7 - Update proto-google-common-protos 1.17.0 -> 1.18.0 (#1066)
- 90d9e3a - Update protobuf 3.11.4 -> 3.12.1 (#1065)
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.28.0
Changes
This release contains the following significant changes:
New Features
Bug Fixes
- 5c38aaa -
AbstractInMemorySpanBuilder
to respectFOLLOWS_FROM
(#1063) - 1a7498d -
WriteStreamSubscriber
retains listeners for the lifetime of the source (#1059) - 37ca956 -
CancellableThenSubscription
avoiding infinite loop (#1057)
Improvements
- 98754a5 - Mark
ProxyResponseException
as retryableIOException
(#1062) - ec3d9d8 -
Publisher#flatMapMergeSingle
avoid queue if no concurrency (#1047) - cf639bb -
DefaultJerseyStreamingHttpRouter
protect against duplicate termination (#1058) - f50a98f -
RoundRobinLoadBalancer
close state simplification (#1055) - 5f195b8 -
CompositeException
renamefinishAndThrow
totransferPendingToSuppressed
(#1056)
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.27.0
Changes
This release contains the following significant changes:
Noticeable behavior change
New Features
- ddef29e - Introduce HTTP Zipkin reporter (#1049)
- 3324193 - Add
Publisher#buffer
operator (#1027) - 21c1df6 - Improve
Processors
(#1039) - 406ead6 - Adding TerminalSignalConsumer for Single.whenFinally et al (#1035)
- 29c4f7d - Introduce HTTP/2 keep alive (#1029)
- 0f7770e - DNS SRV query support (#1018)
Bug Fixes
- 592b477 - Release
DnsRawRecord
s 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()
forUdpReporter
(#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
: declareapi
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
Changes
This release contains the following significant changes:
Noticeable behavior change
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
andamb
methods forSingle
andCompletable
(#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 fromHttpClientBuildContext
(#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
int
s as scores forScoreSupplier
(#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
- ad11d10 - Update versions of quality tools (#987)
- 3c7b059 - Update to Gradle 6.3 (#992)
- f8c9055 - Update SpotBugs gradle plugin 4.0.4 -> 4.0.5 (#997)
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
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
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
Changes
This release contains the following significant changes:
New Features and API Changes
- 592a0c1 - Expose
SocketOption
querying onConnectionContext
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.
- This also introduces
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
forNettyChannelPublisher.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
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
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 ofFunction<String, HttpExecutionStrategy>
now
Documentation improvements
a71a7c3 - Publishing of docs didn't update SNAPSHOT versions. (#902)
0.21.0
ServiceTalk is now available on maven central!
Special thanks to our contributors: Dmitrii Volykhin, Xiaofei Long, Karim ElNaggar, Muthupalaniappan, WonChul Heo, blake-bauman
Updates
- b85542e - Update Netty to 4.1.44.Final and netty-tcnative to 2.0.28.Final (#900)
- 6c4b692 - Update protobuf 3.10.0->3.11.1 (#895)
- 4b2b4d5 - Update grpc-java to 1.25.0 #877 (#881)
- 20a5192 - Update Gradle version to 5.6.4 (#860)
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 ofExecutionException
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
toservicetalk-utils-internal
#879 (#882) - 0677c62 - Remove
http/api/StringUtils
(#883) - df1c3bf - Introduce
servicetalk-router-api
module (#874) - 3a67c9f - Align names of utility classes
FooUtil
vsFooUtils
(#872) - 5ae6a1b - Add missed
HttpResponseStatus
constants (#876) - aa0e889 - Fix evaluation order in
HeaderUtils.hasContentType
(#875) - 03a7b0a -
RedirectingClientAndConnectionFilterTest
should leverageAbstractHttpRequesterFilterTest
(#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
0.20.0
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)