ratpack

Lean & powerful HTTP apps

OTHER License

Stars
1.9K
Committers
155

Bot releases are hidden (Show)

ratpack -

Published by johnrengelman about 6 years ago

This release squashes a few bugs, updates some key libraries and most importantly brings compatibility with Gradle 4.2 and higher.

Please see the issue list below for details. This upgrade is recommended for everyone using 1.5.0.

ratpack -

Published by johnrengelman about 6 years ago

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

ratpack -

Published by johnrengelman about 6 years ago

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.

After an unfortunately long hiatus, we are back with 1.5.0-rc-3.

This RC fixes the following issues raised with 1.5.0-rc-2:

  • [1254] - HTTP client incorrectly follows 301 and 302 redirects with original verb
  • [1253] - Warning is always logged at debug about error draining request body
  • [1219] - NotInRegistryException thrown in ratpack.pac4j.internal.RatpackWebContext
  • [1230] - Provide configurable default connect timeout for http client
  • [1190] - Upgrade to Handlebars.java 4.0.x

Please try it out with your apps. The target date for 1.5.0 final is now Mon 28th of August.

ratpack -

Published by johnrengelman about 6 years ago

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.

This second release candidate of Ratpack 1.5 fixes #1202, which is a regression introduced in the first release candidate.

ratpack -

Published by johnrengelman about 6 years ago

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

ratpack -

Published by johnrengelman about 6 years ago

This patch release fixes a serious issue where Ratpack's HTTP client would not validate connections to HTTPS servers correctly (#1181). The certificate's domain name was not validated against the used connection address, meaning that any connection would be trusted as long as it had a trusted certificate.

This fix will not be backported to Ratpack 1.3.x or earlier. It is strongly recommended that all Ratpack users upgrade to 1.4.6.

Please see the release notes for 1.4.0 for changes since 1.3.x.

ratpack -

Published by johnrengelman about 6 years ago

This patch release fixes various issues (please see below for details).

It is strongly recommended that all 1.4.x users upgrade to 1.4.5.

Please see the release notes for 1.4.0 for changes since 1.3.x.

ratpack -

Published by johnrengelman about 6 years ago

This patch release fixes issues with direct memory leaks.

It is strongly recommended that all 1.4.x users upgrade to 1.4.4.

Please see the release notes for 1.4.0 for changes since 1.3.x.

ratpack -

Published by johnrengelman about 6 years ago

This patch release fixes issues with direct memory leaks in several error conditions, and an issue with incorrect decryption of client side session values.

It is strongly recommended that all 1.4.x users upgrade to 1.4.3.

Please see the release notes for 1.4.0 for changes since 1.3.x.

ratpack -

Published by johnrengelman about 6 years ago

This patch release fixes several issues with the HTTP client and Server Sent Events. Please see the issue list below for details.

It is strongly recommended that all 1.4.x users upgrade to 1.4.2.

Please see the release notes for 1.4.0 for changes since 1.3.x.

ratpack -

Published by johnrengelman about 6 years ago

This patch release fixes a critical bug with the Promised class, and several HTTP client connection pooling issues.

It is strongly recommended that all 1.4.0 users upgrade to 1.4.1.

Please see the release notes for 1.4.0 for changes since 1.3.x.

ratpack -

Published by johnrengelman about 6 years ago

Ratpack 1.4 is a very exciting release. There's lots of good stuff.

The following dependencies have been upgraded:

  • Jackson 2.6.2 → 2.7.5 (ratpack-core)
  • Netty 4.1.0.CR6 → 4.1.4.Final (ratpack-core)
  • Guava 18.0 → 19.0 (ratpack-core)
  • Caffeine 2.2.6 → 2.3.1 (ratpack-core)
  • Slf4j 1.7.12 → 1.7.21 (ratpack-core)
  • Guice 4.0 → 4.1.0 (ratpack-guice)
  • Pac4j 1.8.5 → 1.8.8 (ratpack-pac4j)

The following are new Promise methods:

The new SerialBatch and ParallelBatch
classes make it convenient to process batches of promises in different ways.

The new PathBinding.getDescription() method provides a description of how the different path binding handlers bound to the request path so far.
This provides strings like ":foo/:bar?/baz".
This is the same “language” that is used when specifying path binding handlers with methods such as Chain.prefix()
and Chain.path() etc.
This effectively provides a representation of the kind of the request, by using token names instead of values.

It is now possible to use plain objects as configuration sources, via the new ConfigDataBuilder.object() method.
It is also now possible to bind objects of a parameterized type to config, via the new ServerConfigBuilder.require() method variant.

Retrofit 2 integration is available with this release.
It provides declarative type-safe HTTP clients, built on top of Ratpack's HTTP capabilities.

The RxRatpack.fork() and RxRatpack.forkEach() methods
were added to allow more convenient parallel processing of RxJava observables.
This was contributed by Ted Naleid.

Last but not least, Ratpack's HTTP client now supports connection pooling.
This dramatically increases throughput when many requests are made to the same server.
To enable connection pooling, create a HttpClient via HttpClient.of() and specify a poolSize.
This feature was contributed by Dan Maas, Derek Olk and Patrick Schilling.

This release also contains many documentation improvements and bugfixes that came by way of contribution.
Thanks to everyone who submitted such enhancements.

If you missed it, “Learning Ratpack” has been published since the release of the 1.3.x line.
This is the best and most complete resource available for Ratpack today.
Just ask Craig Burke.

We hope you enjoy Ratpack 1.4.

--

Team Ratpack

ratpack -

Published by johnrengelman about 6 years ago

The third release candidate for 1.4.0 updgrades the Netty version from 4.1.3.Final to 4.1.4.Final. There are also minor improvements to connect and read timeout exceptions with the HTTP client.

Please consult the release notes of 1.4.0-rc-1 for changes since 1.3.

ratpack -

Published by johnrengelman about 6 years ago

The second release candidate fixes two discovered issues (details below).

Please consult the release notes of 1.4.0-rc-1 for changes since 1.3.

ratpack -

Published by johnrengelman about 6 years ago

Ratpack 1.4 is a very exciting release. There's lots of good stuff.

The following dependencies have been upgraded:

  • Jackson 2.6.2 → 2.7.5 (ratpack-core)
  • Netty 4.1.0.CR6 → 4.1.3.Final (ratpack-core)
  • Guava 18.0 → 19.0 (ratpack-core)
  • Caffeine 2.2.6 → 2.3.1 (ratpack-core)
  • Slf4j 1.7.12 → 1.7.21 (ratpack-core)
  • Guice 4.0 → 4.1.0 (ratpack-guice)
  • Pac4j 1.8.5 → 1.8.8 (ratpack-pac4j)

The following are new Promise methods:

The new SerialBatch and ParallelBatch
classes make it convenient to process batches of promises in different ways.

The new PathBinding.getDescription() method provides a description of how the different path binding handlers bound to the request path so far.
This provides strings like ":foo/:bar?/baz".
This is the same “language” that is used when specifying path binding handlers with methods such as Chain.prefix()
and Chain.path() etc.
This effectively provides a representation of the kind of the request, by using token names instead of values.

It is now possible to use plain objects as configuration sources, via the new ConfigDataBuilder.object() method.
It is also now possible to bind objects of a parameterized type to config, via the new ServerConfigBuilder.require() method variant.

Retrofit 2 integration is available with this release.
It provides declarative type-safe HTTP clients, built on top of Ratpack's HTTP capabilities.

The RxRatpack.fork() and RxRatpack.forkEach() methods
were added to allow more convenient parallel processing of RxJava observables.
This was contributed by Ted Naleid.

Last but not least, Ratpack's HTTP client now supports connection pooling.
This dramatically increases throughput when many requests are made to the same server.
To enable connection pooling, create a HttpClient via HttpClient.of() and specify a poolSize.
This feature was contributed by Dan Maas, Derek Olk and Patrick Schilling.

This release also contains many documentation improvements and bugfixes that came by way of contribution.
Thanks to everyone who submitted such enhancements.

If you missed it, “Learning Ratpack” has been published since the release of the 1.3.x line.
This is the best and most complete resource available for Ratpack today.
Just ask Craig Burke.

We hope you enjoy Ratpack 1.4.

--

Team Ratpack

ratpack -

Published by johnrengelman over 8 years ago

This patch release upgrades the Netty version used from 4.1.0.CR6 to 4.1.0.CR7. This fixes several critical issues.

It is strongly recommended that all users using earlier 1.3.x versions of Ratpack upgrade to 1.3.3.

Please see the release notes for 1.3.0 for the 1.2.0 → 1.3.0 change set.

ratpack -

Published by johnrengelman over 8 years ago

This patch release upgrades the Netty version used from 4.1.0.CR6 to 4.1.0.CR7. This Netty upgrade fixes several critical issues.

It is strongly recommended that all users using 1.3.x versions upgrade to 1.3.3.

Please see the release notes for 1.3.0 for the 1.2.0 → 1.3.0 change set.

ratpack -

Published by johnrengelman over 8 years ago

This patch release resolves issue #962, that prevented Ratpack 1.3.0 being used with Groovy's @Grab mechanism. This was due to the upgrade of Groovy from 2.4.4 to 2.4.6. Ratpack 1.3.1 rolls the version of Groovy back to 2.4.4.

If you are not using Ratpack with Groovy's @Grab mechanism, there is no compelling reason to upgrade from 1.3.0 to 1.3.1.

Please see the release notes for 1.3.0 for the 1.2.0 → 1.3.0 change set.

ratpack -

Published by johnrengelman over 8 years ago

Learning Ratpack”, the impending and definitive resource for those wanting to dig deeper into Ratpack, will be based on 1.3.

In addition to internal performance improvements and bug fixes, this release updates dependency versions and adds several new features.

The following dependencies have been updated:

  • Netty 4.1.0.CR6 (ratpack-core)
  • Groovy 2.4.6 (ratpack-groovy, ratpack-groovy-test)
  • RxJava 1.1.2 (ratpack-rx)
  • Hystrix 1.5.1 (ratpack-hystrix)

This release also adds a dependency on Caffeine 2.2.6, a high performance caching library.

The new include() method in the Groovy script DSL allows conveniently composing an application out of discrete scripts.

The new Promise.time() method allows recording how long it takes to produce a promised value, while the new Promise.close() method makes it more convenient dispose of a resource used to produce a promised value. The Promise.of() and Promise.ofLazy() methods have been deprecated in this release, replaced with Promise.async() and Promise.sync() respectively.

The ratpack.server.Service type has been deprecated in favor of the new ratpack.service.Service type. Additionally, it is now possible to accurately order dependent services via the new DependsOn and ServiceDependencies classes. Ratpack now starts and stops services in parallel, respecting dependencies.

This release also restores support for Gradle's continuous build, with Gradle 2.13 and on.

Breaking Changes

The default health check renderer now emits a 503 status code if any check was unhealthy.

The Promise.wiretap() method was fixed to also capture failure results.

The serialized session form has changed in this release. This may cause session reads to fail for cookies that were set with earlier Ratpack versions. Future versions of Ratpack will handle this situation more gracefully. Please see issue #945 for the status of this issue, and workarounds that can be applied in the meantime.

ratpack -

Published by johnrengelman over 8 years ago

This second release candidate fixes issue #959, which sporadically causes applications to fail to start due to faulty detection of dependency cycles between services.

Please see the release notes for Ratpack 1.3.0 for changes since version 1.2.0.