BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Spring Migration Analyzerは、JavaEEからSpringへの変換を助ける

Spring Migration Analyzerは、JavaEEからSpringへの変換を助ける

ブックマーク

原文(投稿日:2012/12/12)へのリンク

 

SpringSourceSpring Migration Analyzerの最初のマイルストーンを発表した。これは、 JavaEE成果物をスキャンして、もしこのアプリケーションをSpringに移行するのに余分な留意が必要なAPIやクラスの概要レポートを生成するヘルパーアプリケーションである。このレポートは、移行の評価を助けることができる。以降に必要な工数を評価するツールとして使うことができるからである。

Spring Migration Analyzerは、コマンドラインユーティリティとして提供され、JVMがインストールされているOS上で使うことができる(それはJava自身を使っている)。それは入力として既存アプリケーションのバイナリデプロイ(warやearファイルのような)を取り、出力として(違うディレクトリに)HTMLレポートを生成する。レポートには、検知されたJavaEE技術のリストが、それらを Spring/Tomcatに移行するのに必要な労力へのアドバイスと共に出力される。概説セクションがあるが、個々のクラスまでドリルダウンでき、それらがどのように移行作業に影響するかが見れる(もしそれらが特定のJavaEE APIを使っていれば)。対象になる技術は以下のものである。

これがサンプルレポートである(クリックすると拡大する)

Spring Migration Analyzerはまた、EJBの型(例えば、セッション対エンティティ)、Springライブラリ、ベンダー固有のデプロイ記述子のような追加のフィーチャやトランザクションのプログラミング的使用さえ検知する。検知されたそれぞれの技術に対する、それがいかにSpringへの移行に影響するか、あるいは影響するかに関するテキストによる記述がある。レポートの残りは、フィールド、メソッド、Java import、スローされる例外等のようなアプリで見つかる各クラスファイルの詳細な構造に関することである。

しかし気をつけるべきことは、デフォルトオプションでAnalyzerを走らせると、レポートにはたくさんの誤検知があるので非常に役立つわけではない、ということである。こうなる主要な理由は、バイナリモジュールをであって、ソースコードを処理しているわけではないので、アプリの実際のコードと外部ライブラリのコードとの見分けがつかないからである。もしレポートが外部ライブラリを排除して、開発者によって作成されたソースコードのみにフォーカスすれば、理想的である(ほとんど他のソフトウェアレポートは、同じコードに対して例えば単体テスト、コードカバレッジ、品質ツールを使う)。

例えば、ロギングするのにLogback を使っている大変簡単なアプリケーションがまるでJMSを使っているかのようにレポートされる。

Wrong detection of JMS

ソースコードには、JMSコードは無い、それは単に、JMSがロギング対象としてサポートされているので、logbackのバイナリも JMS importを持っているからである。なので、意味のある結果を得るためには、「排除」コマンドラインスィッチを使わなければならない。それで外部ライブラリの情報を捨てるのである(例えば、 /WEB-INF/libディレクトリ)。また出力ディレクトリは、入力ディレクトリと同じであってはならない

なので、理論的には、ユーティリティのコマンドラインスィッチはオプションなのだが、実際は必要である。要は、現状では、 Spring Migration Analyzerは有益な考えであるが、いかにエラーがユーザーにレポートされるかに関して、幾らかの調整が必要である。

更に情報を得たければ、ドキュメント現在の課題を見て欲しい。ソースコードは、GitHubにホストされている。

 

Kostis Kapelonis 氏はエンタープライズアプリケーションを専門にするソフトウェアエンジニアである。

この記事に星をつける

おすすめ度
スタイル

BT