Play! framework 2.1 → 2.2に上げた
正月休みを利用して、Play! framework 2.1のプロジェクトを2.2にした。あ、皆様あけましておめでとうございます。
結論から言っちゃうと、Play 2.2 Migration Guideに書いてある情報で大体網羅されていた。
Play自体のアップグレード
Migration Guide通り、Build.scalaとか修正すればOK。最新バージョンは2.2.1なので、ドキュメントに2.2.0って書いてある所は、2.2.1と置き換えて読めばOK。
サードパーティライブラリのアップグレード
Playのプラグインとかライブラリでは、Play 2.1.xの人はバージョンMを、Play 2.2.xの人はバージョンNを使ってくれ、っていうパターンのものが結構ある。
そういったライブラリとかのバージョンを正しいものに変更せずにビルドしようとすると、以下の様なエラーが出た。
[error] Modules were resolved with conflicting cross-version suffixes in {file:/Users/kazu/Documents/workspace/projectfoo/}projectfoo: [error] org.scala-stm:scala-stm _2.10, _2.10.0 [trace] Stack trace suppressed: run last projectfoo/*:update for the full output. [error] (projectfoo/*:update) Conflicting cross-version suffixes in: org.scala-stm:scala-stm [error] Total time: 0 s, completed Jan 1, 2014 12:31:37 AM
個人的に使っていて、バージョン変更する必要があったのはこの辺。
- Amazon S3 Module for Play
- Play2.x module for Authentication and Authorization(以下、play2-auth)
- SecureSocial
ソースの変更
自分が必要となったところだけ記載。
Result -> SimpleResult
これもMigration Guideに書いてあるけど、play.api.mvc.Resultはdeprecatedになった。
play2-auth関連のコードも修正が必要。具体的にはAuthConfigImpleの各メソッドのシグニチャーを変更すればOK。
Jackson
パッケージ名が変わってる。org.codehaus.jackson → com.fasterxml.jackson
その他(追記)
evolutionsが再実行されそうに
開発環境で起動したら、evolutionsでかなり昔まで戻ってから再実行されそうになった。例えば、現在の最新が50.sqlだとして、20.sqlまでDownが実行され、その後再度20〜50.sqlのUpが実行されそうになった。
原因は、20.sql を適用した後に、20.sql をいじった為だと思う。ただ、Play 2.1の時には、適用済みの古いスクリプトを修正してもそこまで巻き戻らなかったんだけど、Play 2.2で若干仕組みが変わったらしい。詳しくはこちらを参照。
対策として、新しいまっさらなDBを作ってそこでevolutionsを実行し、その後play_evolutionsテーブルから必要なエントリーを元のDBに移し替えること。
specs2関連
以前は以下のようなのがOKだったが、
listOfStrings must contain("A", "B") //A, Bが両方含まれていないとダメ listOfStrings must not contain("C", "D") // C, Dのどっちかでも含まれていたらダメ
以下のように書き換えないとダメだった。specs2のバージョンは一緒なのに何でだろう。Scalaのバージョンが変わったからかな?
listOfStrings must contain(allOf("A", "B")) //A, Bが両方含まれていないとダメ listOfStrings must not contain("C") listOfStrings must not contain("D")
最後に
Play 2.0 → 2.1の時よりは楽だった気がする。あの時はJson周りとか結構変更になったし。
現状、コンパイル通っただけで、まだあんまりテストしてないので、何かあれば追記予定。
“Play! framework 2.1 → 2.2に上げた” への1件の返信