Skip to content

Releases: reactor/reactor-netty

v1.0.6

13 Apr 07:45
Compare
Choose a tag to compare

Reactor Netty 1.0.6 is part of 2020.0.6 Release Train.

This is a recommended update for all Reactor Netty 1.0.x users.

✨ New features and improvements

  • Depend on Reactor Core v3.4.5, see release notes. (67073b4)
  • Depend on Netty v4.1.63.Final. (f04f578, e86469d)
  • Expose a new API AccessLogArgProvider#accessDateTime for obtaining ZonedDateTime. (#1566, #1567)
  • Expose a new API AccessLogArgProvider#cookies for obtaining cookies information. (#1577, #1581)
  • Expose a new API for applying the SslContext's default configuration prior any other configuration. (#1543, #1573)
    • SslProvider.SslContextSpec#sslContext(SslProvider.ProtocolSslContextSpec)
      provides, specific for the protocol, default configuration (DefaultSslContextSpec, TcpSslContextSpec, Http11SslContextSpec, Http2SslContextSpec).
      As opposed to SslProvider.SslContextSpec#sslContext(SslContextBuilder), the default configuration is applied before any other custom configuration.

🪲 Bug fixes

  • When H2C and HTTP/1.1 are configured and H2C upgrade is rejected, ensure all requests on that connection continues as HTTP/1.1. (#1551, #1553)
  • Add pending acquire requests to the HTTP/2 pool state debug info. (#1554)
  • Ensure the custom Netty handlers are able to access tracing information. (#1555, #1578)
  • Ensure uriTagValue metrics function is not shared amongst the clients. (#1559, #1562)
  • Remove the query and the fragment from the uri when decoding the path. (#1564)
  • Ensure Forwarded header is parsed according to the specification. (#1589)
  • Throw IllegalArgumentException in case neither address nor host is specified for the proxy. (#1591, #1592)

📖 Documentation, Tests and Build

  • Ensure aggregateJavadoc task configuration is the same as the javadoc task configuration. (#1552)
  • Add test that verifies that a custom User-Agent header is preserved. (#1560, #1565)
  • The check for backwards compatibility should be against the previous release and not GA. Some APIs are added after GA so we need to guarantee backwards compatibility for these APIs also. (#1575, 961726c)
  • GitHub Actions Release Process: signing, artifactory, sonatype (#1594)
  • Switch from ubuntu-18.04 to ubuntu-20.04 when building PRs (#1596)
  • Update build/test dependencies versions:
    • org.gradle.test-retry to version 1.2.1. (#1558)
    • netty-tcnative-boringssl-static to version 2.0.38.Final. (a271561)
    • netty-incubator-transport-native-io_uring to version 0.0.5.Final. (#1571)
    • blockhound-junit-platform to version 1.0.6.RELEASE. (#1587)
    • Apache Tomcat to version 9.0.45. (#1588)
    • mockito-core to version 3.9.0. (#1590)

👍 Thanks to the following contributors that also participated to this release

@eugene-sadovsky

v0.9.19.RELEASE

13 Apr 07:42
Compare
Choose a tag to compare

Reactor-Netty 0.9.19.RELEASE is part of Dysprosium-SR19 Release Train.

This is a recommended update for all Reactor Netty 0.9.x users.

✨ New features and improvements

📖 Documentation, Tests and Build

  • Remove all occurrences of jcenter() in build. (8d1de34)
  • The check for backwards compatibility should be against the previous release and not GA. Some APIs are added after GA so we need to guarantee backwards compatibility for these APIs also. (#1575)
  • GitHub Actions Release Process: signing, artifactory, sonatype (#1593)
  • Switch from ubuntu-18.04 to ubuntu-20.04 when building PRs (#1595)
  • Update test dependencies versions:
    • org.gradle.test-retry to version 1.2.1. (#1558, 8b1895b)
    • netty-tcnative-boringssl-static to version 2.0.38.Final. (279abfb)
    • Apache Tomcat to version 9.0.45. (#1588, 73c2426)

v1.0.5

16 Mar 10:01
Compare
Choose a tag to compare

Reactor Netty 1.0.5 is part of 2020.0.5 Release Train.

This is a recommended update for all Reactor Netty 1.0.x users.

✨ New features and improvements

🪲 Bug fixes

  • Ensure an error is propagated in case the client drops the connection. (#1512, #1514)
  • When the HttpServer is in HTTP/2 mode, the terminate functionality is moved immediately after LastHttpContent, instead of waiting for channelInactive event. (#1512, #1514)
  • Add more debug information for inbound double subscription use case. (#1518)
  • Add pending acquire requests to the pool state debug information. (#1519)
  • Add memory leak hint when the inbound message is provided to the receiver. (#1520, e77fbda)
  • Ensure is100Continue is initialised in the copy constructor. (bcc489e)
  • When there isn't a custom name resolver and the global LoopResources are in use then all client transports will share one and the same name resolver. (#1515, #1529, #1532)
  • Ensure relative redirection is resolved correctly following to the specification. (#1533, #1536)
  • Cache AddressResolverGroupMetrics per resolverGroup and recorder. (#1547, #1548)

📖 Documentation, Tests and Build

  • Documentation:
    • Update TcpResources/UdpResources javadoc with preferred disposal methods. (#1526)
    • Add link to Epoll/KQueue channel options in addition to the common channel options in the reference documentation. (#1535)
    • Extend documentation with various timeout configurations supported by HttpClient. (#1542)
  • Build:
    • Specify source and target java compatibility to 1.8. (#1527)
    • BlockHound requires -XX:+AllowRedefinitionToAddDeleteMethods when java >= 13. (#1527)
    • Remove all occurrences of jcenter() in build. (3ee0996)
  • Update build/test dependencies versions:
    • biz.aQute.bnd.builder to version 5.3.0. (#1517)
    • mockito-core to version 3.8.0. (#1516)
    • jacoco to version 0.8.6. (#1527)
    • jackson-databind to version 2.12.2. (#1528)
    • gradle to version 6.8.3. (c146e48)
    • Apache Tomcat to version 9.0.44. (#1545)

👍 Thanks to the following contributors that also participated to this release

@JamesChenX

v0.9.18.RELEASE

16 Mar 10:00
Compare
Choose a tag to compare

Reactor-Netty 0.9.18.RELEASE is part of Dysprosium-SR18 Release Train.

This is a recommended update for all Reactor Netty 0.9.x users.

✨ New features and improvements

🪲 Bug fixes

  • When the HttpServer is in HTTP/2 mode, the terminate functionality is moved immediately after LastHttpContent, instead of waiting for channelInactive event. (c6e7a97)

📖 Documentation, Tests and Build

  • Update test dependencies versions:

v1.0.4

16 Feb 09:19
Compare
Choose a tag to compare

Reactor Netty 1.0.4 is part of 2020.0.4 Release Train.

This is a recommended update for all Reactor Netty 1.0.x users.

✨ New features and improvements

🪲 Bug fixes

  • ServerTransport#childOption logs ERROR only when there is an attempt to set auto-read=true. (#1466)
  • Ensure the correct exception is propagated when HttpClient#uri(Mono.error()). (#1470)
  • HttpClient schedules the first channel.read() once the HttpHeaders are sent. (#421, #1478, #1480)
  • When CloseWebSocketFrame with -1 status code (undefined/empty), emit WebSocketCloseStatus.EMPTY. (#1485, #1487)
  • Ensure endStream=true when responding with 500 Internal Server Error when server in HTTP/2 mode. (#1490)
  • Do not load HttpClientSecure when the protocol is H2C. (#1491)
  • Ensure the correct HttpClientResponse is created when client request with Expect: 100-continue (#1482, #1492)
  • Ensure PERSISTENT_CHANNEL and CONNECTION attribute keys, can be used in a multi-classloaders context. (#1471, #1503)

📖 Documentation, Tests and Build

  • Test the native transport is available when running with -PforceTransport=native. (#1464)
  • Test various HttpClient configurations that may affect the creation of the connection pool. (#1472, #1473)
  • Add Lifecycle Callbacks examples to the reference documentation. (#1481)
  • Add support and deprecation policies to README and reference guide. (#1483)
  • Define retry flaky tests functionality for all tasks with type Test. (d222ebf)
  • Enforce NoHTTP with plugin and relevant exclusions. (#1495)
  • Add package-info.java to reactor.netty.http.brave. (6f171a7)
  • Test that the server selector channel is closed when the server is disposed. (#360, #1501)
  • Update build/test dependencies versions:
    • mockito-core to version 3.7.7. (#1468)
    • assertj-core to version 3.19.0. (#1476)
    • Apache Tomcat to version 9.0.43. (#1488)
    • junit to version 5.7.1. (#1493)
    • junit-platform-launcher to version 1.7.1. (#1494)
    • com.google.osdetector to version 1.7.0. (#1504)
    • netty-tcnative-boringssl-static to version 2.0.36.Final. (3b37945)
    • netty-incubator-transport-native-io_uring to version 0.0.4.Final. (#1507)

👍 Thanks to the following contributors that also participated to this release

@k631583871, @leleueri, @limaoning

v0.9.17.RELEASE

16 Feb 09:19
Compare
Choose a tag to compare

Reactor-Netty 0.9.17.RELEASE is part of Dysprosium-SR17 Release Train.

This is a recommended update for all Reactor Netty 0.9.x users.

✨ New features and improvements

🪲 Bug fixes

  • Ensure the correct exception is propagated when HttpClient#uri(Mono.error()). (#1470)
  • Ensure PERSISTENT_CHANNEL and CONNECTION attribute keys, can be used in a multi-classloaders context. (#1471, #1503)

📖 Documentation, Tests and Build

  • Define retry flaky tests functionality for all tasks with type Test. (5bf3116)
  • Enforce NoHTTP with plugin and relevant exclusions. (#1496)
  • Update build/test dependencies versions:

👍 Thanks to the following contributors that also participated to this release

@k631583871, @leleueri

v1.0.3

11 Jan 18:19
Compare
Choose a tag to compare

Reactor Netty 1.0.3 is part of 2020.0.3 Release Train.

This is a recommended update for all Reactor Netty 1.0.x users.

✨ New features and improvements

  • Depend on Reactor Core v3.4.2, see release notes. (dba527e)
  • Depend on Netty v4.1.56.Final. (#1412, d1513ef, f6f047f)
  • 🎉 Add support for the native io_uring based transport. (#1419)
    More information about native io_uring based transport.
    Enablement of the io_uring support:
    If the conditions below are met then io_uring will be prefered instead of epoll.
  • Add warmup functionality for the servers/clients. (#560, #1023, #1425, #1426, #1455)
    The warmup:
    • initialises the event loop groups
    • initialises the host name resolver
    • loads the necessary native libraries for the transport
    • loads native libraries for the security if security is enabled
  • HttpServer access log
    • Add API for filtering the access log records. (#1417, #1421)
    • Add API for enabling and configuring the access log programatically. (#1428, #1438, #1456, 7026443)
    • Add examples for enabling and configuring the access log to the reference documentation. (#1452)
  • Add API for configuring the WebSocket version of HttpClient. (#1418, #1432)
  • When running on MacOS, the host name resolver will use MacOSDnsServerAddressStreamProvider. (#1435, 5f0fb4a, 9c67c09)
  • Add system properties for enabling Reactor Pool's SamplingAllocationStrategy. (#1454, reactor/reactor-pool#113)
    • reactor.netty.pool.getPermitsSamplingRate
    • reactor.netty.pool.returnPermitsSamplingRate.

🪲 Bug fixes

  • Ensure WebSocketCloseStatus.ABNORMAL_CLOSURE is emitted when connection is closed abnormally. (#1406, #1416)
  • Ensure the default loop resources are not created when custom loop resources are passed with runOn. (#1423, #1424)
  • HttpServer: When in UDS scenario, the scheme is determined by SslHandler availability in the pipeline. (#1434, #1436)
  • HttpClient: Throw WebSocketClientHandshakeException when connection is closed before handshake is completed instead of silently terminating the channel. (#1445, #1448)
  • Shutdown immediately the extra event loop groups created when initialising DefaultLoopResources. (#1453)
  • Add channel information to the log. (42f640c)

📖 Documentation, Tests and Build

  • Tomcat 10 should be skipped by dependabot. (47d6e73, 8f20f29)
  • CodeQL workflow: git checkout HEAD^2 is no longer necessary. (54ca3bf)
  • Japicmp: Use jcenter instead of repo.spring.io/libs-release for downloading the baseline. (fbcfcbe)
  • Enable BlockHound in tests. (#750, #1427)
  • Remove mocked appender from root logger after each test in ReactorNettyLoggingHandlerTest. (#1422, #1429)
  • With JUnit5 no need to keep tests with public visibility. (0901150, 45df700)
  • Move test to reactor-netty-core. (dcca2c8)
  • Extract BaseHttpTest. (#1439)
  • Reference documentation
    • Add DNS resolver examples to the reference documentation. (#1431, #1437)
    • Update the javadoc and the reference documentation with clarification around deprecated functionality. (#1397, #1450)
  • Formatting
    • Update .editorconfig, no imports with *. (9f7ccbe)
    • Enable checkstyle as part of the build. (#1440, a276c3b)
  • Update test/build dependencies versions:
    • Apache Tomcat to version 9.0.41. (#1414)
    • netty-tcnative-boringssl-static to version 2.0.35.Final. (63b6028)
    • mockito-core to version 3.7.0. (#1451)
    • brave to version 5.13.3. (#1444)
    • jackson-databind to version 2.12.1. (#1458)

👍 Thanks to the following contributors that also participated to this release

@anilgursel

v0.9.16.RELEASE

11 Jan 13:50
Compare
Choose a tag to compare

Reactor-Netty 0.9.16.RELEASE is part of Dysprosium-SR16 Release Train.

This is a recommended update for all Reactor Netty 0.9.x users.

✨ New features and improvements

  • Depends on Reactor Core v3.3.13.RELEASE, see release notes. (a8ca595)
  • Depends on Netty v4.1.56.Final. (#1412, 8bb81cb, ee7d317)
  • Add system properties for enabling SamplingAllocationStrategy:
    • reactor.netty.pool.getPermitsSamplingRate
    • reactor.netty.pool.returnPermitsSamplingRate
      They are exposed in order to be able to enable Reactor Pool's SamplingAllocationStrategy. (#1454, reactor/reactor-pool#113)

📖 Documentation, Tests and Build

  • Update reference documentation. (49ed3a6)
  • Configure gradle to retry once flaky tests. (e9c5b9a)
  • Update test dependencies versions:
    • Apache Tomcat to version 9.0.41. (#1414, 802e386)
    • netty-tcnative-boringssl-static to version 2.0.35.Final. (3fc0c95)
    • jackson-databind to version 2.12.1. (#1458, ef1e9b2)

v1.0.2

08 Dec 06:55
Compare
Choose a tag to compare

Reactor Netty 1.0.2 is part of 2020.0.2 Release Train.

This is a recommended update for all Reactor Netty 1.0.x users.

See also release notes from 0.8.23 for changes that were inherited from the 0.8.x maintenance release.
See also release notes from 0.9.15 for changes that were inherited from the 0.9.x maintenance release.

✨ New features and improvements

  • Depends on Reactor Core v3.4.1, see release notes. (fdc03c5)
  • Support data frames decompression/compression for HttpClient/HttpServer with HTTP/2 enabled. (#1379, #1381)

🪲 Bug fixes

  • Ensure SSL configuration applies when using HttpClient#from. (#1382, #1383)
  • When searching for native transport, try first to load epoll. (#1386)
  • Reintroduce OSGi and adapt OSGi Bundle-Version to new Europium scheme. (#1392, #1402)
  • When configuring the protocol and the default ssl provider for HttpClient, pick the protocol with the highest version number that supports the target’s URI scheme. (#1394, #1403)

📖 Documentation, Tests and Build

  • Update test/build dependencies versions:
    • brave to version 5.13.2. (#1391)
    • mockito-core to version 3.6.28. (#1393)
    • org.gradle.test-retry to version 1.2.0. (#1395)

👍 Thanks to the following contributors that also participated to this release

@Mert-Z

v0.9.15.RELEASE

08 Dec 06:54
Compare
Choose a tag to compare

Reactor Netty 0.9.15.RELEASE is part of Dysprosium-SR15 Release Train.

This is a recommended update for all Reactor Netty 0.9.x users.

See also release notes from 0.8.23 for changes that were inherited from the 0.8.x maintenance release.

✨ New features and improvements

  • Depends on Reactor Core v3.3.12.RELEASE, see release notes. (790dcd0)
  • Add API HttpServer#idleTimeout. An API for specifying an idle timeout on the connection when it is waiting for an HTTP request. (#1345, #1376)
  • Support data frames compression for HttpServer with HTTP/2 enabled. (7264f8c)