Maintaining Play Framework 2.0.x with Select Backports from 2.1.x

tl;dr – Our fork of Play 2.0.x with select backports from 2.1.x is available here (pre-built packages here).

Overall, we’ve had a great experience at TIM Group (f/k/a youDevise) developing new applications for the financial world using the Play Framework in Scala. It has allowed us to rapidly iterate new products, without sacrificing virtues such as production-quality performance and test coverage, and allowed us to introduce new and robust approaches to asynchronous programming (Futures and Actors).

However, there has been one sore spot: there have been no official releases in the 2.0.x series since 2.0.4 on 1-Oct-2012.

As is often the case with new, exciting, open-source software, there are a lot of changes between 2.0.x and 2.1.x. In order to migrate a product, for example, one must switch Scala versions and port all JSON serialization to a new interface, among other changes.

We’re planning to make these changes to our apps and libraries over the coming months. In the meantime, we’ve begun to maintain a set of backports of features and fixes that we need:

  • Fix for #692 Jaxen / maven-cobertura-plugin dependency error
  • Fix for #470 Deadlock in DEV mode
  • Fix for #158 GZip all output, not only static files
  • Fix for #632 Stop plugins in reverse order that they were started
  • Make WS timeout configurable per request
  • Update FluentLenium dependency to 0.8.0

In case this set of backports is useful to others, our fork is available here, with pre-built binary packages on an orphan branch here.