Skip to content

Releases: reactor/reactor-netty

v0.7.5.RELEASE

28 Feb 09:05
Compare
Choose a tag to compare

This is the 6th release of Reactor Netty 0.7, part of Bismuth-SR7 Release Train.

This is a recommended update for all Reactor Netty users.

✨ New features and improvements

  • Depending on Reactor Core v3.1.5.RELEASE see release notes (90390d7)
  • Depending on Netty v4.1.22 (cc44e71)
  • Support expect 100-continue (#293, #295)
  • HttpServerBuilder now exposes a compression(BiPredicate<Req,Res>).
    The predicate is evaluated before committing response header/status.
    If the predicate is true, compression is enabled for the given response.
    The minimum compression threshold now uses content-length predicate. (#218, #292, #298, #299)

🪲 Bug fixes

  • Set the channel closeFuture to release to the pool only once and if a Channel was successfully acquired (#289, #290)
  • Fix Context transferring for implicitly connected streams (#288)
  • Polish when to mark an HTTP connection persistent (85e5614)
  • Refinements related to http request/response lifecycle (95b22e0)
  • Optimize scalar map transformations and polish PublisherContext (4960c0f)

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

@OlegDokuka

v0.7.4.RELEASE

16 Feb 17:34
Compare
Choose a tag to compare

This is the 5th release of Reactor Netty 0.7, part of Bismuth-SR6 Release Train.

This is a recommended update for all Reactor Netty users.

✨ New features and improvements

🪲 Bug fixes

  • Fixed IllegalArgumentException: Channel [...] was not acquired from this ChannelPool (#266, #280)
  • On channelInactive event, do not fire error when the inbound has been already cancelled/disposed (#267, #281)
  • Ensure server will send a response in case websocket upgrade failure (#268, #269)
  • On inbound cancelled event do not close the connection if the inbound's been disposed (d8e9ca1)
  • When HttpClient receives AbortedException/IOException, it will retry once
    and then will return the exception so that the user can decide how many
    retries to do and with what delay (#257, #270, #272)
  • Enable hostname verification in client SSL config (#222, #275)
  • Extended key for the connection pool cache (#276)
  • Resolve the relative location when redirecting (#278, #279)
  • Connection close should always be bridged to pool release (#285, #286)
  • Fix a possible reference count leak for empty WS client upgrade body (101) (b6adfec, 9dfc8e4)
  • Ensure ChannelPromise objects are updated when filtering the messages (#282, #287)

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

@bclozel, @hananaharonof

v0.7.3.RELEASE

26 Jan 20:06
Compare
Choose a tag to compare

This is the 4th release of Reactor Netty 0.7, part of Bismuth-SR5 Release Train.

This is a recommended update for all Reactor Netty users.

✨ New features and improvements

  • Depending on Reactor Core v3.1.3.RELEASE see release notes (b37a31b)
  • Depending on Netty v4.1.20 (877d852)
  • Depending on Reactive Streams 1.0.2 (7249011)
  • Add support for KQueue (#212)
  • Expose Netty HttpServerCodec options in HttpServer (#150)

🪲 Bug fixes

  • Emit error signal when the connection is closed prematurely (#224)
  • Remove the special handling of status code 205 (#216)
  • When the writing Publisher completes with an error, ensure the error signal is propagated to the subscriber. (#231)
  • Fixed a race issue in HttpServerOperations#onOutboundComplete (17ada56)
  • On outbound error HttpServer will not send EmptyLastContent, but will close the connection (#239)
  • Ensure HttpClient will emit an error when connection is closed from the server side (#237)
  • Ensure write chunks are always in a correct order (#232)
  • Ensure code 301 can be controlled by HttpClientRequest#followRedirect (#253)
  • HttpServer outbound complete refinements (#264, #248)
    • Try detecting outbound complete with autoRead only if non keep alive
    • Leave HttpServerOperations#onOutboundComplete to take precedence for the terminal event
    • Clear ChannelOperations before writing the response
    • Try deferring for all flow the state cleaning inside handler
    • Fix HttpServerHandler#shouldKeepAlive

v0.7.2.RELEASE

16 Nov 19:28
Compare
Choose a tag to compare

This is the third release of Reactor Netty 0.7, part of Bismuth-SR4 Release Train.

This is a recommended update for all Reactor Netty users.

✨ New features and improvements

  • Depending on Reactor Core v3.1.2.RELEASE see release notes (3b6fa6a)
  • Depending on Netty v4.1.17 (73b7945)
  • Introduce flush on each with event loop option (#203)

🪲 Bug fixes

  • Omit filling stack trace for RedirectClientException (#193)
  • Fix possible ByteBuf leaks (f7a2df4)
  • Create default UDP LoopResource on demand (#192)
  • Tweak FluxReceive and reduce preemptive read on server (#194)
  • Correct exception message in case selector threads number is not positive (#200)
  • Prefer ReferenceCountUtil#release instead of ReferenceCountUtil#safeRelease (#201)
  • Improve OSGI Import-Package (#209)
  • Improvements in a flush implementation (#206, #207, 8c19d46)
  • Handle DatagramChannel in NettyContext#address (#210)
  • Premature response commit drops last request http packet (#213)
  • ByteBufFlux#fromPath: Release the buffer only on completion or on error (#215)

📖 Documentation, Tests and Build

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

@akiraly, @lhotari, @janvdbergh

v0.7.1.RELEASE

23 Oct 11:11
Compare
Choose a tag to compare

This is the second release of Reactor-Netty 0.7, part of Bismuth-SR3 Release Train.

This is a recommended update for all Reactor Netty users.

✨ New features and improvements

  • Use HttpClientCodec/HttpServerCodec (cce4d57)
  • Increase the default timeout, introduce a new method with timeout (#179)
  • Separate UdpClient/UdpServer (#137)

🪲 Bug fixes

  • Fixed a memory leak with keep-alive connections (#176, 21fd7a9)
  • Prevent unwanted reverse DNS lookup calls (1bf036a)
  • Leave connection gracefully finishes on http 40x, 50x, 301/302 (9eb3a10)
  • Fix possible ByteBuf leaks (f1d8576)
  • Release buffers at fromPath level (6269251, f34df23)
  • Drop out of sequence http client frames when server close (#186)
  • Remove the special handling of status codes 204/304 (116466f)
  • Do not replace the HttpServerCodec (ea736c5)
  • Do not set content length when HEAD request (#171)

📖 Documentation, Tests and Build

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

@lhotari

v0.6.6.RELEASE

16 Oct 21:13
Compare
Choose a tag to compare

This is the 6th release of Reactor Netty 0.6.

This is a maintenance update for all 0.6 Reactor Netty users. This release rollback netty version used to 4.1.13.Final until netty/netty#7309 unbounded SSL issue is fixed.

✨ New features and improvements

  • Expose NettyOutbound#sendFileChunked API and fallback to this operator when sendFile is used with ssl enabled (backport from 0.7).
  • emit error on premature http close (#138)
  • lazily create loop/pool resources if there's no custom ones set by user

🪲 Bug fixes

  • Fully consume http server or client error (50x, 40x) or redirect (301 and 302)
  • Close channel on cancel
  • Check http response keepAlive status for releasing
  • Close before release to pool
  • Safe ByteBuf release in fromPath

v0.7.0.RELEASE

27 Sep 08:16
Compare
Choose a tag to compare

This is the first release of Reactor Netty 0.7, part of Bismuth-RELEASE Release Train.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

⚠️ Update considerations and deprecations

  • Depending on Reactor Core v3.1.0.RELEASE (see release notes for API changes)
  • Depending on Netty v4.1.15

✨ New features and improvements

  • Options and configuration have been reworked
    • TCP/HTTP Client and Server expose a copy of the options for information purposes (#66)
    • The proxy can be configured to let some hosts bypass it (#125)
    • Add NettyContext config callback, rework Channel config options (#80)
    • Introduce a step builder for ClientProxyOptions (#139)
    • Expose API for configuring SslHandler's closeNotifyFlushTimeoutMillis and closeNotifyReadTimeoutMillis (b463fc1)
    • Use the Builder pattern to configure Client/Server and their Options (#120)
  • Shutdown and cleanup improvements
    • Global TcpResources can now be shutdown (#24)
    • One can now listen for completion of the LoopResource/PoolResources disposal (#25)
  • There is now a simple blocking alternative API for client/server that simply need to run from a main (#61, #144, #161)
  • Default configuration changes
    • The HttpServer now listens on port 8080 by default (#145)
    • The default connection pool is switched to elastic by default (e97084d)
    • Do not specify SO_LINGER timeout, JVM default will be used (59beb9d)
  • Allow to send files through SSL, expose chunked alternative (#102)

🪲 Bug fixes

  • Take HttpServerOptions#compression(int) threshold into account (#106)
  • Make HttpClient SSL work on relative GET (#109)
  • Update pendingResponses in the event for termination (#89)
  • Propagate clientError/serverError configurations when HttpClientRequest#sendWebsocket is used (#113)
  • Correctly use base hostname in HttpClientOptions even if proxy is configured (#126)
  • Ensure accept gzip is applied when there is no handler provided (#131)
  • Resolve the proxy host and port (#140)
  • Make sendFile work with ZipFileSystem, use FileChannel (#146)
  • Correct handling of pending writes while in parallel completing to send the outbound data. (#134)
  • Dispose ContextHandler when receive callback signal for cancel (#119)
  • Emit error signal when the connection is closed prematurely (#138)
  • Close before release to avoid acquiring closed connection (723718a)
  • Don't send chunked transfer for DELETE requests (d44250c)
  • Create LoopResources/PoolResources only in case the user does not specify their own (336a4c1)
  • Minor polishes and fixed starving client by http server (cc13744)
  • Response codes 204/205/304 should specify content-length:0 (1f80ca0)

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

@nebhale, @bclozel

v0.6.5.RELEASE

29 Aug 17:57
Compare
Choose a tag to compare

This is the 5th release of Reactor Netty 0.6.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

✨ New features and improvements

  • Expose API for configuring SslHandler's closeNotifyFlushTimeoutMillis and closeNotifyReadTimeoutMillis. (b463fc1)
  • Netty is updated to version 4.1.15.Final (cee1eb0)

🪲 Bug fixes

  • Propagate clientError/serverError configurations when HttpClientRequest#sendWebsocket is used. (#113)
  • Correct handling of pending writes while in parallel completing to send the outbound data. (#134)

v0.6.4.RELEASE

06 Jun 22:37
Compare
Choose a tag to compare

This is the 4th release of Reactor Netty 0.6.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

v0.6.3.RELEASE

06 Jun 22:35
Compare
Choose a tag to compare

This is the 3rd release of Reactor Netty 0.6.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

⚠️ Update considerations

  • Cancelling/disposing an HttpClientResponse will now close prematurely the connection since there is no deterministic way to release it if it was persistent (default). See #57.
  • Immediate failure to write onto a newly acquired persistent connection by HttpClient will result in automatic close/re-acquire.
  • Reactor Netty does now depend on the exploded netty dependencies instead of netty-all for better transitive control, see #28.

✨ New features and improvements

  • HttpClient now closes on cancel/dispose #57
  • HttpClient will now present a 'user-agent' by default (#55)
  • HttpClient auto-retries immediately stale connection (96daef2)
  • Safely release bytebuf when exceptions are raised up to ChannelOperationHandler (#51)

🪲 Bug fixes

  • WebsocketInbound#aggregateFrames() is now properly working (#52)
  • Decorate binary message with websocket frames #54
  • Proxy resolution now lazily resolve unresolved address #53

👍 Thanks @nebhale @rstoyanchev for the reactive feedbacks