Version 1.5.0-rc-1
Released on 2017-04-19.
These are the release notes for a Ratpack 1.5.0 release candidate. Please see the pending release notes for the final release for the complete list of closed issues.
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:
- Jackson 2.7.5 → 2.8.7
- Netty 4.1.4.Final → 4.1.9.Final
- Guava 19.0 → 21.0
- Caffeine 2.3.1 → 2.4.0
- Slf4j 1.7.21 → 1.7.28
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