Version 0.9.10

Released on 2014-11-01.

Another month, another release.

This release saw the continued Java 8-ization that we started with the 0.9.9 release. This is about embracing the new JDK functional types where appropriate, redesigning APIs around interface default and static methods, optimising APIs for type inference and generally just leveraging the general Java 8 goodness. We are also incrementally updating all of the the code samples in the documentation to Java 8 syntax.

Some significant optimizations were made that reduce allocations for all apps, but particularly for apps with lots of handlers. The net result is less garbage created per request, increasing throughput under load.

Promises were beefed up in this release, with the addition of more promise operations to make async composition easier. We've documented all the transforms in this release and provided example usage snippets for most.

There were also great contributions from Rob Zienert (improved development time error page, handlebars integration fixes), Lari Hotari (SpringLoaded updates), Massimo Lusetti (HikariCP updates), John Engelman (RxJava to Promise conversions, unit test API improvements, response decoration API, Gradle plugin improvements) and Stephane Maldini (documentation improvements).

During this month we also finished our move to SnapCI for our test builds. SnapCI had the right mix of features for us, and was faster and more stable than any of other providers we've tried over the last year.

There's some very interesting stuff in the works. The HTTP client is continuing to be improved and we expect the API to be fully documented and explained in the next release. There is also some exciting work going on to improve our configuration story to make it easier to deal with externalised configuration. Some of this should land in the next release.

In recent days there’s been some movement on the Reactive Streams front. While the Promise is used for representing single value “streams”, Ratpack uses the Reactive Streams API for multi value streams. You can see this in action in our support for chunk streaming. The use of the Reactive Streams API allows integration with other implementors of the API. Ronald Kuhn, lead of the Akka project, recently posted an example showing a data stream collaboration between RxJava, Akka, Reactor Project and Ratpack. This is an exciting innovation in the reactive space on the JVM.

Thanks to everyone who contributed code, issues and forum posts for Ratpack 0.9.9. We hope you enjoy 0.9.10.


Team Ratpack

Pull Requests (14)

Resolved Issues (13)