Play 2.7.1 released!

The Play Team is pleased to announce the release of Play Framework 2.7.1. This is the latest stable release of Play.

What is Play Framework?

Play is a high-productivity Java and Scala web application framework that integrates the components and APIs you need for modern web application development.

Play is based on a lightweight, stateless, web-friendly architecture and features predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications thanks to its reactive model, based on Akka Streams.

Getting Play

  1. To start a new project, visit https://www.playframework.com/download.
  2. To upgrade an existing Play 2.7 project, edit your project/plugins.sbt file and set the sbt-plugin to 2.7.1.
  3. To update an older Play project, take a look at the Play 2.7 Migration Guide.

Changelog

Play 2.7.1 brings several bug fixes and improvements. Notable changes:

Dependencies updated to newest patch versions. Play 2.7.1 uses Akka 2.5.22, Akka HTTP 10.1.8, HikariCP 3.3.1, Play JSON 2.7.2 and Play-WS 2.0.3.

Regarding Play-WS 2.0.3, 2.0 series brings an updated version of Async-Http-Client which has an internal cookie store that is global and can affect your application if you are sending user sensitive cookies in requests to third-party services. For example, since the cookie store is global, the application can mix cookies for a user with cookies for another one when making requests to the same host. There is now a new configuration that you can use to enable or disable the cache:

# Enables global cache cookie store
play.ws.ahc.useCookieStore = true

By default, the cache is disabled. This affects other places such as following redirects automatically. Previously, the cookies for the first request were sent in the subsequent request, which is not the case when the cache is disabled. There is currently no way to configure the cache per request.

Play-JSON also has a breaking change. It was depending scala-collection-compat, but this library does not guarantees binary compatibility at this point, so we removed the dependency and copy some relevant code inside Play-JSON instead. If your application is using scala-collection-compat as a transitive dependency, or either if it uses a library that uses Play-JSON, these libraries will need to adapt to this change.

API improvements such as allowing set inline content-disposition and filename together, support to java.nio.file.Path when serving files, and log warnings when Java action composition is annotated as a singleton.

Bug fixes including an encoding problem when reading the generated router in Windows, binding both HTTP and HTTPS ports in DEV mode, correctly copy all the data when calling Java version of Result.as, and an resolve an early response warning on chunked requests.

Moreover, as always, there are a good number of documentation improvements made by Play contributors. For more details see the full list of changes and the 2.7.1 milestone.

Credits

Thanks to the community for their detailed bug reports and contributions.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release: Matthias Kurz, Marcos Pereira, Dale Wijnand, Albaro Pereyra, Ignasi Marimon-Clos, sullis, João Ferreira, Dominik Dorn, Renato Cavalcanti, Roman Parshikov, Ruth Stento, Will Sargent, Zachary Mulgrew, gaurang-sawhney, James Roper, morellik, Naoki Takezoe.

Join the Play Community

Want to discuss the new release or have questions related to Play? Visit the Play Framework forum.

Marcos Pereira

Toronto, ON

comments powered by Disqus