Skip to content

Releases: reactor/reactor-netty

v1.0.16

15 Feb 11:50
Compare
Choose a tag to compare

Reactor Netty 1.0.16 is part of 2020.0.16 Release Train.

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

What's Changed

✨ New features and improvements

🐞 Bug fixes

  • Prevent error when trying to add IdleTimeout by @raycoarana in #1994
  • HttpServerOperations#isFormUrlencoded handles header value with charset by @violetagg in #1998
  • Ensure the correct Context is provided to ContextAwareHttpServerMetricsRecorder by @violetagg in #2002
  • Http2 streams not closed if request data is not fully consumed by @pderop in #2009
  • Use the correct owner when invalidating the stream on close by @violetagg in #2014
  • Additional read operation needs to be scheduled on writing LastHttpContent by @violetagg in #2015
  • Ensure the stream is closed immediately when a server response is received but still sending the request body by @violetagg in #2017
  • Ensure HttpClient uses the new ConnectionProvider after HttpResources#reset by @violetagg in #2020
  • Propagate the client thread in the connection pool subscription context by @pderop in #2029

📖 Documentation, Tests and Build

🆙 Dependency Upgrades

New Contributors

Full Changelog: v1.0.15...v1.0.16

v1.0.15

11 Jan 16:14
Compare
Choose a tag to compare

Reactor Netty 1.0.15 is part of 2020.0.15 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.14, see release notes. (df8589e)
  • Add more server connection metrics: (#1366, #1956, 08f354d, 8c7d6e9)
    • TcpServer:
      • reactor.netty.tcp.server.connections.total - the number of all opened connections
    • HttpServer:
      • reactor.netty.http.server.connections.active - the number of http connections currently processing requests
      • reactor.netty.http.server.connections.total - the number of all opened connections

🐞 Bug fixes

  • When ConnectionProvider#acquire, add a pre-screen for connection pool existing before locking inside computeIfAbsent. (#1930)
  • Ensure HttpConnectionProvider exposes correct maxConnections/maxConnectionsPerHost information. (#1941, #1948)
  • Add a pre-screen before locking inside computeIfAbsent. (#1950)
  • Do not cache Meter builders. Meter builders are mutable and not thread safe. (#1974)
  • Additional read operations are needed on the server and the client when websocket handshake is performed, this is a result of behaviour change in Netty. (netty/netty#11966, #1976)
  • Simplify the pre-screen for ConcurrentHashMap#computeIfAbsent. (#1973, d9673e8, 8a59ff8, c6c6171, 2ee8e32)

📖 Documentation, Tests and Build

  • Switch from adopt to temurin as used java distribution for the build. (#1949)
  • Update build/test dependencies versions:
    • mockito-core to version 4.2.0. (#1938)
    • jackson-databind to version 2.13.1. (#1946)
    • gradle to version 7.3.3. (92a5786)
    • logback-classic to version 1.2.10. (#1958)
    • com.github.johnrengelman.shadow to version 7.1.2. (#1961)
    • brave to version 5.13.7. (#1964)
    • assertj-core to version 3.22.0. (#1965)
    • com.diffplug.spotless to version 6.1.2. (#1970)
    • build-info-extractor-gradle to version 4.26.1. (#1971)

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

@zimatars

v1.0.14

14 Dec 13:20
Compare
Choose a tag to compare

Reactor Netty 1.0.14 is part of 2020.0.14 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.13, see release notes. (50ae675)
  • Depend on Netty v4.1.72.Final. (1a85ac2)
    • Depend on Netty QUIC Codec v0.0.24.Final. (#1895, 01b9348)
  • Switch from PlatformDependent#newConcurrentHashMap to ConcurrentHashMap. (#1879)
  • Add support for netty-resolver-dns-native-macos Macos M1 architecture. (#1893)
  • Add metrics for max connections and max pending acquire requests. (#1872, #1897)
  • Add API for configuring the bind address for NameResolverProvider. (#1919, #1920)
  • Expose pending tasks of eventloops as metrics. (#1398, #1928)

🐞 Bug fixes

  • Properly transform http.nonProxyHosts into regex pattern in ProxyProvider. (#1861, #1906)
  • HTTP/2 connection pool
    • New HTTP/2 connection pool implementation. (#1789, #1818, #1844, #1923, #1931)
    • Introduce functionality for mutating the ConnectionProvider configuration. HTTP/2 connection pool inherits the configuration from its parent pool. HTTP/2 connection pool name is a combination of "http2" and the parent pool's name. (#1800, #1909)
    • Move DefaultPooledConnectionProvider#poolFactoryPerRemoteHost and #maxConnections to PooledConnectionProvider. (#1914)
    • Expose metrics for the number of the active HTTP/2 streams. (#1328, #1927)

📖 Documentation, Tests and Build

  • Documentation
    • Clarify in javadoc that some status codes must not be used as such in websocket close frame. (#1896)
    • How to debug connection to proxy cannot be established. (#1898)
    • Add examples for the different wire logger formats. (#1899)
    • Add information for the prefix that is added to every log record. (#1903)
    • How to debug memory leaks. (#1904)
    • How to debug Connection prematurely closed BEFORE response. (#1905)
  • Inherit CONTRIBUTING.md from the parent project. (026fb3c)
  • Update Gradle to 7.3.1. (#1875, #1878, #1892, 43c5ccb)
    • Remove the optional dependencies in the generated pom.xml.
    • Remove the usage of the Gradle deprecated functionality.
    • Update Asciidoctor to version 3.3.2.
    • nohttp-checkstyle specify repository on root level.
  • Add testRuntimeOnly dependency to org.bouncycastle:bcpkix-jdk15on. (#1880, #1911)
  • Update actions/setup-java to version 2. (2c36882, 0d54705)
  • Update build/test dependencies versions:
    • com.github.johnrengelman.shadow to version 7.1.0. (#1838)
    • errorprone gradle plugin to version 2.0.2. (#1881)
    • logback-classic to version 1.2.7. (#1883)
    • mockito-core to version 4.1.0. (#1888)
    • biz.aQute.bnd.builder to version 6.1.0. (#1890)
    • junit to version 5.8.2. (#1901)
    • junit-platform-launcher to version 1.8.2. (#1902)
    • com.diffplug.spotless to version 6.0.4. (#1924)
    • build-info-extractor-gradle to version 4.25.2. (#1925)
    • Apache Tomcat to version 9.0.56. (#1926)
    • netty-tcnative-boringssl-static to version 2.0.46.Final. (92eb0b1)

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

@SanderKleykens, @ShijunDeng

v1.0.13

09 Nov 14:52
Compare
Choose a tag to compare

Reactor Netty 1.0.13 is part of 2020.0.13 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.12, see release notes. (0933adb)
  • Depend on Netty v4.1.70.Final. (7cfb9cd)
    • Depend on Netty QUIC Codec v0.0.20.Final. (cd59ab8)
    • Depend on Netty io_uring v0.0.10.Final. (17d5f4e)
  • Add HttpServer#maxKeepAliveRequests for specifying maximum number of keep-alive requests. (#1865, #1867)

📖 Documentation, Tests and Build

  • Add NoMicrometer test set for reactor-netty-http module. (#1850)
  • Consider qualifyVersionGha only when reactor-netty module. (#1852)
  • Polish tests logging. (#1860)
  • Extend SNI test for QUIC. (bef40ba)
  • Update build/test dependencies versions:
    • awaitility to version 4.1.1. (#1864)
    • com.diffplug.spotless to version 5.17.1. (#1866)
    • build-info-extractor-gradle to version 4.24.21. (#1871)
    • netty-tcnative-boringssl-static to version 2.0.45.Final. (7cfb9cd)

v0.9.25.RELEASE

09 Nov 11:56
Compare
Choose a tag to compare

Reactor-Netty 0.9.25.RELEASE is part of Dysprosium-SR25 Release Train.

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

❗ This is the last planned release of Reactor Netty in the Dysprosium Release Train.

✨ New features and improvements

📖 Documentation, Tests and Build

  • Update netty-tcnative-boringssl-static to version 2.0.45.Final. (f302fc3)

v1.0.12

12 Oct 13:30
Compare
Choose a tag to compare

Reactor Netty 1.0.12 is part of 2020.0.12 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.11, see release notes. (a4ec7de)

  • Depend on Netty v4.1.69.Final. (5aa7c36)

  • 🎉 Add support for Netty QUIC Codec (#1463, #1796, #1830)
    More information about Netty QUIC Codec.
    Enablement of the Netty QUIC Codec support:
    Netty QUIC Codec provides artifacts for different OS. Check which one you need and use the corresponding dependency - https://github.com/netty/netty-incubator-codec-quic#how-to-include-the-dependency
    The new experimental Netty QUIC Codec is still in incubation because of that Reactor Netty's support is also marked as in incubation.
    The new module is published with the following coordinates:

    • groupId: io.projectreactor.netty.incubator
    • artifactId: reactor-netty-incubator-quic
    • version: 0.0.1

    See README.md for a simple example how this new module can be used.

  • Add API for configuring a custom HostsFileEntriesResolver. (#1822, #1831)

  • Support sending trailer headers on the server and receiving such on the client (#1837, #1841)

  • Support graceful shutdown for the ConnectionProvider. (#1842)

🐞 Bug fixes

  • When calculating the pool hash take into account LoggingHandler configuration. (#1809, #1816)
  • Fix SYNC fusion message draining. (#1817, #1821)
  • Remove id: from the logs when presenting the channel id. (#1826)
  • Revert "Obtain the pool owner just before the invalidate invocation (#1807)". (#1813, 2a61df4)
  • Revert "Ensure HTTP/2 pool owner is taken from the connection and not from the stream (#1799)". (#1813, ea43ac2)
  • ByteBufAllocatorMetrics/MicrometerPooledConnectionProviderMeterRegistrar register metrics only when Micrometer is in the classpath. (#1847, #1848)

📖 Documentation, Tests and Build

  • Emission stuck test case. (#1817)
  • Parameterise MonoSendManyTest in order to test flush on each. (12aa762)
  • [documentation] Add an example with ExtendedSocketOptions.TCP_KEEP* options for NIO transport. These socket options are available with Java 11. (#1823)
  • Update build/test dependencies versions:
    • me.champeau.gradle.japicmp to version 0.3.0. (#1810)
    • assertj-core to version 3.21.0. (#1812)
    • junit to version 5.8.1. (#1819)
    • junit-platform-launcher to version 1.8.1. (#1820)
    • jackson-databind to version 2.13.0. (#1832)
    • build-info-extractor-gradle to version 4.24.20. (#1834)
    • com.diffplug.spotless to version 5.16.0. (#1835)
    • Apache Tomcat to version 9.0.54. (#1836)
    • biz.aQute.bnd.builder to version 6.0.0. (#1839)
    • netty-tcnative-boringssl-static to version 2.0.44.Final. (f43e7c1)
    • mockito-core to version 4.0.0. (#1845)

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

@matyasberry

v0.9.24.RELEASE

12 Oct 11:02
Compare
Choose a tag to compare

Reactor-Netty 0.9.24.RELEASE is part of Dysprosium-SR24 Release Train.

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

✨ New features and improvements

📖 Documentation, Tests and Build

  • Update build/test dependencies versions:

v1.0.11

14 Sep 10:22
Compare
Choose a tag to compare

Reactor Netty 1.0.11 is part of 2020.0.11 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.10, see release notes. (c32da5f)
  • Depend on Netty v4.1.68.Final. (0d33eeb)
  • Add API HttpServerRequest#receiveForm(). When the request is POST and has Content-Type with value application/x-www-form-urlencoded or multipart/form-data, the API returns a Flux<HttpData> containing received form/multipart data. (#3, #1351, #1784)
  • Add API for removing HttpServer route. (#1669, #1676)

🪲 Bug fixes

  • MicrometerPooledConnectionProviderMeterRegistrar works directly with the pool. (#1790, #1797, #1806)
  • Use WARN log level for failed request decoding. (#1792, #1793)
  • Ensure HTTP/2 pool owner is taken from the connection and not from the stream. Obtain the pool owner just before the invalidate invocation. (#1799, #1807)

📖 Documentation, Tests and Build

  • Update build/test dependencies versions:
    • build-info-extractor-gradle to version 4.24.16. (#1778)
    • hoverfly-java-junit5 to version 0.14.1. (#1785)
    • mockito-core to version 3.12.4. (#1786)
    • jackson-databind to version 2.12.5. (#1788)
    • com.diffplug.spotless to version 5.15.0. (#1794)
    • netty-tcnative-boringssl-static to version 2.0.42.Final. (0d33eeb)
    • logback-classic to version 1.2.6. (#1798)
    • junit to version 5.8.0. (#1802)
    • Apache Tomcat to version 9.0.53. (#1803)
    • junit-platform-launcher to version 1.8.0. (#1804)
    • io.spring.nohttp to version 0.0.10. (#1805)

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

@ctlove0523

v0.9.23.RELEASE

14 Sep 09:47
Compare
Choose a tag to compare

Reactor-Netty 0.9.23.RELEASE is part of Dysprosium-SR23 Release Train.

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

✨ New features and improvements

📖 Documentation, Tests and Build

  • Update build/test dependencies versions:

v1.0.10

10 Aug 14:07
Compare
Choose a tag to compare

Reactor Netty 1.0.10 is part of 2020.0.10 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.9, see release notes. (5c64f7b)
  • Depend on Netty v4.1.66.Final. (bbed782)
  • Add support for Unix domain datagram sockets when using native epoll/kqueue transport. (#1714, #1741)

🪲 Bug fixes

  • Fix ClassCastException when cleaning the channel attributes. (#1738, #1739)
  • Add logging for exception while building default SSL provider. (#1736)
  • Fix UnresolvedAddressException when no system proxy settings. (#1765, #1768)
  • Fix NPE when reporting metrics to Micrometer. (#1766, #1769)

📖 Documentation, Tests and Build

  • Add test for configuring H2C max content length. (13d65cd)
  • Reference documentation:
    • BOM snippets use version from gradle.properties. (#1743, #1745)
    • Add documentation/snippets for Tcp|HttpServers with same configuration but different bind addresses. (#1760)
  • Update build/test dependencies versions:
    • build-info-extractor-gradle to version 4.24.14. (#1747)
    • slf4j to version 1.7.32. (#1749)
    • com.diffplug.spotless to version 5.14.2. (#1750)
    • logback-classic to version 1.2.5. (#1756)
    • Apache Tomcat to version 9.0.52. (#1767)

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

@dnagarajan89, @JamesChenX