Skip to content

Releases: apple/servicetalk

0.41.0

16 Jun 19:16
Compare
Choose a tag to compare

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


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

28 May 07:00
Compare
Choose a tag to compare

Changes

This patch release contains the following changes:

Bug fixes

  • eac9813 - DefaultServiceDiscoveryRetryStrategy may emit duplicated SD events (#1586)

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

28 May 06:09
Compare
Choose a tag to compare

Changes

This patch release contains the following changes:

Bug fixes

  • 5556e22 - DefaultServiceDiscoveryRetryStrategy may emit duplicated SD events (#1586)

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

26 May 16:58
Compare
Choose a tag to compare

Changes

This release contains the following significant changes:

New features

  • 2b8b57e - Support wrapping read-only ByteBuffer(s) by ServiceTalkBufferAllocator (#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

Improvements

  • ce49400 - Produce a TrailersOnly response when gRPC endpoints throw an error (#1573)
  • bdc0c9f - Implementation of equals and hashCode on IdentityContentCodec (#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 and servicetalk-http-netty (#1521)
  • 253c34d - Make http-api:testFixtures usable in other modules (#1570)
  • b6f1e22 - Fix "assume" statements in tests (#1574)
  • 67dcd07 - Fix ByteBuf leak in HttpObjectDecoderTest (#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 to servicetalk-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


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

07 May 04:16
Compare
Choose a tag to compare

Changes

This patch release contains the following changes:

Binary compatibility fixes

  • ecec67e - RoundRobinLoadBalancer reduce copy/resize for connection add/remove (#1514)

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

20 Apr 00:48
Compare
Choose a tag to compare

Changes

This patch release contains the following changes:

Binary compatibility fixes

  • 284cd7c - Restore CharSequences.newAsciiString(String) (#1503)

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

16 Apr 02:13
Compare
Choose a tag to compare

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 and Single.zip operators (#1431)
  • fc33ee5 - Implement CharSequences#parseLong(CharSequence) (#1469)
  • a953261 - Improve timeout support for HTTP (#1456)
    • This adds TimeoutHttpServiceFilter, support for a custom TimeoutFromRequest function for both timeout filters, and ability to apply a timeout for the whole response (including paylaod body).
    • 6948c0f - Use consistent defaults for HTTP Timeout filters (#1486)
  • 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 accept CharSequence (#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 name timeout
  • 1306f84 - Deprecate ContentCodec API with offest & length (#1440)

Bug fixes

  • dd4dc47 - Fix unsubscribed message-body when PayloadInfo#isEmpty returns true (#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)
    • 1d4b799 - Filter out missed racy close on CancellationTest (#1488)
  • 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 to DurationUtils (#1493)
  • c3ece23 - H2PriorKnowledgeFeatureParityTest remove exception verification workaround (#1477)
  • 097ea26 - Verify that HttpHeaders impl for HTTP/2 does not throw NullPointerException (#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 to int (#1443)
  • 58dcb6f - Skip grpc-accept-encoding when the only option is identity (#1433)
  • 0585f9f - Add Publisher.from(..) 2 and 3 arity overloads (#1432)

Documentation

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

12 Mar 22:33
Compare
Choose a tag to compare

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

12 Mar 17:21
Compare
Choose a tag to compare

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 the io.servicetalk.encoding.netty package.
  • 50079f7 - Add SslConfig APIs (#1387)
  • 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.
  • b11aec7 - gRPC missing grpc-status error code update (#1394)
    • grpc-status code was changed from INTERNAL to UNKNOWN if the grpc-status is not present.
  • e6a3522 - Clarify AsyncContext put API relative to @Nullable (#1399)
    • AsyncContextMap values may now be null
  • 9d9720d - Remove deprecated methods from HTTP request/response types (#1340)
    • Removed obsolete payloadBodyAndTrailers, transformRawPayloadBody and transformRaw methods.
  • 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.
  • 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).
  • 04db0b6 - Deprecate MultiAddress and Partitioned client builder methods (#1426)
    • Users of MultiAddressHttpClientBuilder and PartitionedHttpClientBuilder should use initializer(SingleAddressInitializer) builder method to customize configuration of internal SingleAddressHttpClient instances instead of methods at the builder itself. Deprecated methods will be removed in the next release.
  • b0c0b24 - Make UdpReporter.Builder#enableWireLogging consistent with other modules (#1418)
    • UdpReporter.Builder#enableWireLogging(String) is deprecated and replaced with a new overload UdpReporter.Builder#enableWireLogging(String, LogLevel, BooleanSupplier). The deprecated variant will be removed in the next release.
  • 471f7de - Change Verifiers.stepVerifier back to StepVerifiers.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.

Bug fixes

  • 9812099 - BufferOutputStream.write(int) should write as byte and not int (#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 inside transform 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 different CharSequence implementations (#1380)
  • de35c7e - Replace CharSequence equality checks with contentEquals (#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 with SocketChannel for server flush strategy (#1393)
  • f9f6f76 - gRPC Router reduce error log noise (#1403)
  • 44121a1 - TcpConnector reduce log noise (#1400)
  • e33292e - LoadBalancedStreamingHttpClient should not hide PayloadInfo 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

  • 5a5b473 - Github actions remove out of date version comment (#1358)

Dependency upgrades

Read more

0.37.3

15 Feb 06:12
Compare
Choose a tag to compare

Changes

This patch release contains the following significant changes:

Bug fixes

  • b8eb4fb - Do not fail HTTP/2 single-frame messages with zero content-length (#1371)

Improvements

  • a8c33f7 - Avoid "Maximum active streams violated for this endpoint" at the client level (#1373)

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.