Version 1.5.0

Released on 2017-09-04.

A little over 6 months in the making, Ratpack 1.5.0 is now available. This release adds many new features and capabilities, squashes copious bugs and refines and optimizes many internals. Ratpack 1.5.0 is bigger, badder and faster.

The following core dependencies have been upgraded:

The new ratpack-jdbc-tx module adds support for Promise based JDBC transactions. It centers around the new ratpack.jdbctx.Transaction type.

The new ratpack-consul modules provides the ratpack.consul.RatpackConsulConfig factory for creating configuration sources backed by Consul. This is a convenient way to centralize configuration for your app and separate it from deployment.

The new Promise.mapIf and Promise.flatMapIf methods allowing supplying an “else” to a promise transform.

The new Promise.retry methods allowing retrying a failed promise with various strategies.

The new Promise.defer methods make it more convenient to delay yielding a promise.

The new Promise.cacheResultFor method (and friends) make it easier to have more sophisticated caching policies for async values.

The new Promise.close method makes it easier to perform async cleanup/disposal.

Various new utilities have been added to the Streams class such as fork(), take(), concat(), batch() and flatten(). These utilities enable more patterns for working with async data streams.

The new ByteBufStreams class provides utilities for dealing with streams of Netty ByteBuf.

The new Execution.sleep() methods provide a non blocking analog to Thread.sleep().

You can now specify an idle timeout for server connections. This affects active connections and inactive connections (i.e. keepalive). It can also be overridden on a per request basis, which is particularly useful when streaming a lot of data, or streaming eternally.

Ratpack's HTTP client now supports SSL connections leveraging SNI. No extra config is required.

The new ReadWriteAccess utility is an analog of the JDK's ReadWriteLock.

The new FileIo utility provides non blocking filesystem read/write access.

It is now possible to use Netty's SSL support via ServerConfigBuilder.ssl. Netty's SSL implementation is far more efficient in environments where OpenSSL is available. All users currently using SSL with Ratpack should migrate to using this new method.

If the client connecting to the server identified itself, you can now obtain its certificate via Request.getClientCertificate.

There are also many other new convenience methods, bug fixes and generally cool stuff added in this release. Thanks to all who contributed.

We hope you enjoy Ratpack 1.5.


Team Ratpack

Pull Requests (35)

Resolved Issues (50)