playframework2.5の変更点の雑な要約と感想

公式の雑な要約と適当な感想以外は本当に書かないので、英語読める人 and/or 正確に知りたい人は公式を読もう



https://playframework.com/documentation/2.5.x/Migration25


説明書いてないのは、自分があまり理解してないか、興味ないか、みたいな感じです。
単なる翻訳ではなく、自分の感想混ざってる(むしろそっちが多い?)ので注意。

  • sbt0.13.11使えって書いてある
    • sbtに詳しい人なら知ってると思うが(?)、0.13.5以降ならおそらく問題ないが、単に最新使っておいたほうがいいよ、というだけ
    • 逆に言うとplay2.4でも普通にsbtは最新使えばいいと思うよ(という個人的意見)
  • Scala2.10サポートなくなりました
    • つまり2.11のみになった
    • 2.12は出たらサポートしたいねー、みたいなことは書いてある
    • 2.10使ってる人なんていないですよね?
    • ちなみに知ってると思いますが、関連して(?)書いておくと、play2.4の時点でJava8以上ですし、2.5も勿論Java8必須です
  • ログまわりの変更
  • wsが依存するAsyncHttpClientがversion 2に
    • https://github.com/AsyncHttpClient/async-http-client
    • play2.4までは1.9とかだった?
    • 2は結構違うらしい?
    • ws使ってない人にはあまり関係ない
    • 2ってまだRC(2016/3/5現在)だったはずだけれど、大丈夫なのか?
    • lightbend(typesafe)の人が、AsyncHttpClientに頑張ってreactive-stream対応のpull reqをしていたのを見かけた覚え
  • GlobalSettingsが非推奨になった
    • 以前からGlobalSettings以外の方法は提供されていたので、そういう流れらしい
    • 個人的にはGlobalSettingsで、それほど不便感じてなかったのでめんどい・・・
  • 古いpluginのAPI削除された
    • これは2.4で非推奨になってたから当然な流れ
  • routesがデフォルトではInjectedRoutesGeneratorを生成するように
    • InjectedRoutesGeneratorとは、objectではなくclassのほう。2.4で入ったDIのほう
    • 今までとデフォルトが逆になった
    • 設定をbuild.sbtに "routesGenerator := StaticRoutesGenerator" と1行書けば、objectのコントローラー使いつつけることもできる
    • これが一番ハマる人多そう
    • デフォルトが変わっただけで、現状ではobjectのほうは非推奨ではない
  • ExternalAssetsとかのplay組み込みのコントローラーもDIの方になった
    • へー、まぁ言われたとおり書き換えましょう
  • modeやisProdやisDevなどのメソッドが非推奨に
    • ん?DI経由で取得しろみたいに書いてある?けど、objectの方のコントローラーの場合どうするんだろう(よく読んでない)
  • Content-Type charset の変更
  • Guice関連の変更
  • CSRFの変更
  • Cryptoが非推奨に
  • nettyが3.10から4に
    • ついに・・・!?
    • 関連して設定が変わったとかなんとか