Version 0.9.15
Released on 2015-03-31.
Finally… no more Netty snapshot dependencies. Netty 4.1b4 final was released during this cycle so there is no longer any need to add snapshot repositories to your build or any such nastiness. We apologise again for the inconvenience this caused.
Beyond this glorious news, there's some cool stuff in this release.
Ratpack's Promise
type has been simplified. What was previously 3 different types has been collapsed to just Promise
. This generally makes the API simpler to understand and easier to use as a return value in your API. New operations have also been added such as apply()
and mapError()
. The implementation of promises underwent some optimization and now creates fewer interim objects.
It's now possible to get hold of a global execution control that binds to the current execution on demand. This makes it potentially more convenient to perform async ops outside of the handler layer by removing the need to inject or pass in an exec control. We all know that global statics are problematic in many cases, a prominent one being testing. Ratpack's ExecControl
is not something you are going to mock or double at test time. Instead, you can use the ExecHarness
to unit test async code. The global execution control will work just fine with an exec harness.
The methods of the RxJava and Reactive Streams types are now installed as Groovy extension methods. This makes working with RxJava and Reactive Streams more convenient when using Groovy.
The methods of the RxJava integration has been revamped and simplified in this release.
Ratpack now compresses responses by default if the client requested compression. To suppress compression, you can call the response.noCompress()
before sending the response.
Along with steady general improvements to the docs, significant progress has been made on the documentation for the ratpack-config
module introduced some releases back.
The launching API has been greatly simplified in this release to use fewer types and generally be more friendly.
Glen Schrader contributed improvements to the Coda Hale Metrics integration.
Robert Zakrzewski contributed support for asynchronous health checks in core.
Jason Winnebeck contributed some documentation for Ratpack's WebSocket support.
We hope you enjoy this Ratpack release.
-- Team Ratpack
Links
Pull Requests (5)
- [585] - FileSystemChecksumServices API extension (zedar)
- [605] - metrics regex reporter filter (gschrader)
- [608] - Some documentation for WebSockets class (gillius)
- [613] - Add support for nonblocking health checks (zedar)
- [614] - Put encoder before aggregator in NettyRatpackServer pipeline. (vqvu)
Resolved Issues (13)
- [415] - Run health checks on a non request thread
- [525] - Upgrade to Netty 4.1.0-beta4
- [549] - Manual Docs; build.gradle file cite should have netty-handler:4.1.0.Beta4-SNAPSHOT repository.
- [551] - Add support for Slfj MDC support
- [587] - More ratpack-config documentation
- [592] - Add API for custom promise operations that chain
- [593] - Add API for converting promises to other types (e.g. Observable) in a fluent way
- [595] - Groovy Extensions for RxJava and Reactive Streams
- [598] - Gradle plugin portal not updated
- [599] - Collapse SuccessPromise, Promise, PromiseOperations into just Promise
- [600] - Filtering metrics
- [609] - Dependency on SNAPSHOT versions of io.netty stuff fails
- [611] - Exception when loading from FileSystemBinding with non-writeable containing directory