Releases: apple/servicetalk
0.41.0
Changes
This release contains the following changes:
Bug fixes
- 4e9c7e0 -
Publisher#flatMapMergeSingle
catch an propagate unexpected errors downstream (#1614) - 1ef82dd -
Single#concat(Publisher)
onNext
error propagation (#1615) - 4f7110b - Defer trailer transformer callbacks on null msg-body to subscription (#1577)
- fbcfc7f - Prevent memory leak if HTTP/1.1 encoding fails (#1610)
- b2a26ca -
DefaultDnsServiceDiscovererBuilder#maxUdpPayloadSize
validation msg fix (#1589) - a51d2f2 -
DefaultServiceDiscoveryRetryStrategy
may emit duplicated SD events (#1586)
Improvements
- 4c8e681 - Allow using
null
peer host for TLS and disabling host and port inference and SNI altogether (#1561)
Improvements for tests
- 0d06d0d - New PMD rules introduced in PMD 6.35 (#1596)
- 62dc0c1 -
assertNoAsyncErrors
more queue types and msg arg (#1583)
- 6384f04 - Migrate
servicetalk-client-api
tests from jUnit4 to jUnit5 (#1612) - 83c9206 - Migrate
servicetalk-client-api-internal
from jUnit4 to jUnit5 (#1608) - 8cffe4c - Migrate servicetalk-dns-discovery-netty tests to JUnit 5 (#1568) (#1607)
- aa4d662 - Migrate servicetalk-opentracing-zipkin-publisher tests to JUnit 5 (#1568) (#1606)
- f85f15d - Migrate servicetalk-opentracing-log4j2 tests to JUnit 5 (#1568) (#1605)
- 6fd2e31 - Migrate servicetalk-opentracing-http tests to JUnit 5 (#1568) (#1604)
- e4e1704 - Migrate servicetalk-opentracing-asynccontext tests to JUnit 5 (#1568) (#1603)
- e890ac9 - Migrate servicetalk-transport-netty-internal tests to JUnit 5 (#1568) (#1601)
- bae5f7b - Migrate servicetalk-transport-api tests to JUnit 5 (#1568) (#1600)
- 1a20e12 - Migrate servicetalk-opentracing-inmemory tests to JUnit 5 (#1568) (#1599)
- d89a9a8 - Migrate servicetalk-buffer-api tests to JUnit 5 (#1568) (#1592)
- 7f2d5a1 - Migrate servicetalk-buffer-netty tests to JUnit 5 (#1568) (#1593)
Build/Release/Github actions
- 9aac76b - run GitHub release action publish task without parallel (#1620)
- 63f1673 - Bump scacap/action-surefire-report from 1.0.11 to 1.0.12 (#1618)
- eea9bde - Bump scacap/action-surefire-report from 1.0.10 to 1.0.11 (#1611)
- 9d90c14 - Upgrade Gradle to 7.0.2 and configure parallel tasks (#1598)
- a3f1c02 - Bump gradle/wrapper-validation-action from 1.0.3 to 1.0.4 (#1594)
- 305eeea - Execute Gradle tasks in parallel (#1591)
- 0c4bd54 - Bump actions/cache from 2.1.5 to 2.1.6 (#1587)
- 571440a - Bump scacap/action-surefire-report from 1.0.9 to 1.0.10 (#1584)
- 426165d - Forces a check for updated snapshots on remote repositories for japicmp (#1581)
- 0cf4944 - release.sh: check that the next version doesn't equal to the current one (#1582)
Dependency upgrades
- 6201cb5 - Update Jersey 2.32 -> 2.34 (#1619)
- 93deaf6 - Upgrade to Gradle 7.0.2 (#1590)
- 8948abc - Upgrade checkstyle 8.42 -> 8.43 (#1597)
- f94e4b5 - Upgrade PMD 6.34.0 -> 6.35.0 (#1595)
- 677f2c1 - Update proto-google-common-protos 2.0.1 -> 2.3.2 (#1542)
- e1bd758 - Update protobuf-java 3.15.3 -> 3.17.3 (#1541)
- 3fc293e - Update protobuf-gradle-plugin 0.8.15 -> 0.8.16 (#1540)
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.40.1
Changes
This patch release contains the following changes:
Bug fixes
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.39.3
Changes
This patch release contains the following changes:
Bug fixes
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.40.0
Changes
This release contains the following significant changes:
New features
- 2b8b57e - Support wrapping read-only
ByteBuffer
(s) byServiceTalkBufferAllocator
(#1528) - d97df5f - Add
Single#zipDelayError
operator (#1515) - 98ff59d - Support additional opentracing span kinds
producer
&consumer
(#1513)
API or Behavior changes
- 98e40c0 - Unconditional timeout filter for gRPC server and client (#1529)
- 6f0d87f - Deprecate
append
method on all filter factories (#1578) - a31605d - Deprecate HTTP/gRPC
offloadWithThreadAffinity
(#1564) - 0c27f44 - Deprecate
publishAndSubscribeOnOverride
operators (#1527) - 42be7ff - Restore public API changes for
transport-netty-internal
(#1549) - e055ea7 - Restore public API changes for
grpc-api
(#1548)
Bug fixes
- 4e128eb - Disable auto ack for HTTP/2 PING frames by netty (#1558)
- 2bc89b5 -
shutdownOutput()
for SSL connections prematurely closes the Channel (#1502) - 362a697 -
Publisher#flatMapMergeSingle
mapped source duplicate terminal improved visibility (#1516) - 9a56a3d - Introduce
AsyncContext
test fixture for service filters (#1505)- Fixes
AsyncContext
visibility for the following service side filters:ContentCodingHttpServiceFilter
BasicAuthHttpServiceFilter
- Fixes
Improvements
- ce49400 - Produce a
TrailersOnly
response when gRPC endpoints throw an error (#1573) - bdc0c9f - Implementation of
equals
andhashCode
onIdentityContentCodec
(#1525) - 3a20890 - Use
UniformStreamByteDistributor
for HTTP/2 connections (#1523) - c525813 - Don't load netty-transport-native classes when native lib isn't available (#1539)
- a07bf29 - Move gRPC deadline details to new internal module (#1501)
- 70e3368 - Trigger
NettyConnectionClosing#onClosing()
on HTTP/2 channel-inactive (#1560) - edc0e6d - Optimize encoding of HTTP/2 frames to write less on the wire (#1518)
- 487f77e - Reduce test logging output from build (#1506)
- e516c64 - release.sh: identify the remote before switching into
DRYRUN
mode (#1498)
Improvements for tests
- 6b4a240 - Script that checks API/ABI compatibility between versions (#1552)
- cd26412 - junit4 to junit5 migration. step 2 - modules
servicetalk-http-api
andservicetalk-http-netty
(#1521) - 253c34d - Make
http-api:testFixtures
usable in other modules (#1570) - b6f1e22 - Fix "assume" statements in tests (#1574)
- 67dcd07 - Fix
ByteBuf
leak inHttpObjectDecoderTest
(#1508) - cbfb48e - Test
BufferInputStream#skip(long)
(#1572) - 8d92bb5 - Fix flaky
closePipelinedAfterTwoRequestsSentBeforeAnyResponseReceived
(#1557) - c294cc5 - Fix flaky
PrematureClosureBeforeResponsePayloadBodyTest#notAllHeadersReceived()
(#1504) - 8a4f916 - Fix flaky
GracefulConnectionClosureHandlingTest#closeIdleBeforeExchange
test (#1500) - fecc3d3 - Fix
ProxyTunnel
to always use the IP-address instead of the localhost (#1563) - 65a77cb - Do not use TLSv1.1 in tests (#1533)
- ad7e8e1 - Config test
ignoreFailures
via system property (#1524)
Documentation
- 4d0ed54 - Jersey example with multipart file upload support (#1555)
- 57f1071 - Do not hardcode netty-tcnative version in docs (#1571)
- d599ab6 - Fix broken link in HTTP timeout example (#1547)
- 5a60f1f - Minor grammar corrections on blocking-safe-by-default.adoc. (#1526)
- d045f2c - Minor grammar corrections on async-context.adoc. (#1520)
- 4bf74e8 - Minor grammar corrections and misspelled words in GOVERNANCE.adoc (#1511)
- 1267227 - Enhance
Buffer
byte[]
accessor methods javadoc (#1517) - c2c3113 - Add
README.adoc
toservicetalk-test-resources
(#1509)
Github actions
- b88e4fa - Bump actions/checkout from 2 to 2.3.4 (#1553)
- cd4d6f0 - Reduce default test timeout on CI to 30s for jUnit4 (#1534)
- 7cfa6b1 - Bump dawidd6/action-download-artifact (#1519)
Dependency upgrades
- 9f16423 - Update netty 4.1.63.Final -> 4.1.65.Final (#1567)
- 4ad70d5 - Update netty-tcnative 2.0.38.Final -> 2.0.39.Final (#1556)
- bc9cd45 - Bump gradle/wrapper-validation-action from 1 to 1.0.3 (#1554)
- 63f30f0 - Update checkstyle 8.41.1 -> 8.42 (#1544)
- 5fa212e - Update pmd 6.33.0 -> 6.34.0 (#1546)
- 5022ddc - Update jmh-core 1.29 -> 1.30 (#1545)
- 484d345 - Update Gradle wrapper to 6.9 (#1531)
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.39.2
Changes
This patch release contains the following changes:
Binary compatibility fixes
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.39.1
Changes
This patch release contains the following changes:
Binary compatibility fixes
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.39.0
Changes
This patch release contains the following significant changes:
New features
- 7aa4751 - Add client and server support for gRPC deadlines (#1462)
- 808b31c - Add TCP Fast Open support (#1375)
- 1fc3b68 - Allow overriding key/trust managers on
SslConfig
builders (#1476) - cf51335 -
H1SpecExceptions
add option to allow LF without proceeding CR (#1475) - 6df4265 - Add
Publisher.scanWithLifetime(ScanWithLifetimeMapper)
operator (#1450) - c63d265 - Add
Publisher.timeoutTerminal(Duration)
operator (#1445) - 9fd0add - Publisher, Single, Completable
onError*
operators (#1435) - 786eed8 - Add
Single.zipWith
andSingle.zip
operators (#1431) - fc33ee5 - Implement
CharSequences#parseLong(CharSequence)
(#1469) - a953261 - Improve timeout support for HTTP (#1456)
- d7ecc59 - Add a ServiceTalk debugging utilities example (#1459)
- 59c5411 - Enable SHA256 and SHA512 checksums for published artifacts (#1485)
API or Behavior changes
- 58aa4da -
CharSequences.newAsciiString
acceptCharSequence
(#1470) - dab5c28 - Deprecate
CharSequences.isAsciiString
and replace its internal usages (#1451) - dcdf1d5 - Remove deprecated
io.servicetalk.http.api.CharSequences
(#1368) - da2b605 - Publisher, Single, Completable rename
idleTimeout
->timeout
(#1446)idleTimeout
operators are deprecated now, migrate to the new operator nametimeout
- 1306f84 - Deprecate
ContentCodec
API withoffest
&length
(#1440)
Bug fixes
- dd4dc47 - Fix unsubscribed message-body when
PayloadInfo#isEmpty
returnstrue
(#1495) - 5b0100b - Fix duration comparison bug in timeout filters and reduce code duplication (#1491)
- 75a546f - Use only monotonic clock in deadline calculations (#1481)
- 0372955 - FlakyTest: CancellationTest - Improve close handling (#1404)
- 8f3db89 -
Publisher#scanWith(ScanWithMapper)
incorrect/missing terminal after cancel (#1458) - 35b4293 - Smaller max delays and retry/repeat strategies with delta jitter (#1447)
- 57c7e74 - gRPC deserializer, multiple nio buffers with multiple messages (#1449)
Improvements
- 97b45c6 - Optimize HTTP messages with empty payload body (#1479)
- 82f2dd3 - Do not concatenate
Publisher.empty()
message body (#1497) - fb8af44 -
HttpTimeoutFilter
include original timeout on message body timeout (#1494) - 925142b - Add
DurationUtils#isInfinite
utility (#1496) - ee527ec - Move
Publisher#toNanos
toDurationUtils
(#1493) - c3ece23 -
H2PriorKnowledgeFeatureParityTest
remove exception verification workaround (#1477) - 097ea26 - Verify that
HttpHeaders
impl for HTTP/2 does not throwNullPointerException
(#1425) - 5ee8446 - Reduce initial size of listeners queue in
WriteStreamSubscriber
(#1465) - 3a253fb -
Publisher.toNanos(Duration)
should be static (#1454) - 0a154c2 - Run JUnit 4 based tests using
junit-vintage-engine
(#1452) - d5cdaac - Migrate tests in
servicetalk-concurrent-api
module from junit4 to junit5 (#1415) - bf7b3a2 - Remove obsolete and unproductive JVM options (#1437)
- ecb85bd -
RangeIntPublisher
add explicit cast toint
(#1443) - 58dcb6f - Skip
grpc-accept-encoding
when the only option isidentity
(#1433) - 0585f9f - Add
Publisher.from(..)
2 and 3 arity overloads (#1432)
Documentation
- dc35df8 - Update
MAINTAINERS.adoc
(#1448) - 4d60e67 - Fix typo in
Publisher.from(T, T, T)
javadoc (#1439)
Github actions
- bc810aa - Github Actions Remove
--max-workers
gradle param (#1444) - c26cac6 - Github Actions Add CodeQL Analysis (#1442)
- 627c354 - Github Actions dawidd6/action-download-artifact set workflow_conclusion (#1441)
Dependency upgrades
- 376282b - Remove jcenter dependencies from build (#1436)
- d4037d3 - Update netty 4.1.60 -> 4.1.63, netty-tcnative 2.0.36 -> 2.0.38 (#1466)
- 8366265 - Update log4j 2.14.0 -> 2.14.1 (#1483)
- 31a86f5 - Update grpc-java 1.36.0 -> 1.36.1 (#1460)
- 5c39d13 - Update grpc-java 1.36.1 -> 1.37.0 (#1482)
- 5683e5b - Update checkstyle to 8.41.1, pmd to 6.33.0, spotbugs-plugin to 4.7.0 (#1484)
- ff0ec96 - Update JMH 1.28 -> 1.29 and me.champeau.jmh plugin 0.5.3 -> 0.6.3 (#1468)
- 14de7f9 - Bump me.champeau.jmh from 0.6.3 to 0.6.4 (#1480)
- 1c6d167 - Bump actions/cache from v2.1.4 to v2.1.5 (#1478)
- 12ddffe - Bump actions/setup-java from v1 to v2 (#1471)
- 92b55e3 - Bump scacap/action-surefire-report (#1457)
- ec26d27 - Bump dawidd6/action-download-artifact (#1434)
- 4946440 - Update dependencies for site documentation (#1461)
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.38.1
Changes
This patch release contains the following significant changes:
Bug fixes
- 6c22657 - Allow client security configuration without trust material (#1430)
- 15cff22 - Fix NPE when
TRACE
request doesn't have content-length header for HTTP/2 (#1429)
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.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.