こんにちは、平田です。
Windup(わいんどあっぷ)は、JBoss EAP 6 移行支援ツールです。既存のJava EEアプリケーションを分析し、修正箇所のレポートを出力します。
技術デモ用に作ったmeguroというアプリケーションに対して、レポートを出してみました。尚、meguroは、Seam + jBPM5 + Droolsによる稟議システムで、実のところ既にJBoss EAP 6で動作しています。
レポートを出力するには、以下のコマンドを実行します。
> java -Dfile.encoding=utf-8 -jar windup-cli.jar -fetchRemote true -source true -javaPkgs com.natswell.meguro -input C:\path\to\meguro-projects -output C:\path\to\windup-report
プラットフォームデフォルトの文字コードを使ってファイルを読むので、file.encoding
システムプロパティを上書きしています。また、meguroは、JBoss Toolsを使用して作成したため、EAR、WAR、EJB-JAR、ユニットテストのソースツリーがありますが、それら四つを格納した親フォルダを-input
パラメータに指定しています(ちなみにデコンパイラと組み合わせると、EARやWARのようなアーカイブ形式に対しても分析できるようです)。
実行すると、HTML形式のレポートと、修正工数のExcelレポート(スコアカード)が出力されます。
レポート内容
修正工数が「ストーリーポイント」という形で出力されます。レポートの先頭にストーリーポイントの合計とimportしているパッケージが出力されます。
また、各種設定ファイルやJavaソースファイルごとに修正箇所とストーリーポイントが確認できます。
スコアカードは、ストーリーポイントの集計表のようですが、ストーリーポイントの合計を三倍した数字が載っており、謎です。
ルールファイル
Windupは、一般的な静的コード解析と同様に、分析観点をルールファイルとして外部化しています。ルールファイルは、rulesディレクトリ以下に配置されており、よくよく見てみるとSpringのBean定義ファイルでした。
meguroはJBoss EAP 6で動作しますが、山ほど修正箇所が提示されます。これは、java-seam-to-cdi.windup.xml
によるCDIへの移行を促すもののようです。