stackoverflow - Play framework 1.x with java 8 ということなので、やってみる。
- Mac OSX
- Eclipse Kepler
Eclipseは Java8対応 させておく
- OracleからJDK8をダウンロードし、インストール
- インストールしたJDKに切り替える(/usr/libexec/java_homeを利用するのがよい)
$ java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)
$
$ export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
- Preferences>Java>Installed JREs から Java SE 8 に変更
- Preferences>Java>Compiler から 1.8 に変更
あるいは
- プロジェクト単位の設定にて、Java Build Path での JDK 指定と、JDKJava Compiler を変更
- GitHubのPlayリポジトリから branch:1.3.x をダウンロード
- ZIP解凍して任意のフォルダに配置する
- コンパイルする
$ cd play1-1.3.x/framework
$ ant jar
- jarファイルが生成されていることを確認する
- 配置したPlayに切り替える
$ ln -s play1-1.3.x play
$ play -version
~ _ _
~ _ __ | | __ _ _ _| |
~ | '_ \| |/ _' | || |_|
~ | __/|_|\____|\__ (_)
~ |_| |__/
~
~ play! 1.3.x-bfdf802, http://www.playframework.org
play new Java8Test
にてプロジェクト作成play auto-test Java8Test
にてテストをパスすることを確認
Play1.2.7と比較する
- hamcrest-core-1.3.jar
- jboss-logging-3.1.0.GA.jar
- hibernate-validator-4.1.0.Final.jar
- jaxb-api-2.2.jar
- jaxb-impl-2.1.12.jar
- validation-api-1.0.0.GA.jar
括弧内は1.2.7でのバージョン
- async-http-client-1.8.8.jar(←1.7.8)
- cglib-nodep-3.1.jar(←2.2)
- commons-codec-1.8.jar(←1.4)
- commons-collections-3.2.1.jar(←3.1)
- commons-email-1.3.1.jar(←1.2)
- commons-fileupload-1.3.jar(←1.2.2)
- commons-io-2.4.jar(←2.0.1)
- commons-logging-1.1.3.jar(←1.1.1)
- gson-2.2.4.jar(←2.2)
- h2-1.3.173.jar(←1.3.166)
- hibernate-commons-annotations-4.0.1.Final.jar(←3.2.0)
- hibernate-core-4.1.3.Final.jar(←3.6.10)
- hibernate-entitymanager-4.1.3.Final.jar(←3.6.10.Final)
- ivy-2.3.0.jar(←2.2.0)
- javassist-3.18.1-GA.jar(←3.9.0)
- joda-time-2.3.jar(←2.1)
- junit-4.11.jar(←4.10)
- log4j-1.2.17.jar(←1.2.16)
- mail-1.4.7.jar(←1.4.3)
- netty-3.9.0.Final.jar(←3.4.2)
- org.eclipse.jdt.core-3.9.50.v20140317-1741.jar(←3.7.1.v_B76_R37x)
- oval-1.82.jar(←1.50)
- signpost-core-1.2.1.2.jar(←1.2)
- slf4j-api-1.7.5.jar(←1.6.1)
- slf4j-log4j12-1.7.5.jar(←1.6.1)
- snakeyaml-1.12.jar(←1.7)
- activation-1.1.1.jar
- antlr-2.7.7.jar
- asm-all-3.3.1.jar
- bcprov-jdk15-1.45.jar
- c3p0-0.9.1.2.jar
- commons-beanutils-1.8.3.jar
- commons-javaflow-1209105.jar
- commons-lang-2.6.jar
- dom4j-1.6.1.jar
- ehcache-core-2.4.3.jar
- ezmorph-1.0.3.jar
- geronimo-servlet_2.5_spec-1.2.jar
- groovy-all-1.8.6.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar
- jamon-2.7.jar
- javax.inject-1.0.jar
- jaxen-1.1.jar
- jboss-transaction-api_1.1_spec-1.0.0.Final.jar
- jj-imaging.jar(変わらず?)
- jj-simplecaptcha.jar(変わらず?)
- jj-textile.jar(変わらず?)
- jj-wikitext.jar(変わらず?)
- jregex-1.2_01.jar
- jsr107cache-1.0.jar
- memcached-2.6.jar
- mysql-connector-java-5.1.20.jar
- postgresql-9.0.jar
- xmlpull-1.1.3.1.jar
- xstream-1.4.2.jar
- public static ThreadLocal local = new ThreadLocal(); が
- public static ThreadLocal<Map<String, JPAContext>> currentEntityManager = new ThreadLocal<Map<String, JPAContext>>(); に変更ほか
自前トランザクション管理を行っている場合には、手当が必要
Hibernate4になったことによるシグネチャ変更
- org.hibernate.impl.CriteriaImpl から
- org.hibernate.internal.CriteriaImpl へ
- org.hibernate.usertype.EnhancedUserType