Releases: reactor/reactor-netty
v1.1.0-M2
Reactor Netty
1.1.0-M2
is part of 2022.0.0-M2
Release Train.
Reactor Netty
1.1.0-M2
inherits all changes from the 1.0.x
maintenance branch at the point this release was cut.
What's Changed
✨ New features and improvements
- Depend on
Reactor Core
v3.5.0-M2
by @simonbasle in 3e4b2cf, see release notes. - Integration with the
Micrometer
1.10.x
andMicrometer Tracing
1.0.x
- Depend on
Micrometer
version1.10.0-M1
by @violetagg in #2158 - Depend on
Micrometer Tracing
version1.0.0-M4
by @violetagg in #2158 - Depend on
Micrometer Docs Generator
version1.0.0-M3
by @violetagg in #2158 - Depend on
Micrometer Context Propagation
version1.0.0-M2
by @violetagg in #2158 - Move to the new
micrometer-observation
module by @violetagg in #2118 - Adapt to the new module with commons exposed by
Micrometer
by @violetagg in #2128
- Depend on
📖 Documentation, Tests and Build
- Documentation
- javadoc generation: add missing dependency by @violetagg in #2138
- Tests
- Run the test with a dedicated
MeterRegistry
by @violetagg in #2133 - Handle use cases when
Reactor Netty
version is milestone or release candidate by @violetagg in #2134 - Fix failing test in
Windows OS
by @violetagg in #2137
- Run the test with a dedicated
Full Changelog: v1.1.0-M1...v1.1.0-M2
v1.0.18
Reactor Netty
1.0.18
is part of 2020.0.18
Release Train.
This is a recommended update for all Reactor Netty 1.0.x
users.
What's Changed
✨ New features and improvements
- Depend on
Reactor Core
v3.4.17
by @simonbasle in a2ccfd8, see release notes.- Remove the usage of the deprecated
currentContext()
in MonoSink by @violetagg in #2112
- Remove the usage of the deprecated
🐞 Bug fixes
- Avoid
NoSuchElementException
when an acquiring connection is closing by @pderop in #2110 - Ensure channel promises support listeners when
SOCKS
proxy handler is used by @pderop in #2120 - Do not return the connection to the pool in case
SSLEngine
has been closed by @violetagg in #2140 - Ensure
4xx
responses are reported byHttpServer
metrics by @violetagg in #2149
📖 Documentation, Tests and Build
- Documentation
- Javadoc improvement by @violetagg in #2142
- Tests
- Various test improvements by @violetagg and @pderop in #2104, #2119, #2136
- Remove
maxGranularity
in order to see parameterized tests failures by @violetagg in #2127
- Build
- Upgrade to
Gradle
v7.4.2
by @violetagg in #2135
- Upgrade to
🆙 Dependency Upgrades
- Bump
build-info-extractor-gradle
to version4.28.1
by @dependabot in #2122 - Bump
jackson-databind
to version2.13.2.2
by @dependabot in #2125 - Bump
jacoco tool
to version0.8.7
by @violetagg in #2126 - Bump
de.undercouch.download
to version5.0.4
by @dependabot in #2132 - Bump
tomcat-embed-core
to version9.0.62
by @dependabot in #2139 - Bump
braveVersion
to version5.13.8
by @dependabot in #2141 - Bump
com.diffplug.spotless
to version6.4.2
by @dependabot in #2144
Full Changelog: v1.0.17...v1.0.18
v1.1.0-M1
Reactor Netty
1.1.0-M1
is part of 2022.0.0-M1
Release Train.
Reactor Netty
1.1.0-M1
inherits all changes from the 1.0.x
maintenance branch at the point this release was cut.
What's Changed
✨ New features and improvements
- Depend on
Reactor Core
v3.5.0-M1
by @simonbasle in 04ba78c, see release notes. - Integration with the
Micrometer
2.0.x
andMicrometer Tracing
1.0.x
- Depend on
Micrometer
version2.0.0-M3
by @violetagg in #2103 - Depend on
Micrometer Tracing
version1.0.0-M3
by @violetagg in #2103 - Depend on
Micrometer Docs Generator
version1.0.0-M2
by @violetagg in #2103 - Depend on
Micrometer Context Propagation
version1.0.0-M1
by @violetagg in #2051 - Use
MeterRegistryAssert
for checkingTimers
existence by @violetagg in #2040 - Integrate with
Micrometer Docs Generator
by @violetagg in #2041 - Update
reactor-netty-core
timers to use the newObservation API
by @violetagg in #2043 - Update
reactor-netty-http
timers to use the newObservation API
by @violetagg in #2045 - Add context propagation from caller thread/reactor context by @violetagg in #2051
- Do not override the contextual name for
HttpClientContext
/HttpServerContext
by @violetagg in #2053 - Reduce memory overhead when creating
Micrometer
timers by @pderop in #2057
- Depend on
📖 Documentation, Tests and Build
- Ensure the
Pool
implementation for the test class implements the new abstract methodconfig()
by @violetagg in #2098
Full Changelog: v1.0.17...v1.1.0-M1
v1.0.17
Reactor Netty
1.0.17
is part of 2020.0.17
Release Train.
This is a recommended update for all Reactor Netty 1.0.x
users.
What's Changed
⚠️ Update considerations and deprecations
- Deprecate
Connection#addHandler(...)
by @violetagg in #2071
✨ New features and improvements
- Depend on
Reactor Core
v3.4.16
by @simonbasle in 6b88e96, see release notes. - Depend on
Netty
v4.1.75.Final
by @violetagg in #2097- Depend on
Netty QUIC Codec
v0.0.26.Final
by @violetagg in #2054 - Depend on
netty-incubator-transport-native-io_uring
v0.0.13.Final
by @violetagg in #2099
- Depend on
- Create the
Tags
once as they are the same for everyGauge
by @violetagg in #2048 - Enable
HttpClient
/HttpServer
metrics when protocol isH2
/H2C
by @violetagg in #2066 - Optimise
Http2Pool
by reducing calls toCLDQ
size method by @pderop in #2090
🐞 Bug fixes
- Ensure the provided event loop is not null by @violetagg in #2047
- Ensure server connections metrics are not reported for the client by @violetagg in #2063
- When request decoding fails on
HttpContent
different thanHttpRequest
, obtain the request from the channel attributes by @violetagg in #2077 - Wrong metric value for
TLS
handshake time by @pderop in #2078 - Prevent
NPE
when addingIdleTimeoutHandler
by @raycoarana in #2084 - Ensure all cases, when
Http2FrameCodec
is not available, are handled properly by @violetagg in #2093
📖 Documentation, Tests and Build
- Documentation:
- Add javadoc for the method param
isDomainSocket
inTransportConnector#bind(...)
by @violetagg in #2050 - Provide more clarity of
maxConnections
usage by @PyAntony in #2059 - Extend the example for disabling the connection pool by @violetagg in #2082
- Add javadoc for the method param
- Tests:
- Refactor the test in order to be able to test
H2
/H2C
variations by @violetagg in #2064 - Switch to
ChannelHandlerAdapter
by @violetagg in #2076
- Refactor the test in order to be able to test
- Build:
- Adapt the workflows to run against
1.0.x
branch by @violetagg in #2035 - Improve readability of preliminary how-to-fix hint in CI by @simonbasle in #2049
- Upgrade to
Gradle
v7.4.1
by @violetagg in #2092
- Adapt the workflows to run against
🆙 Dependency Upgrades
- Bump
com.diffplug.spotless
from6.2.2
to6.3.0
by @dependabot in #2033 - Bump
biz.aQute.bnd.builder
from6.1.0
to6.2.0
by @dependabot in #2060 - Bump
jackson-databind
from2.13.1
to2.13.2
by @dependabot in #2073 - Bump
logback-classic
from1.2.10
to1.2.11
by @dependabot in #2074 - Bump
awaitility
from4.1.1
to4.2.0
by @dependabot in #2075 - Bump
de.undercouch.download
from5.0.1
to5.0.2
by @dependabot in #2079 - Bump
japicmp
from0.3.1
to0.4.0
by @violetagg in #2085 - Bump
mockito-core
from4.3.1
to4.4.0
by @dependabot in #2087 - Bump
netty-tcnative-boringssl-static
fromv2.0.50.Final
tov2.0.51.Final
by @violetagg in #2100 - Bump
tomcat-embed-core
from9.0.59
to9.0.60
by @dependabot in #2102
Full Changelog: v1.0.16...v1.0.17
v1.0.16
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
- Depend on
Reactor Core
v3.4.15
by @simonbasle in 7cb0b4e, see release notes. - Depend on
Netty
v4.1.74.Final
by @violetagg in #2025- Depend on
netty-incubator-transport-native-io_uring
v0.0.12.Final
by @dependabot in #2003
- Depend on
- Add new metrics for monitoring actual bytes consumed by in-use buffers by @pderop in #1917
- Add support for basic auth to
ProxyProvider
created from system properties by @sebphil in #1989 - Replace
MeterKey
byObject
key by @pderop in #2016
🐞 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 toContextAwareHttpServerMetricsRecorder
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 newConnectionProvider
afterHttpResources#reset
by @violetagg in #2020 - Propagate the client thread in the connection pool subscription context by @pderop in #2029
📖 Documentation, Tests and Build
- [doc] Extended
TCP
keep-alive settings (NIO
transport) are only available onMac
/Linux
notWindows
by @ryanrupp in #1981 - Add link to the contributing guide by @violetagg in #1993
- [build] Hardening of
GitHub
actions by @violetagg in #1996 - Release notes configuration by @violetagg in #1997
- [doc] Separate connection pool documentation by @violetagg in #1999
- Remove
japicmp
exclusions by @violetagg in #2005 - [doc] Add info for
TCP
keep-alive conf on various loadbalancers that may cause connection closed by @violetagg in #2007 - Run
spotless
/japicmp
as a preliminary job in ci by @simonbasle in #2023
🆙 Dependency Upgrades
- Bump
tomcat-embed-core
from9.0.56
to9.0.58
by @dependabot in #1991 - Bump
mockito-core
from4.3.0
to4.3.1
by @dependabot in #2001 - Update to
netty-tcnative-boringssl-static
v2.0.48.Final
by @violetagg in #2008 - Bump
de.undercouch.download
from4.1.2
to5.0.1
by @dependabot in #2011 - Bump
slf4jVersion
from1.7.35
to1.7.36
by @dependabot in #2026 - Bump
com.diffplug.spotless
from6.2.1
to6.2.2
by @dependabot in #2027 - Bump
build-info-extractor-gradle
from4.27.0
to4.27.1
by @dependabot in #2032
New Contributors
- @ryanrupp made their first contribution in #1981
- @sebphil made their first contribution in #1989
- @raycoarana made their first contribution in #1994
Full Changelog: v1.0.15...v1.0.16
v1.0.15
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 requestsreactor.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 insidecomputeIfAbsent
. (#1930) - Ensure
HttpConnectionProvider
exposes correctmaxConnections
/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
totemurin
as used java distribution for the build. (#1949) - Update build/test dependencies versions:
mockito-core
to version4.2.0
. (#1938)jackson-databind
to version2.13.1
. (#1946)gradle
to version7.3.3
. (92a5786)logback-classic
to version1.2.10
. (#1958)com.github.johnrengelman.shadow
to version7.1.2
. (#1961)brave
to version5.13.7
. (#1964)assertj-core
to version3.22.0
. (#1965)com.diffplug.spotless
to version6.1.2
. (#1970)build-info-extractor-gradle
to version4.26.1
. (#1971)
👍 Thanks to the following contributors that also participated to this release
v1.0.14
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) - Switch from
PlatformDependent#newConcurrentHashMap
toConcurrentHashMap
. (#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 inProxyProvider
. (#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
toPooledConnectionProvider
. (#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 toorg.bouncycastle:bcpkix-jdk15on
. (#1880, #1911) - Update
actions/setup-java
to version 2. (2c36882, 0d54705) - Update build/test dependencies versions:
com.github.johnrengelman.shadow
to version7.1.0
. (#1838)errorprone
gradle plugin to version2.0.2
. (#1881)logback-classic
to version1.2.7
. (#1883)mockito-core
to version4.1.0
. (#1888)biz.aQute.bnd.builder
to version6.1.0
. (#1890)junit
to version5.8.2
. (#1901)junit-platform-launcher
to version1.8.2
. (#1902)com.diffplug.spotless
to version6.0.4
. (#1924)build-info-extractor-gradle
to version4.25.2
. (#1925)Apache Tomcat
to version9.0.56
. (#1926)netty-tcnative-boringssl-static
to version2.0.46.Final
. (92eb0b1)
👍 Thanks to the following contributors that also participated to this release
v1.0.13
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) - Add
HttpServer#maxKeepAliveRequests
for specifying maximum number of keep-alive requests. (#1865, #1867)
📖 Documentation, Tests and Build
v0.9.25.RELEASE
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
- Depend on
Reactor Core
v3.3.22.RELEASE
, see release notes. (64e3397) - Depend on
Netty
v4.1.70.Final
. (f302fc3)
📖 Documentation, Tests and Build
- Update
netty-tcnative-boringssl-static
to version2.0.45.Final
. (f302fc3)
v1.0.12
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 theNetty 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 experimentalNetty 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 forNIO
transport. These socket options are available with Java 11. (#1823) - Update build/test dependencies versions:
me.champeau.gradle.japicmp
to version0.3.0
. (#1810)assertj-core
to version3.21.0
. (#1812)junit
to version5.8.1
. (#1819)junit-platform-launcher
to version1.8.1
. (#1820)jackson-databind
to version2.13.0
. (#1832)build-info-extractor-gradle
to version4.24.20
. (#1834)com.diffplug.spotless
to version5.16.0
. (#1835)Apache Tomcat
to version9.0.54
. (#1836)biz.aQute.bnd.builder
to version6.0.0
. (#1839)netty-tcnative-boringssl-static
to version2.0.44.Final
. (f43e7c1)mockito-core
to version4.0.0
. (#1845)