Java EE 5からJava EE 7へのアップデート 〜依存関係の大掃除〜
ちょっと泥臭い話で、Java EE 5からJava EE 7へのアップデートにあたり、利用しているサードパーティ製の追加ライブラリ(依存関係)についても改めてみることにしました。せっかくJava EE 7標準で用意されているのに他の代替ライブラリを使い続けてる、みたいになっても無駄なので。
Java EEがフルスタックな標準仕様と言っても、実際の開発では他のライブラリを取捨選択して開発すると思います。 他のプロジェクトでは、どういうポリシーで取捨選択し、採用に至るのかは分かりません(リーダーにお伺いを立てるとか?)が、自分のところはよくも悪くも無法地帯で、好きなものを自由に選んで採用しています*1。
前置きはさておき、実際に使っているライブラリについて、検討した一覧がこちら(おかしな部分のツッコミとかは大歓迎です。)
ライブラリ | 方針 | 備考 |
---|---|---|
Joda-Time | 使わない | Date and Time (Java SE 8)に置き換える。 |
Quartz | 要検討 | EJBの@Schedule、Concurrency UtilitiesのManagedScheduledExecutorServiceなどで代用? QuartzのJobStoreTX(ジョブの登録内容をDBにして永続化する仕組み)相当の仕組みがあれば… |
JDBC | 使う | |
jersey-client | 使わない | JAX-RS 2.0のクライアントAPIに置き換える。 |
Guava | 要検討 | 使ってる用途の範囲だと、Java SE 8の新APIの部分でほぼカバーできそう。 ※ WIldFlyのmodulesにある(=warには含めなくてよいはず) |
Doma | 使う | 今のアプリはJPA使わずにDoma1使っているので、Doma2にアップデートして使っていきたい。 |
commons-lang | 使う | ※ WIldflyのmodulesにある。 |
commons-exec | 使わない | Java SE 8/Java EE 7で替わりとなる新APIがあるわけではないですが、なくてもよいという所感。 |
commons-email | 使わない | JavaMailに置き換える。 |
commons-compress | 使う | |
commons-beanutils | 使う | ※ WildFlyのmodulesにある。 |
Excel操作系(POI, XLSBeans) | 使う | (未だにJavaのExcel操作のデファクトなんでしょうか…) |
JBoss Seam 2.2 | 使わない | JSF, CDIに置き換える。 |
RichFaces | 使わない | 結局ほとんど使わずjQueryプラグインを使ってしまっているので…。 |
ロガー周り(SLF4j + Logback) | 要検討 | WildFly 8.1.0.Finalでのログ出力の王道に合わせる。 |
半分近くが使わないことになりそうですね。ただし、使用中のライブラリについては上記の通りですが、アップデートにあたり、Lombok、PicketLinkなどは新たに使っていく予定なので、トータルとしては同じくらいの依存関係の数になりそうです。
プレゼンテーション層にあたるSeam, RichFacesのところは、Java EE 7でどう変更するかについて、別のエントリで書いていきます。