Releases: apple/servicetalk
0.38.0
Changes
This patch release contains the following significant changes:
New features
- a72066d - Introduce compression based on Netty's codecs (#1376)
io.servicetalk.encoding.api.ContentCodings
has been deprecated. Use the Netty based codecs available under the same name, from theio.servicetalk.encoding.netty
package.
- 50079f7 - Add
SslConfig
APIs (#1387)SecurityConfigurator
and relatedsecure()
builder methods have been deprecated. Use theBuilder.sslConfig(SslConfig)
APIs instead.- System property io.netty.handler.ssl.openssl.sessionCacheClient=true is required to enable client side session cache. This is was due to OpenSSL engine clients causing JDK SSL servers to fail (suspected JDK bug) and will be removed in a future Netty release.
- 8905209 - gRPC Unix Domain Socket Client Support (#1388)
- c25ebd9 - Publish
servicetalk-concurrent-jdkflow
artifacts (#1401) - 6524c8f - Add
GrpcBindableService
interface for DI creation and configuration (#1374) - e2d422c - Add javadoc comments to gRPC code generation (#1405)
API or Behavior changes
- 3afe14a - Require gRPC blocking streaming services to close
GrpcPayloadWriter
(#1406)- Be aware that your application needs to close
GrpcPayloadWriter
instances where previously ServiceTalk would close them when the handler returned.
- Be aware that your application needs to close
- b11aec7 - gRPC missing grpc-status error code update (#1394)
grpc-status
code was changed fromINTERNAL
toUNKNOWN
if the grpc-status is not present.
- e6a3522 - Clarify
AsyncContext
put API relative to@Nullable
(#1399)AsyncContextMap
values may now benull
- 9d9720d - Remove deprecated methods from HTTP request/response types (#1340)
- Removed obsolete
payloadBodyAndTrailers
,transformRawPayloadBody
andtransformRaw
methods.
- Removed obsolete
- a0f942a - Remove HTTP/2 content-length header validation (#1421)
- h2 content-length header validation has moved to netty see CVE-2021-21295. As the result of this change, previously added
io.servicetalk.http2.allowInvalidContentLength
system property was removed.
- h2 content-length header validation has moved to netty see CVE-2021-21295. As the result of this change, previously added
- b1e8532 - Provide opt-out mechansim for HTTP/2 content-length enforcement (#1353)
- The new opt-out system property is
io.netty.http2.validateContentLength
(will be removed in future releases).
- The new opt-out system property is
- 04db0b6 - Deprecate MultiAddress and Partitioned client builder methods (#1426)
- Users of
MultiAddressHttpClientBuilder
andPartitionedHttpClientBuilder
should useinitializer(SingleAddressInitializer)
builder method to customize configuration of internalSingleAddressHttpClient
instances instead of methods at the builder itself. Deprecated methods will be removed in the next release.
- Users of
- b0c0b24 - Make
UdpReporter.Builder#enableWireLogging
consistent with other modules (#1418)UdpReporter.Builder#enableWireLogging(String)
is deprecated and replaced with a new overloadUdpReporter.Builder#enableWireLogging(String, LogLevel, BooleanSupplier)
. The deprecated variant will be removed in the next release.
- 471f7de - Change
Verifiers.stepVerifier
back toStepVerifiers.create
(#1392)- Renaming of the static factory class and methods to improve code understanding and readability. The deprecated
Verifiers
class will be removed in the next release.
- Renaming of the static factory class and methods to improve code understanding and readability. The deprecated
Bug fixes
- 9812099 -
BufferOutputStream.write(int)
should write asbyte
and notint
(#1379) - b61f572 - Allow HEAD requests with content-length header over HTTP/2 (#1360)
- a74c2b4 - Do not fail HTTP/2 single-frame messages with zero content-length (#1371)
- 50079f7 - Fix SNI and SSL hostname bugs (#1387)
- 3842a92 - Do not add
transfer-encoding: chunked
insidetransform
method (#1408) - 7c2ca18 - Fail parsing signed
Content-Length
header values (#1427) - bcf7a68 -
FromInputStreamPublisher
should apply an upper bound to temporary buffer size (#1416) - 125db59 -
HeaderUtils#pathMatches
incorrectly compares two differentCharSequence
implementations (#1380) - de35c7e - Replace
CharSequence
equality checks withcontentEquals
(#1383) - ca5b032 -
HttpRequestMetaData
query string empty value parsing fix (#1355) - 1a542c7 -
HttpCookiePair
impls should treat name and value case-sensitively (#1370) - 8cad3b1 - Correctly use
emptyAsyncCloseable()
(#1367)
Improvements
- 1a7e144 - Improvements for
ContentCodec
exceptions (#1428) - 811571b - Remove 1ms connect timeout in tests (#1417)
- 09ae719 - gRPC javadoc comment generation updates (#1414)
- ea4fe7e - FlakyTest: Replace
EmbeddedChannel
withSocketChannel
for server flush strategy (#1393) - f9f6f76 - gRPC Router reduce error log noise (#1403)
- 44121a1 -
TcpConnector
reduce log noise (#1400) - e33292e -
LoadBalancedStreamingHttpClient
should not hidePayloadInfo
of requests (#1384) - 6ad0037 - Switch to non-deprecated
Matchers.assertThat
(#1382) - f5991c4 - Avoid "Maximum active streams violated for this endpoint" at the client level (#1373)
- 4f3119d - Add Netty epoll dependency for linux-aarch64 (#1372)
- 7892210 - Update Netty gradle dependencies to
runtimeOnly
(#1422) - 64b11bf - Add additional tests for checking correct validation of HTTP headers (#1369)
- 45e5ae1 - Improve
H2PriorKnowledgeFeatureParityTest#trailersWithContentLength()
(#1359)
Documentation
- 9c2322a - Fix search feature for javadoc website (#1362)
- 31b64f1 - Reference Reactive-Streams 1.0.3 in Javadoc (#1378)
- f2434a3 - Add Lazy Execution Interoperability section to docs (#1413)
- 58777e7 - Add gRPC application level error example (#1402)
Github actions
Dependency upgrades
0.37.3
Changes
This patch release contains the following significant changes:
Bug fixes
Improvements
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.37.2
Changes
This patch release contains the following significant changes:
Bug fixes
- c6efe40 - Allow responses to the
HEAD
requests withcontent-length
header over HTTP/2 (#1360) - 95586af -
HttpRequestMetaData
query string empty value parsing fix (#1355)
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.37.1
Changes
This patch release contains the following significant changes:
Improvements
- 13d7f85 - Provide opt-out mechansim for HTTP/2 content-length enforcement (#1353)
A temporary system property was introduced (io.servicetalk.http2.allowInvalidContentLength
)which will be removed in a future release (see commit for more details).
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.37.0
Changes
This release contains the following significant changes:
New features
API changes
- 4fd7559 - Improve
CharSequences#split
to support trim and min copies (#1335) - 1645999 - Encoding header negotiation deduplication and
CharSequences
cleanup (#1311)
io.servicetalk.http.api.CharSequences
has been deprecated and the replacement is available here io.servicetalk.buffer.api.CharSequences
. The deprecated API will be removed in the upcoming releases.
As part of this work the following new methods were introduced:
StreamingHttp[Request|Response]#messageBody()
StreamingHttp[Request|Response]#transformMessageBody(UnaryOperator)
The following methods were deprecated and will be removed in the upcoming releases:
*StreamingHttp[Request|Response]#payloadBodyAndTrailers()
*StreamingHttp[Request|Response]#transformRawPayloadBody(UnaryOperator)
*StreamingHttp[Request|Response]#transformRaw(TrailersTransformer)
Bug fixes
- f839de4 - Fix broken encoding when publisher has no content (#1345)
- 2edcee2 -
NettyChannelPublisher
duplicateonError
(#1343) - 75d3822 -
Completable#merge(Publisher)
subscriber concurrency updates (#1334) - 5832d5d - HTTP Trailers Propagation Fix (#1332)
- b549c55 - HTTP/2
CloseHandler
avoid writing after channel closed (#1346) - aed51b5 -
Completable#mergeDelayError(Publisher)
and HTTP client control flow (#1336) - af2db97 - Remove
content-length
whentransfer-encoding: chunked
is present (#1349) - f19ae20 - Parse payload body for non-2xx response to
CONNECT
request (#1347) - 93165f0 -
EmptySubscription
propagate error toSubscriber
(#1319) - 299c541 -
[Single|Completable]
toPublisher
andPublisher#scanWith
offloading and async context fixes (#1333) - f7f4daf - HTTP StreamingService to BlockingStreaming backpressure and error propagation fixes (#1328)
- 2c3bc26 -
Publisher#flatMapMerge*
preserve error (#1325) - 28f740d -
Publisher#flatMapConcatIterable(..)
to not cancel ifonNext
throws (#1324)
Improvements
- 58baa0a - Debug-log when
RoundRobinLoadBalancer
closes connections to inactive addresses (#1351) - 6f5204a - Reject HTTP messages with malformed
content-length
value(s) (#1350) - 044b6a2 -
HttpResponseDecoderTest
: Improve tests for variable response body length (#1348) - 4bddc09 - Add MDC
ThreadContextMap
conflict check on ST default provider (#1344) - ba50beb - gRPC Server allow drop of request trailers (#1341)
- 9a840ef - Consolidate all HTTP/2 exceptions logic in
Http2Exception
class (#1318) - 759d515 -
ServiceTalkTestTimeout
remove default min timeout limit (#1322) - c18bdfb - Infer
HttpProtocolVersion
in requests/responses based upon protocol selection (#1321) - a13ae07 - Log when global
IoExecutor
orExecutor
instance gets closed (#1337) - 1cf815a -
Publisher [toIterable | toInputStream]
simplify internal queue limit (#1331) - 4a8a2f7 -
OnSubscribeIgnoringSubscriberForOffloading
empty subscription usage (#1330)
Github Automations
Dependencies upgrade
Documentation
- 0c99a3e - Examples for HTTP and gRPC compression (#1342)
- 029a728 - URL fix for JAX-RS API documentation (#1338)
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.36.0
Changes
This release contains the following significant changes:
New features
API changes
- 1e88cfd - Change
HttpConnectionContext#protocol()
to returnHttpProtocolVersion
(#1307) - 1e88cfd - Change
GrpcServiceContext.GrpcProtocol#httpProtocol()
to returnHttpProtocolVersion
(#1307) - 828883e - Wrap all netty's HTTP/2 related exceptions with
IOException
(#1304) - e12955e -
DefaultHttpCookiePair#parseCookiePair
public -> package private (#1296) - 29139a9 - Mark
H2ProtocolConfigBuilder#enableFrameLogging(String)
as deprecated (#1315) - 87f577e - Add
@FunctionalInterface
annotation forChannelInitializer
(#1288) - ea22580 - Remove
ServiceDiscovererTestSubscriber
(#1293) - 683e3fe - Remove deprecated methods
effectivePort
andeffectiveHost
fromHttpRequestMetaData
(#1276) - ef75f2e - Revert "
[Retry|Repeat]Strategies
add deprecated methods to temporarily avoid API breakage introduced by f30df63 (#1244)" (#1275)
Bug fixes
- 1e88cfd - Don't close entire HTTP/2 connection when request is cancelled (#1307)
- c75f45f -
ServiceTalkHttp2FrameLogger
doesn't log names ofHttp2Settings
(#1310) - 2625ae9 - Share
AsyncContext
whenRequestTarget*Filter
(s) are used (#1308) - c4f8ac5 - Some filters won't be executed on retry/repeat (#1302)
- 8a1e8e6 - Avoid incorrectly throwing
QueueFullException
fromPublisherAsBlockingIterable
(#1300) - 046c7cc -
DefaultSingleAddressHttpClient
may add incorrecthost
header by default (#1301) - 142534d - Handle
close_notify
TLS alert (#1285) - 0311cc9 -
Completable#merge
concurrency fix, newCompletable#merge
single arg override (#1291) - eca3432 -
ConcurrentStack
prevent duplicate concurrent terminals (#1298) - 657774a -
CompletableProcessor
andSingleProcessor
race condition fix (#1283) - f4447d5 -
DynamicCompositeCancellable
race condition fix (#1281) - c2e07f3 - Fix incorrect numbers reported by
DnsResolutionObserver#resolutionCompleted
(#1261)
Improvements
- db657c3 - Identify retryable
Http2Exception
(s) generated by netty (#1314) - 55ad277 - Make
AsyncContext
visible fromTransportObserver#onNewConnection()
(#1303) - 129c6f6 - Make sure our
Uri
parsers correctly handle malformed authorities (#1306) - b55a4e8 - Make
ServiceTalkWireLogger
consistent withLoggingHandler
(#1309) - 127e145 -
DefaultHttpCookiePair#parseCookiePair
more strict overflow detection (#1292) - cf45962 -
FlowControlUtils
remove unused methods (#1282) - b98aa8d - Http compression integration tests; combatibility with Netty (#1239)
- 9b9b080 - Improve
Tls13Test
(#1255) - a64c89f - Update import for
H2StreamResetException
(#1313) - 828883e - Wrap all netty's HTTP/2 related exceptions with
IOException
(#1304)
Github Automations
- 50da212 - Github Actions, use pull_request and workflow_run instead of pull_request_target (#1279)
- 7ab5cad - Fix publish-docs.sh checkstyle error, use echo to print usage (#1278)
- 501f6ee - release.sh to also publish docs (#1274)
- ae10814 - Github Actions CI, release build should run on any branch for bug fix point releases (#1273)
- 7d9093d - Github Actions release build should only trigger on main branch AND release tag (#1272)
- c8e7498 - Github Actions CI, 3rd party action dependencies to use SHA instead of implicit version (#1271)
- c6f9f1d - Github Actions CI, add quality reports to snapshot and release (#1270)
- 4af43f1 - Github Actions CI Release Builds (#1269)
- 5da374b - Github Actions CI name the Snapshot job
- 367d530 - Github Actions CI Snapshot, escape tag filter string
- eee3840 - Github Actions CI Snapshots (#1266)
- e979d47 - Github Actions PRB clarify report task names (#1268)
- ea403c8 - Github Actions PRB, use pull_request_target event (#1267)
- ba896cc - Github Actions Pull Request Builder
Dependencies upgrade
- e540d85 - Bump dawidd6/action-download-artifact from 5b72739630efa11b8d81784b89adf5246a5fc475 to 2.11.0 (#1280)
- 295216f - Update netty 4.1.56.Final -> 4.1.58.Final, tcnative 2.0.35.Final -> 2.0.36.Final (#1316)
- 8da6d32 - Update Netty 4.1.55 -> 4.1.56 (#1295)
- 7c32346 - Update gradle for docs subproject to 6.7.1 (#1263)
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.35.0
Changes
This release contains the following significant changes:
New features
- 9397909 -
ReactiveStreamsAdapters
support forSingle
andCompletable
(#1252) - 17be71a - Add
Publisher#completableOrError
operator (#1256) - f30df63 -
[Retry|Repeat]Strategies
add jitter delta methods (#1221) - c2e214e - Introduce HTTP content encoding (compression) (#1174)
API changes
- bb2a77c - Consolidation of HTTP codecs with gRPC (#1198)
- Generated code must be re-compiled.
GrpcClientFactory
andBuilders
in generated code methodsupportedMessageEncodings
renamed tosupportedMessageCodings
. MessageCodec
was removed in favor ofContentCodec
supportedEncodings()
method return type changed fromSet
toList
to preserve ordering (impactsGrpcSerializationProvider
,GrpcServiceContext
)GrpcService#supportedEncodings()
was removed.ContentCodec
offset parameter semantic changed from "absolute offset including readerIndex()" to "offset from readerIndex()"
- Generated code must be re-compiled.
- c2e214e - Introduce HTTP content encoding H1 & H2 (#1174)
GrpcMessageEncodings.none
->GrpcMessageEncodings.identity
GrpcMessageCodec
->MessageCodec
- 298ae4f - Consolidate
Test*Subscriber
classes (#1229)concurrent-api
Test*Subscriber
testFixtures moved toconcurrent-test-internal
- d5b4385 -
TestPublisherSubscriber
API updates (#1241) - bd945ac -
idleTimeout
operator to useio.servicetalk.concurrent.Executor
(#1234)
Bug fixes
- e7d36f3 - Remove
DnsClient
workaround for Netty SRV cache issue (#1257) - d7365be -
[Retry|Repeat]Strategies
add deprecated methods to temporarily avoid API breakage introduced by f30df63 (#1244) - 45fc641 - Jersey to return 400 response for invalid URI (#1242)
- 197f914 -
ByteArrayJacksonDeserializer
does not account forreaderIndex
(#1233) - f9c0840 -
Publisher
toInputStream
adapters should return a read byte in -1..255 range (#1238) - 435d04d - Fix transformed aggregated requests with missing trailers (#1213)
- 9e368b1 -
Single#concat(Publisher)
invalid demand hang (#1230) - 801b148 -
Publisher#flatMapConcatIterable
error recovery fromSubscriber#onNext
throwing (#1231) - d9a5f39 - Ignore
Http2SettingsAckFrame
frame (#1225) - 7a58081 -
Publisher#flatMapConcatIterable
drain demand ononNext
exception (#1222) - 62d9e44 -
Publisher#flatMapMerge
recover from mappedPublisher
exception (#1218)
Improvements
- ead32c7 - Include
netty-resolver-dns-native-macos
dependency by default (#1246) - 2993fd5 - Relax can-add-content-length check (#1260)
- 2bed998 - DNS Client SRV robustness and A* record
Publisher
support (#1223) - de179dd - gRPC compression compatibility tests (#1232)
- 8cafd9c - Improve exception messages from
HttpObjectDecoder
(#1228) - 7eb37c3 - Make
HttpObjectDecoder
more RFC7230 compatible (#1227) - 64861ec -
Publisher#flatMap*DelayError
limit queued exceptions (#1220)
Dependencies upgrade
- 9773b43 - Update netty 4.1.54.Final -> 4.1.55.Final, tcnative 2.0.34.Final -> 2.0.35.Final (#1254)
- b496c8b - Update protobuf-gradle-plugin 0.8.13 -> 0.8.14 (#1251)
- 39adbc3 - Update grpc-java 1.33.1 -> 1.34.0 (#1250)
- da3209b - Update zipkin-reporter 2.15.2 -> 2.16.2 (#1249)
- f725752 - Update javapoet 1.12.1 -> 1.13.0 (#1248)
- 16de911 - Update protobuf 3.13.0 -> 3.14.0 (#1247)
- 2ba5d3f - Update jctools 3.1.0 -> 3.2.0 (#1245)
- 1c52455 - Update Jackson 2.10.5 -> 2.10.5.1 (#1237)
- 848b9c3 - Update gradlew 6.5.1 -> 6.7.1 (#1226)
- 618f515 - Update Jersey 2.32 -> 2.30.1 (#1212)
- 14821b2 - Update jakarta.activation 1.2.1 -> 1.2.2 (#1211)
- 7592d9d - Update jakarta.xml.bind-api 2.3.2 -> 2.3.3
- 1f0768f - Update jaxb-impl 2.3.2 -> 2.3.3
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.34.0
Changes
This release contains the following significant changes:
New features
- 87f8717 - Option to configure capacity of the datagram packet buffer for DNS SD (#1193)
- 1e6ac5f - grpc-protoc typeNameSuffix option (#1184)
API changes
Improvements
- 78c9137 - Improve
DefaultHttpRequestMetaData
query manipulator methods (#1196) - 26f4560 - Http URI related fixes and enhancements (#1194)
- a733bf3 - Enhance null header value exception (#1195)
- ce68ee4 - Use
IoThreadFactory
forIoExecutor
inExecutionContextRule
(#1190) - 898ec8b - Simplify
PrematureClosureBeforeResponsePayloadBodyTest
(#1189) - cdecc85 - Verify HTTP message is processed if it is followed by malformed data (#1188)
- a25e994 - Add more test scenarios for
HeaderUtils#hasContentType
(#1185) - 5b0e4ec - Verify that all graceful closure use-cases also work with HTTP/2 (#1180)
- a0bf19d - Improve
servicetalk-test-resources/log4j2.xml
(#1181)
Dependencies upgrade
- 9a6d97b - Update Netty 4.1.53 -> 4.1.54 (#1208)
- 6ed05c1 - Update proto-google-common-protos 1.18.0 -> 2.0.1 (#1201)
- c8d3ded - Update log4j 2.13.3 -> 2.14.0 (#1205)
- 5b8269c - Update grpc-java 1.29.0 -> 1.33.1 [testing dependency] (#1202)
- 78568f8 - Update spotbugs 4.0.3 -> 4.14, and gradle plugin 4.3.0 -> 4.5.1 (#1191)
Documentation
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.33.0
Changes
This release contains the following significant changes:
New features
- 3fba2fe - Support Unix Domain Sockets at
HttpClientBuilder
(#1153) - efa6356 - gRPC compression and support of message-encoding (#1151)
- a323b86 -
BlockingStreamingHttp[Response|Response]
to supportInputStream
setter (#1175) - 21d9ccc - Add
Publisher#flatMapMerge
operator (#1011)
API changes
- fd873e8 - Support batched service discoverer updates (#1146)
- efa6356 -
HeaderUtils.hasContentType
is now public (was done as part of #1151)
Improvements
- c3ff7bf - Avoid
Connection reset by peer
error when server closes the connection (#1141) - 3d57030 - Add tests and examples for mutual TLS (#1179)
- db7d8fb -
ConnectionContext.toString()
prints Netty's channel id (#1172) - d89d814 - Support half-closure for UnixDomainSockets (#1165)
- 4dd3782 -
servicetalk-grpc-protoc
remove plugin.proto (#1163)
Bug fixes
- 8643b82 - Clear
AsyncContext
before invokingHttpService
(#1150) - f314139 -
DynamicCompositeCancellable
queue full return value fix (#1159) - 573c998 - Do not abort server write if the
CloseEvent
is already registered (#1177) - 597e8cd - Support write of read-only
Buffer
(s) for HTTP/2 (#1171) - 04057c9 -
Publisher#flatMapMerge
queue not drained bug (#1161) - 699ce29 -
Single#toCompletionStage()
avoid cancel if normal termination (#1162) - 2301ec6 - Do not complete server write if there are still pending requests (#1155)
Dependencies upgrade
- 3080944 - Update Netty 4.1.52 -> 4.1.53, netty-tcnative 2.0.32 -> 2.0.34 (#1176)
- 51c36ab - Update jctools from 3.0.0 to 3.1.0 (#1182)
- 329a9fa - Update zipkin-reporter from 2.15.0 to 2.15.2 (#1183)
- acc8495 - Update jackson 2.10.4 -> 2.10.5 (#1157)
- 350c5b1 - Update protobuf 3.12.1 -> 3.13.0 (#1164)
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.32.0
Changes
This release contains the following significant changes:
Behavior Changes
- 26b4f60 - Dynamic log level for wire logging and h2 frame logging (#1123)
- Previously
enableWireLogging
andenableFrameLogging
builder options would always log atTRACE
logging level. Now the logging level is dynamic and derived from the logging configuration. You can use the logging configuration to control the log level, disable the logger all together (e.g. log levelOFF
), and/or filter logging dynamically (e.g.ThresholdFilter
from log4j2 or equivalent mechanism with your preferred logging implementation).
- Previously
- 7b429c5 - Simplify ServiceDiscoverer generics in client builders (#1144)
- 13ee468 - Remove servicetalk-grpc-gradle-plugin (#1125)
- See the commit message for more details and updated example for impacts on your gradle build.
New Features
- 694ca94 - Observability for connection establishment and read-write events (#1105)
- 11f8640 - Security handshake observability (#1099)
- b6abb28 - Observability for connection level events (#1095)
Bug Fixes
- 50fb8e6 - Ignore checkstyle line length for site-remote.yml
- 08e7293 - Fix flaky test in
HttpTransportObserverTest
(#1143) - 1d76daa - Allow for continuations in streamed form-url-encoded params during serialization (#1133)
- 099c9e0 - Fix assertEquals expected & actual order (#1127)
Improvements
- 09ffa8c - Gradle wrapper validation (#1140)
- bed2706 - Provide informative exceptions upon gRPC calls when plain h2/h1 resp (#1132)
- 8a77394 - Improve wrapping with the close reason (#1142)
- 2939492 - Provide a public factory for
BiTransportObserver
(#1135) - 7137ee3 - Report
streamEstablished
event, improvestreamClosed
handling (#1131) - b46a949 - Avoid using nullable fields for observers (#1134)
- d077aac - Propagate
SecurityHandshakeObserver
without channel attribute (#1129) - 77a14d8 - Verify connection close event reported when it is closed after idle timeout (#1130)
- c49d669 - Propagate ConnectionObserver without channel attribute (#1124)
- 6dca512 - Introduce
CatchAllTransportObserver
that catches and logs unexpected exceptions (#1118) - 311c9c4 - Configure
TransportObserver
viaConnectionFactory
on the client-side (#1114) - 553bef6 - Fix example comments for grpc gradle plugin dependency (#1137)
- dfe9aad - Improve tests for ALPN (#1128)
- f795959 - Add tests for HTTP request smuggling in headers (#1126)
Dependencies upgrade
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.