Play 2.5.0-M1 released

1,601 views
Skip to first unread message

Mirco Dotta

unread,
Oct 26, 2015, 3:42:36 AM10/26/15
to play-framework, Play framework dev
Hi all,

The Play team is proud to announce the first milestone release of Play 2.5.

The purpose of this release is to get feedback, so if you spot something that isn’t working as expected please report the problem. Play 2.5 is about simplifying streaming and make Java8 a real first-class citizen in Play.

To simplify streaming we have replaced usages of the Iteratee API with Akka Streams. The Iteratee API is still available, but the Play API will not use it anymore. This change has of course an impact, but it should be relatively smooth to upgrade as we provide utility classes for transforming Iteratee and Enumerator into their “equivalent” Reactive Streams types. We haven’t yet had time to document this in the migration documentation, but have a look at the methods in the Streams object, and ask questions in the mailing list if you have any doubt.

Furthermore, thanks to Akka Streams, we can finally offer a Play Java API that is on feature parity with the Scala one. For example, while up until Play 2.4 it was not possible to implement a custom body parser in Java, you can now with Play 2.5. Another important change is that we have fully embraced Java8. For instance, we have replaced Play F.Function and F.Option types with their matching Java8 types. The F.Promise type also went through a similar process but, to limit breaking changes, we have deprecated the class and you should replace references to F.Promise with the Java8 type CompletionStage.

Finally, another important change is that support for Scala 2.10 was dropped. For all of you who are using Play with Scala, it’s recommended to first upgrade your project to Scala 2.11, if you would like to take Play 2.5.0-M1 for a spin. You can read here if you are interested in knowing the rationale behind dropping Scala 2.10 support.

Other highlights of this milestone are the Netty4 update, and the addition of streaming request body functionality in the WS API.

For a more complete list of changes have a look at the closed tickets for the 2.5.0 milestone https://github.com/playframework/playframework/issues?q=milestone%3A2.5.0+is%3Aclosed.

And here is a handy link to the documentation for Play 2.5.0-M1 https://www.playframework.com/documentation/2.5.0-M1/Home.

Moreover, because modules compiled against Play 2.4.x cannot be used with Play 2.5 (Play 2.5 is not binary compatible with Play 2.4), we have also released milestones for the following modules, usable with Play 2.5.0-M1:


At this stage this release is nowhere near production ready, any of the new APIs that we've introduced may be complete changed or even removed. This release is only intended for experimenting.  Do not upgrade your production system to it and then complain when we break everything in the next milestone.

After the above, big, disclaimer, we would still like to say that we believe we are not too far from declaring Play 2.5.0 ready for its first release candidate. Currently, we are mostly missing documentation, and we also plan to deprecate every API that relies on global state for which it exists a DI alternative. We will likely have a second milestone with the aforementioned changes, before releasing the first release candidate.

Enjoy!

Christian Schmitt

unread,
Oct 26, 2015, 4:09:00 AM10/26/15
to play-framework, play-fram...@googlegroups.com
Is  there a chance that 2.5 will fix the ssl bugs in 2.4 Like:

It's currently simple impossible to use loose SSL options in Play 2.4+ Looks like the Bug is hanging inside the NingWS Builder still nothing happend on this bug yet.

Mirco Dotta

unread,
Oct 26, 2015, 4:23:06 AM10/26/15
to play-fr...@googlegroups.com, play-fram...@googlegroups.com
Hi Christian,

I haven’t read through the all conversation in the referenced Play ticket, but we have updated the async-http-client library to version 2.0.0-alpha14, which includes a fix for the async-http-client ticket linked from the mentioned Play ticket. It would be great if you could verify if the issue is fixed in Play 2.5.0-M1 and report your findings.

Cheers,
Mirco
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framewor...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/play-framework/405a5e03-6c27-40eb-83d7-0817433b2d71%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Christopher Hunt

unread,
Oct 26, 2015, 4:43:50 AM10/26/15
to Mirco Dotta, play-framework, Play framework dev
I’m in awe. What an exciting release. Well done Play team!

--
You received this message because you are subscribed to the Google Groups "Play framework dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


-- 
Christopher Hunt
ConductR Tech Lead
Typesafe – Build Reactive Apps on the JVM!

Twitter: @huntchr

Christian Schmitt

unread,
Oct 26, 2015, 9:53:04 AM10/26/15
to play-framework, play-fram...@googlegroups.com
I'm still getting a Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
which results in a GeneralSSL Engine Problem with the following settings:

play.ws.ssl.loose.acceptAnyCertificate = true
play.ws.ssl.loose.allowWeakCiphers = true
play.ws.ssl.loose.disableHostnameVerification = true
play.ws.ssl.loose.allowWeakProtocols = true

Currently happens on both Java and Scala Code.
Currently the Exception on Java changed to a CompletionException however that is just the new API.

Mirco Dotta

unread,
Oct 26, 2015, 11:59:23 AM10/26/15
to play-fr...@googlegroups.com, play-fram...@googlegroups.com
Thanks for testing it out. Can you please add a comment in the related Play ticket.

Thanks,
Mirco

Andrew Gaydenko

unread,
Oct 26, 2015, 12:27:41 PM10/26/15
to play-framework, play-fram...@googlegroups.com
Hi! Are there benchmark results comparing iteratees and akka streams?

Henry Story

unread,
Oct 26, 2015, 1:30:14 PM10/26/15
to Mirco Dotta, play-framework, play-fram...@googlegroups.com
Do you have any plans to support TLS client certificate renegotiation in 2.5.0?

The akka team is working on implementing this 

It is more work for them though as it would be for a netty implementation, as netty comes
with this built in.

I have an older issue for this

It seems like it would be interesting to work with the akka team, as you could try out APIs that would work
with netty and get feedback from there that can then be used by the akka team.

Henry

--
You received this message because you are subscribed to the Google Groups "Play framework dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-...@googlegroups.com.

Will Sargent

unread,
Oct 26, 2015, 1:51:44 PM10/26/15
to play-fr...@googlegroups.com, play-fram...@googlegroups.com
Hi Christopher,

Can you file a bug at https://github.com/playframework/playframework/issues with a reproducable test case (ideally as a small public github project, but a specs2 test is fine) and the full stack trace that you're seeing?

Will.

Erol Merdanović

unread,
Oct 26, 2015, 5:33:35 PM10/26/15
to Play framework dev, mirco...@gmail.com, play-fr...@googlegroups.com
Great news!

Are there any plans to add DI support for forms in 2.5.0 release?
To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-dev+unsub...@googlegroups.com.

Greg Methvin

unread,
Oct 27, 2015, 12:26:02 AM10/27/15
to Erol Merdanović, Play framework dev, Mirco Dotta, play-framework
Hi Erol,

I can't see why special DI support for forms would be required. Usually you would instantiate the form locally in the class that does the validation. You could also create a custom binding for Form<MyObject> using a provider.

If you want to discuss your particular case, you can start another thread on the play-framework mailing list with some details on what you're trying to do.

Great news!

To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Play framework dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-...@googlegroups.com.

Erol Merdanović

unread,
Oct 27, 2015, 3:36:54 AM10/27/15
to play-framework, zase...@gmail.com, play-fram...@googlegroups.com, mirco...@gmail.com
The main idea is to have DI in form validators as described here https://groups.google.com/forum/#!topic/play-framework-dev/O9tE1leKOO0. Based on the solution provided, this shouldn't be to hard to implement. in the core.
Great news!

To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-dev+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Play framework dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-dev+unsub...@googlegroups.com.

Miuler

unread,
Nov 12, 2015, 12:20:30 AM11/12/15
to play-framework, play-fram...@googlegroups.com
Hi people, can how install the version 2.5 with activator?

Nico Huysamen

unread,
Nov 12, 2015, 12:55:28 AM11/12/15
to play-framework, play-fram...@googlegroups.com
Activator will install the latest 2.4.x version, then simply update your plugins.sbt to:

resolvers += "Typesafe repository" at "https://repo.typesafe.com/typesafe/releases/"

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.0-M1")

addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.0-M1")


The Ebean is of course for Play Java, but you get the gist.  Sit back and relax while SBT does it's thing.

Nico Huysamen

unread,
Nov 12, 2015, 12:56:28 AM11/12/15
to play-framework, play-fram...@googlegroups.com
O, you will also need to add the following to build.sbt

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"




On Thursday, November 12, 2015 at 7:20:30 AM UTC+2, Miuler wrote:

Gavin Baumanis

unread,
Nov 13, 2015, 1:37:23 AM11/13/15
to play-framework, play-fram...@googlegroups.com
Hi Everyone,

I have updated to 2.5 and my code comnpiles / tests and runs fine, too.
I will of course let you all know if I come up against something.

I do have a question with respect to the upgrade, though, 
after running;
activator clean update compile, I get the following;

[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn] * com.typesafe.akka:akka-slf4j_2.11:2.3.13 -> 2.4.0
[warn] * com.typesafe.akka:akka-actor_2.11:(2.3.13, 2.3.12) -> 2.4.0
[warn] * com.typesafe.play:play-cache_2.11:2.4.0 -> 2.5.0-M1
[warn] * com.typesafe.play:play-netty-server_2.11:2.4.0 -> 2.5.0-M1
[warn] * com.typesafe.play:play-server_2.11:2.4.0 -> 2.5.0-M1

because they're "warnings" and because my code, seemingly works - I am not too worried...but atthe sametime would like toknow if there is anything that I shoud be doing (or can do) to resolve the warnings?
(I did run activator evicted : But it is all greek to me!)

I have included my plugins.sbt below;


// The Typesafe repository

resolvers += "Typesafe repository" at "https://repo.typesafe.com/typesafe/releases/"


// Repo for Play 2.5.0-M1

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"


// The Play plugin

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.0-M1")


// web plugins

addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")


addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")


addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")


addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")


addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")


addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")


//eclipse IDE plugin

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")



As always thanks very much!

-Gavin.

Rich Dougherty

unread,
Nov 15, 2015, 2:39:05 PM11/15/15
to play-framework, play-fram...@googlegroups.com
Hi Gaven

There's some info about debugging sbt dependencies here: https://www.playframework.com/documentation/2.5.x/SBTDebugging. Let us know if you find any weird dependencies that need to be fixed up in Play.

Cheers
Rich

--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framewor...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Rich Dougherty
Engineer, Typesafe, Inc

Rich Dougherty

unread,
Nov 15, 2015, 2:39:27 PM11/15/15
to play-framework, play-fram...@googlegroups.com
Sorry, "Gavin" not "Gaven"!

Gavin Baumanis

unread,
Nov 15, 2015, 6:41:53 PM11/15/15
to play-framework, play-fram...@googlegroups.com
Hi Rich,

Thanks for the reply.
Those reports are pretty awesome... I didn't even know they existed!

Can I just get you to confirm that I am using the report correctly?
For my app the first evicted dependency is;

guava by com.google.guava

     15.0


In the report if I choose the "15.0" hyperlink it takes me to guava and shows me that it is required by "bonecp".
and if I choose that hyperlink I get the following;

Organisation

      Name

      Revision

In Configurations

Asked Revision

com.typesafe.play

      play-jdbc_2.11

      2.5.0-M1         

default, compile, runtime, master       

0.8.0.RELEASE


So, if I am reading this correctly, (for want of a better word) the "fault" lies with play-jdbc_2.11 at revision 2.5.0-M1

Do I have that right?

Lastly, is there any value in me running down all the rabbit-holes and finding the all the Play "sources"?
and to where should I send what I find?

As always 
Thanks!
-Gavin

Rich Dougherty

unread,
Nov 16, 2015, 8:12:22 PM11/16/15
to play-framework, play-fram...@googlegroups.com
On Mon, Nov 16, 2015 at 12:41 PM, Gavin Baumanis <gavinb...@gmail.com> wrote:
Do I have that right?

Yes I think so. :) I can see in the source that play-jdbc has an explicit dependency on Guava 18.

Lastly, is there any value in me running down all the rabbit-holes and finding the all the Play "sources"?

There may be some value, but it's hard to tell. If one of the Play 2.5.0-M1 core artifacts depends on a Play 2.4 artifact then that's probably a "bug". However, if something outside of Play depends on Play 2.4 then that's probably just an issue with your build configuration having a mix of dependencies for some reason. If you looked at the evicted play-server dependency that would probably tell us the answer.
 
and to where should I send what I find?

Feel free to reply on this thread at first and then we can make an issue if we agree it looks suspicious.

– Rich

Gavin Baumanis

unread,
Nov 16, 2015, 10:13:20 PM11/16/15
to play-framework, play-fram...@googlegroups.com
Ok I have this;

I re-downloaded the "play-scala-intro" template and started hacking it up so that it matched the configuration of my application;

the only things of note are;
* Bumped the sbt version to 0.13.9
* Bumped the scala version to 2.11.7

So I have removed all the libraryDependencies from my build.sbt - so it looks just like this;
//-------------------------------
name := """emr"""
version := "0.1.1"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.7"

libraryDependencies ++= {
    Seq(
    )
}

routesGenerator := InjectedRoutesGenerator
sources in (Compile, doc) := Seq.empty
publishArtifact in (Compile, packageDoc) := false
parallelExecution in Test := true
fork in Test := false
fork in run := true
//---------------------------------


(via activator clean update compile)
Re-compiled etc and got the following reports which I have attached. (reports.zip)
If I am reading things correctly - there are still a couple of evictions that seem to "blame" Play.

Please let me know if there is anything else I can provide for you.
-Gavin.




--
You received this message because you are subscribed to a topic in the Google Groups "play-framework" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/play-framework/CRWoluub3a8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to play-framewor...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/play-framework/CABW6spP82yaVJTUaN_OND38FsHigFQbgB5ui8jmMtG46Rw5Xvw%40mail.gmail.com.

For more options, visit https://groups.google.com/d/optout.



--
As always thanks!
- Gavin Baumanis
reports.zip

Rich Dougherty

unread,
Nov 16, 2015, 10:26:57 PM11/16/15
to play-framework, play-fram...@googlegroups.com
Hi Gavin

Those evictions look OK. All Play artifacts depend on the most recent version. The Play dependencies sometimes override (for example) the older dependencies brought in by Akka, but that is OK.

Thanks for taking a look.

Cheers
Rich

--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framewor...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/play-framework/CAB6eXyUK2TDckxPdOtaDTnYfCPx_i3H7DKJEaZH2ydSZwmNNhg%40mail.gmail.com.

For more options, visit https://groups.google.com/d/optout.



--

James Roper

unread,
Dec 9, 2015, 7:41:18 PM12/9/15
to play-framework, play-fram...@googlegroups.com
On 13 November 2015 at 17:37, Gavin Baumanis <gavinb...@gmail.com> wrote:
Hi Everyone,

I have updated to 2.5 and my code comnpiles / tests and runs fine, too.

That's great to hear!  Did you have to make any changes to your code for it to work?  Play 2.5 represents a significant change to the underlying architecture of Play, however we've been very careful to try to ensure that these changes don't break 99% of how a typical Play app is written.  Of course, it's hard for us to know what 99% of a typical Play app looks like, so any feedback on what we've broken and what the pain points are is very valuable at this early stage.  Also, are you using Java or Scala?
 
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framewor...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
James Roper
Software Engineer

Typesafe – Build reactive apps!
Twitter: @jroper

Igmar Palsenberg (Private)

unread,
Dec 10, 2015, 2:53:59 AM12/10/15
to Play framework dev, play-fr...@googlegroups.com
I have updated to 2.5 and my code comnpiles / tests and runs fine, too.

That's great to hear!  Did you have to make any changes to your code for it to work?  Play 2.5 represents a significant change to the underlying architecture of Play, however we've been very careful to try to ensure that these changes don't break 99% of how a typical Play app is written.  Of course, it's hard for us to know what 99% of a typical Play app looks like, so any feedback on what we've broken and what the pain points are is very valuable at this early stage.  Also, are you using Java or Scala?

i'll also give our stack a spin. We basically use everything we can use, and we also do some stuff that's in a pretty much grey area. All java that is.


Igmar

Gavin Baumanis

unread,
Dec 12, 2015, 8:49:21 PM12/12/15
to play-framework, play-fram...@googlegroups.com
Hi James,
Sorry for the late reply...

Albeit I have a really simple application at the moment;
~ 10 Forms / validation / submission
Data retrieval / data persistence

I made zero changes to my code and end-to-end - UI based testing is completely successfully.
All unit tests pass, too.

So for us at least - at this early stage in our application - everything seems "safe".

Thanks.

v6ak

unread,
Dec 19, 2015, 7:58:19 AM12/19/15
to play-framework, play-fram...@googlegroups.com
I've checked encryptAES and decryptAES, that were planned to be deprecated in the next release. They haven't been deprecated so far. What is the current plan about deprecation of those methods?

Regards,
Vít Šesták 'v6ak'

Rich Dougherty

unread,
Dec 20, 2015, 2:45:52 PM12/20/15
to v6ak, play-framework, play-fram...@googlegroups.com
I think the plan is still to deprecate the AES methods. I know Will Sargent was working on it. I'll check with him over on https://gitter.im/playframework/contributors and let you know his answer…

– Rich

--
You received this message because you are subscribed to the Google Groups "Play framework dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--

Igmar Palsenberg

unread,
Dec 21, 2015, 7:01:52 AM12/21/15
to play-framework, play-fram...@googlegroups.com
 
The Play team is proud to announce the first milestone release of Play 2.5.

Is there a "migrate from 2.4 to 2.5" doc available somewhere ? I'm planning on testing our current stack with a 2.5 milestone release.


Igmar 

Ben McCann

unread,
Dec 21, 2015, 11:49:48 AM12/21/15
to Igmar Palsenberg, play-framework, play-fram...@googlegroups.com

--
You received this message because you are subscribed to the Google Groups "Play framework dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framework-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Dominik Dorn

unread,
Dec 22, 2015, 3:23:49 AM12/22/15
to Ben McCann, Igmar Palsenberg, play-framework, play-fram...@googlegroups.com
Info about F.Promise is missing.. is it going to be deprecated? 
I (personally) find it more easy to use than the CompletionStage constructs from Java8 and would prefer if it could stay. 



Mirco Dotta

unread,
Dec 22, 2015, 4:59:48 AM12/22/15
to Dominik Dorn, Ben McCann, Igmar Palsenberg, play-framework, play-fram...@googlegroups.com
Hi Dominik,


— Mirco

Rich Dougherty

unread,
Dec 30, 2015, 5:09:43 PM12/30/15
to v6ak, play-framework, play-fram...@googlegroups.com
Hi v6ak

Sorry about the delay replying. I checked with Will and he has a couple of PRs to deprecate the crypto APIs. These should be merged soon, I think.


Cheers
Rich
Reply all
Reply to author
Forward
0 new messages