Version 0.9.9
Released on 2014-10-01.
September saw the first release of OpenJDK 8, which was promptly followed by Ratpack moving to Java 8 as minimum JDK version. We are intending to fully leverage everything that Java 8 has to offer. Unfortunately, this means that there are many breaking API changes in this release as we embrace functional interfaces and other new goodness available in Java 8. It's very likely that the next release on the 1st of November is going to be very disruptive as well. We hope you stick with us through this tumultuous time as we'll have a better Ratpack at the end of it. We've started to convert our embedded examples in the Manual and Javadoc to Java 8 syntax, but haven't yet completed this work.
Considerable work also went into Ratpack's support for reactive streaming in this release. We are happy to now be listed as one of the implementors of the emerging standard. A good practical use of reactive streams is for Ratpack's support for Server Sent Events, new in this release. A similar type of streaming is also available for websockets, with bi-directional streaming coming soon. Be sure to check out the SpringOne demo app from Jon Brisbin showing seamless integration between Ratpack and Reactor, made possible by the Reactive Streams standard.
We also enriched Ratpack promises by supporting promise “operations”. Due to this, it's now much easier to perform complex async ops, at the web and application layers. As always, the tests are a little more developed than the docs, so check out this test case for an idea of what this is about.
Another exciting development is the contribution of support for Spring based application with Ratpack, contributed by Lari Hotari. This is something we plan to expand on for the next release, including fully support using Ratpack as a HTTP front end to a Spring Boot based application.
Links
Pull Requests (10)
- [381] - Merge streamed-execution branch (rhart)
- [432] - Add tests for PredicateCacheability and fix issue with Predicates.alwaysTrue() (lhotari)
- [433] - add ratpack-spring-boot module (lhotari)
- [434] - fix bugs in InjectorBackedRegistry.first and .all methods (lhotari)
- [435] - extract Registry implementation from InjectorBackedRegistry and SpringBackedRegistry (lhotari)
- [437] - implement equals and hashCode for CachingBackedRegistry (lhotari)
- [438] - test Spring Boot and Ratpack integration (lhotari)
- [439] - Fix ratpack.spring.Spring javadoc's java example, upgrade to Spring Boot 1.1.6.RELEASE (lhotari)
- [445] - Change method names in Spring convenience class (dsyer)
- [451] - Update reactive-streams to 0.4.0 final (smaldini)
Resolved Issues (15)
- [295] - Support external config files separate from baseDir
- [344] - Add support for server-sent event streaming
- [346] - Stream Hystrix metrics using SSE
- [355] - General streaming/chunk response support
- [356] - Stream consumption by an execution
- [364] - Extend ratpack lazybones template to include subgenerators
- [371] - Add redirect support to HttpClient
- [390] - Remove default error templating from Groovy TemplatingModule and make reasonable default error handlers available when in development mode
- [409] - Broadcast metrics over websockets using streams
- [413] - Improve error handling infrastructure
- [422] - Better handling of Error exceptions
- [424] - Move from restassured to ratpack http client has broken example tests
- [431] - Update PublicAddress JavaDoc to discuss default behavior
- [440] - Allow only 1 attachment to a promise
- [444] - Move to Java 8 as the baseline