Skip to content

v0.9.0.RELEASE

Compare
Choose a tag to compare
@violetagg violetagg released this 25 Sep 16:42

Reactor Netty 0.9.0.RELEASE is part of Dysprosium-RELEASE Release Train.

See also release notes from 0.8.6, 0.8.7, 0.8.8, 0.8.9, 0.8.10, 0.8.11 and 0.8.12 for changes that were inherited from the 0.8.x maintenance release.

🚀 We worked hard to optimize data sending from both client and server side. In HTTP scenarios, we observed up to 40% response time improvement. As a bonus, we have been able to backport this work in 0.8 latest patches as well.

✨ New features and improvements

  • Depending on Reactor Core v3.3.0.RELEASE, see release notes (e3ef68c)
    • Update Reactive Streams version to 1.0.3 (ab56fab)
    • Adapt to Mono.using changes (#835)
  • Depending on Netty v.4.1.39.Final (46974c0)
  • 🌟 Metrics
    • TCP/HTTP Metrics (#157, #721, #790, e7f9378, f202f7a)
    • UDP metrics (#830, #831)
    • Connection pool metrics (#797, #832)
    • ByteBufAllocator metrics (#797, #854)
    • AddressResolver metrics (#797, #856)
    • Add maximum allowable URI tags for HttpServer/HttpClient metrics (#794, #857)
    • Add TCP/UDP client/server #metrics(boolean, ChannelMetricsRecorder) (#798, #859)
    • Add HttpServer#metrics(boolean, HttpServerMetricsRecorder) (#798, #859)
    • Add HttpClient#metrics(boolean, HttpClientMetricsRecorder) (#798, #859)
  • 🌟 Connection Pool
    • Switch from Netty Connection Pool to Reactor Pool (#717, #723)
    • Shade Reactor Pool (#723)
    • ⚠️ Switch to fixed connection pool by default for TCP/HTTP client (#578, #796, #812)
    • API for configuring pooled connection idle time (#612, #792)
    • Adapt to the new Reactor Pool API for min/max connections (173e08a)
    • Enable ColocatedEventLoopGroup for the client (#806)
    • Parallelise pool disposing (65dc586)
    • Remove pool subscribeOn use since we now use asynchronous close (#846)
  • 🌟 Add BlockHound integration (a984c19, a5da0df, 8513dea, 675d8aa, 43fc5bb)
  • Add NettyOutbound.send/sendObject API with a predicate for enforcing flush operation (#769, 7f9e328, 0325828)
  • Add WebsocketInbound#receiveCloseStatus for receiving the close status information (#533, #815)
  • Declare an Java9 JPMS Automatic-Module-Name for Reactor Netty (#731)
  • Extend EventLoop from Netty's FastThreadLocalThread (#745)
  • Use publisherOrScalarMap in ByteBufFlux (97df685)
  • MonoSendMany: Resolve context once on cleanup (9c5baf4)
  • Do not create aggregated ByteBuf when the publisher is empty or the first element is empty (#574)
  • Remove the usage of the deprecated Http2MultiplexCodecBuilder (#822)
  • Use single-quotes char in lastIndexOf (#852)
  • Removal of deprecations
    • Remove the deprecated wiretap() in favour wiretap(boolean) (#480, 55c4804)
    • Remove the deprecated TcpClient(Server)#secure(SslContext) (#481, a49beda)
    • Remove the deprecated HttpClient#chunkedTransfer (#553, #620, 34e644c)
    • Remove the deprecated FutureMono.deferFutureWithContext/disposableWriteAndFlush methods (15a4933)
    • Remove the deprecated NettyPipeline.SendOptions (#766, #767, 3e0acd9)
    • Remove the deprecated HttpServer#proxyProtocol(boolean) (d98e8bb)

📖 Documentation, Tests and Build

  • 🌟 Reference documentation and examples. (#155, #627, #635, #642)
  • Specify fire-and-forget #dispose() behaviour for LoopResources, ConnectionProvider (#850, #851)
  • Specify fire-and-forget #disposeLoopsAndConnections() behaviour for TcpResources, HttpResources (#850, #851)
  • Specify fire-and-forget #shutdown() behaviour for UdpResources (#850, #851)
  • Documentation fix for error: neither SslContextBuilder nor SslContext is specified (#787)
  • If a handler is added with Connection.addHandler*, events prior channel active state are not available (#783, 6a98e38)

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

@Buzzardo @Liyixin95 @IsmailMarmoush @OlegDokuka