The Play team is proud to announce the first milestone of Play 2.7.0. Like all milestone releases, the primary goal is to get feedback, so please let us know if something isn't working or you see something that should be improved. If you are the author of a Play module, we would recommend checking out this release to see how it will affect your module.
There are many improvements and changes at this new release, and you can see the most relevant ones in our roadmap. As we did for Play 2.6, we pushed to have a smooth migration from the previous version. Please see the migration guide for details on how to upgrade from 2.6.x. We especially value your feedback (and pull requests) on how to make upgrading to this release as smooth as possible.
So a sneak peek of the main changes.
New Cache implementation using Caffeine: Caffeine is a high performance, near optimal caching library based on Java 8. Until Play 2.6, the default implementation was based on an older version of EhCache. A reasonable explanation of the benefits of Caffeine over EhCache can be found here. Thanks to Dusan Stanojevic for his fantastic work to make this happen.
Scala 2.13 Support: right now Play 2.7 has artifacts for Scala 2.13.0-M3 and we are carefully looking at dependencies to update to the next milestone when they are ready. You can see Scala 2.13 roadmap here.
Java 9 and Java 10 compatibility improvements: we are now testing all our sample applications using Java 9 and Java 10 to ensure Play works with these new versions. Until Play 2.6.15, to run with Java 9+, there was the need to add a parameter (
--add-modules=java.xml.bind) when starting the application. This won't be necessary anymore with Play 2.7 since it adds JAXB-API as a dependency. Thanks Christian Schmitt and Matthias Kurz for the relentless work here.
Enhanced Content Security Policy: contributed by Will Sargent, the new CSP features provides a filter and an action builder that can inject nonce and hashes in page templates. This replaces the previous configuration of enabling CSP by default and setting it to
default-src 'self', which was too strict, interfered with plugins and embedded content.
For other changes, you can see a summary of our progress on 2.7.0 in our roadmap document.
Together with Play 2.7.0-M1, we are also releasing compatible versions of standalone projects that directly depends on Play. These new releases update most of the dependencies and also have Scala 2.13.0-M3 support.
- Scalatest+Play 4.0.0-M1
- Play-Ebean 5.0.0-M1
- Play WS 2.0.0-M2
- Twirl 1.4.0-M1
- Play Slick 4.0.0-M1
Please note that these are all intended to be previews that you can use with Play 2.7.0 release and we do not recommend using in a production application. We have made an effort to introduce most major API changes in this release, but we reserve the right to break everything in a future milestone or release candidate. The good news is that there’s still a chance to provide feedback, so please try it out and let us know what you think. Don’t hesitate file issues on the project or start a discussion on our forums if you have suggestions.
Finally, thanks to the community for their help with detailed bug reports, discussion about new features, and pull requests review.
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: Greg Methvin, Marcos Pereira, Matthias Kurz, Rich Dougherty, Will Sargent, Schmitt Christian, Ignasi Marimon-Clos, Lousanna, Tim Moore, Shunsuke Otani, Ben McCann, Shruti Singh, Cédric Chantepie, kenji yoshida, Zack Grannan, Nathan Coleman, James Roper, Roman Parshikov, jxtps, Pongpira Upra, Arnout Engelen, Aristotelis Dossas, joymufeng, mufeng, Alvaro Pereyra, rmcloughlin, Koen De Groote, James Petty, Manogna M, Tomek Kopczynski, Toshiyuki Takahashi, Christian Treppo, Thiago Arrais, danoliv, sweety98, Alexis Hernandez, Guylian, John Duffell, Kamil Duda, Reto Habluetzel, Shenker93, cdow, Paul Porter, Pedro Rijo, Andrii, Alain Defrance, Akhil Vijayan, kerami, markglh, Aidara Moussa, Pierre Court, ozencem, Adam Williams, Matthias Erche, Konstantin Perikov, Justin du Coeur, AKA Mark Waks, Ivar Abrahamsen, Quentin PROUST, Rajesh Pitty, sullis, Joe Kutner, Guillaume Galy, Maximilien Riehl, Eliot Chan, Sean Glover, Mariot Chauvin, Sergey Novikov, Adam Lane, Elijah Rippeth, Dominik Dorn, Naoki Takezoe, Stephen Marsh, Derek Wickern, Thibault Meyer, Johannes Stickel, Onilton Maciel, Daniel Reigada, JunpeiAnzai, Ty Kowalewski, Valy, Vincent Munier, Caio Novaes, Bora Kaplan, Ben Nelson, Claudio Bley, Matthias Berndt, Nafer Sanabria, Jean-Philippe Melanson, Jakub Kozłowski, Ivan Orone, Ryan Peters, Sergey Chupov, Shunsuke Tadokoro, Daniel Watson, To-om, dusanstanojeviccs, fijimf, nwalsh1995, sarathraj.