Play 2.8.0 Released!

The Play Team is proud to announce the release of Play 2.8.0. This  release adds many new features and continues our efforts to make Play more modular, flexible, and secure. Play 2.8.0 is the result of more than 10 months of relentless work from our fantastic community, comprehending more than a thousand changes made from 80 contributors.

What is new?

The highlights in Play 2.8.0 include, but are not limited by:

Akka 2.6

Akka 2.6.0 was released a little over a month ago, and it has new APIs with type-safety for Akka Actors, better stability for Akka Cluster with Artery, and improved serialization.

Play 2.8.0 integrates Akka Typed with Dependency Injection, full integration with Akka Jackson support, and initial support for Akka Cluster Sharding Typed. These lay down the basis to evolve integration with multiple Akka Typed APIs, such as Akka Persistence Typed.

Scala 2.13

Play 2.8.0 not only supports Scala 2.13 but uses it as the default version. Play, all the samples, and seeds all use Scala 2.13 by default now.

Java 11

Play 2.8.0 is the first version were we officially support Java 11. Play, its standalone modules, samples and seeds are all tested against AdoptOpenJDK 8 & 11. We continue to support Java 8 as the default version.

Final changes to remove Global State

This was a long journey we started a few versions ago, deprecating the APIs, providing dependency injection support, and many other changes. Therefore, Play 2.8 removes APIs such as Play.current, Play.maybeApplication, and others that depend on them.

Improvements to Results APIs

Many minor improvements were made in the Java API: sendFile, sendPath and sendResource now support an onClose callback; send* methods now accept a parameter to set Content-Type header; the type parameter for file names when serving files is now an Optional which makes the API nicer when you need to send Optional.empty (instead of null). Moreover, Range results now supports to pre-seek the Source when returning results for requests containing a Range header.

Many dependency updates

Besides updates to newer versions of our own libraries (play-json, play-ws, twirl, cachecontrol, etc), many other important dependencies were updated to the newest versions:

  1. specs2 4.8.1
  2. Jackson 2.10.1
  3. Mockito 3.2.0
  4. HikariCP 3.4.1
  5. Hibernate Validator 6.1.0.Final
  6. Lightbend Config 1.4.0
  7. Caffeine 2.8.0
  8. sbt-native-packager 1.5.1

As usual, you can see the more details of those new features in the release highlights and learn how to migrate in our migration guide.

How to start or migrate to Play 2.8

To get started with Play, follow the instructions in our Getting Started page. And if you need to migrate from an older version to Play 2.8, see our migration guide.

Thanks to our contributors

Finally, many, many thanks to the community for their help with detailed bug reports, discussion about new features, and pull requests.

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:

commits   added  removed
    231   17330     7071 Matthias Kurz
    155    7104     3190 Marcos Pereira
    154   29514    21862 Dale Wijnand
     88     105      105 Scala Steward
     53     920     2376 Renato Cavalcanti
     43     829      536 gurkankaymak
     42    2256      432 Ignasi Marimon-Clos
     16     129      990 Will Sargent
     12     734      836 Greg Methvin
      9      11        9 Albaro Pereyra
      6      72       46 Regan Koopmans
      5      10       10 sullis
      4      16       16 Bryant Larsen
      4     199      206 João Ferreira
      4      43        6 Eugene Yokota
      4      30       36 Roman Parshikov
      4      16        3 John Duffell
      4     178       54 yuuri111
      4     296       25 Nick Howes
      3       4        5 Jafer Khan
      3      69        6 Jakub Kozłowski
      3      48       57 Ruth Stento
      3     106       25 Arnout Engelen
      3       8       22 warrior911
      3      20        0 Ivan Toporkov
      3      63       21 golemiso
      3       9        9 James Roper
      3      38       38 Lukas Rytz
      2      17       15 To-om
      2      16        2 Rafael Zanella
      2       4        4 John Gutierrez
      2      18        3 Philippe Vinchon
      2       2        2 Natsumi
      2      56        0 Radim Kolar
      2       7        9 yohei.naruse
      2       3        1 Emmanuel Guiton
      2      46       12 ctoomey
      2       2        2 Byron Weber Becker
      2       2        2 Valentin Stoyanov
      2       8        8 duncangodwin
      2      53        0 a1kemist
      2     428       15 Peerapat A
      2      61       41 xuwei-k
      2      48       48 Hajime Shiozawa
      2      42        0 Geovanny Junio
      2       5        1 Felix
      2    1416        4 Gabriel Klappenbach
      2       6        3 Dominik Dorn
      2      35        5 Ander Parra
      1       2        2 Benoit Lemoine
      1       2        2 YourPsychiatrist
      1       2        0 Henri Cook
      1       2        1 igarashi-kazuya
      1     109        8 Mat2095
      1       0        1 Naoki Takezoe
      1      58        0 morellik
      1       0       37 Tim Moore
      1      56        0 Cédric Chantepie
      1      19        1 Yinan Ding
      1      15        5 Emmanuel GUITON
      1       1        1 Owen Miller
      1      32        5 Brandon Brown
      1       4        4 takashima0411
      1      10        7 Seung-Zin Nam
      1       0       10 Johannes Rudolph
      1       1        1 Yoshiyuki Sakamoto
      1       1       17 Francis De Brabandere
      1      14        0 Daniel Knittl-Frank
      1       0        5 Seth Tisue
      1       1        1 nickweitzel
      1       1        1 etienne
      1       3       26 Fajr Febriansyah
      1      62       16 Valy Dia
      1       2        2 Santiago
      1       1        1 PJ Fanning
      1      41        8 srirachapills
      1       2        0 bwbecker
      1       1        1 Sergey Morgunov
      1       0        1 Nafer Sanabria
      1       1        1 Felix Meißner
      1     113       48 gaurang-sawhney
      1       1        1 Zachary Mulgrew
      1       1        1 Jiangwr
      1       1        1 Nikolas

Marcos Pereira

Toronto, ON

comments powered by Disqus