SpringSource Tool Suite(STS)はEclipseをベースにしたSpringアプリケーションの開発環境だ。この最新版ではSpring 3.0およびOSGiに対応した開発ツールがサポートされることになる。先日SpringSource開発チームはSpringSource Tool Suite 2.1.0の最初のリリース候補版(RC1)を発表した。このバージョンではAmazon Elastic Cloud Computing(EC2)とVMwareツールとランタイムで連携する機能もサポートされている。
SpringSource Tool Suiteを使うことでSpringSource dm Server(OSGiベースのJavaプラットフォーム)上のOSGi実行環境で実行できるようにSpringアプリケーションをパッケージ/デプロイすることができるようになる。STSには開発速度を速めるタスク重視のユーザインターフェース、ディベロッパをベストプラクティスへと導くアーキテクチャレビューツール、そして解決法自動探索機能によってアプリケーションの実行時における問題解決を助ける実行時エラー分析ツールが内蔵されている。
以前SpringSource Tool Suiteは有償だったが、SpringSourceの設立者であるRod Johnson氏が4月のSpringOne Europeカンファレンスで、STSを無償版にしてリリースすることを発表した。この発表と最新版の新機能についてはChristian Dupuis氏が記事を書いている。
SpringSource Tool Suite 2.1.0 RC1およびこれまでのリリースで含まれるようになった新機能を見ていこう。
開発ツール
Spring Project Nature
Spring Bean定義ファイルおよびWeb Flow定義ファイル用の新しいウィザードでは、新規プロジェクトに対してSpring Project Nature(プロジェクトをSpring化する)のオプションが含まれる。他にも、プロジェクト作成ウィザード、フォームでのSpring設定エディタ、クイックフィックスおよびクイックアシスト、Bean作成ウィザード、名前空間設定ダイアログといったビジュアルツールがあるが、これらもSpringベースのアプリケーションを作るためのものだ。
プロジェクトテンプレート
新しいSTSにはスプリングベースのプロジェクトを一気に作成するのに役立つプロジェクトテンプレートがいくつも含まれている。これらにはSpring MVC、Spring Web Flow、Spring Faces、Spring Batch、Spring Roo、そしてSpringSource dm Server用OSGiバンドルといった各種Spring Portfolioプロジェクトをサポートするものもある。
型を認識するBean参照コンテンツアシスト
STS 2.1.0.M2で追加された待望の機能で、コンテンツアシストがSpring Beanの候補をあげる際にプロパティやコンストラクタの型が一致するBeanを優先するようになった。プロパティの引数の型あるいはコンストラクタの引数の型が一致するBeanは、候補を表示するUIの中で他の候補とはっきり分けられて表示される。
Spring 3.0 M3のサポート
STSが内部で使用するSpring Frameworkが3.0.0.M3にアップデートされ、Spring 3.0の諸機能が利用できるようになった。<task:* />や<jdbc:* /> もSpringの一名前空間として、コンテンツアシスト、ハイパーリンク設定、バリデーションで利用できる。またSpring 3.0で新しく導入された@Configurationおよび@BeanのアノテーションもSTSでサポートされる。@Beanが設定されているSpring BeanはSpring Explorerや依存関係ツリーに表示され、Spring XMLでも参照可能になる。またこれらはステレオタイプアノテーションにも加えられており、STSのアノテーショングルーピング機能によってアノテーションの設定クラスへのナビゲーションやそれらクラスの検証を簡単におこなえる。
Spring Rooの統合
STS内部にあるRoo(コード生成ツール)のかわりに、外部にある別のRooを使うように設定できる。これによりSTSのバージョンを変えなくても新しいバージョンのRooや新しいアドオンを利用できる。IDE内部で利用できるSpring Rooの生産性を活かすためのRooシェルがSTSにはあり、これによりクイックRooプロンプトを呼び出せる(Ctrl+RあるいはCmd+R)。どこにあるRooを使うかはプロジェクトごと、あるいはワークスペースごとに設定でき、それぞれで異なるバージョンのRooや異なるアドオンの組み合せを用いることができる。
Spring Batchビジュアルエディタ
新しいSTSではSpring Batch用ビジュアルエディタにいくつかの改善が加えられており、幅広い編集タスクに対応している。このエディタを開くには、Spring Config EditorでBatchジョブのあるSpring XML Bean定義ファイルを開いて、バッチツリータブを選択すればいい。
OSGi開発
STSによってJavaディベロッパは、OSGiに対応したアプリケーションを視覚化し、パッケージ化してSpringSource dm Serverにデプロイするのに欠かせないツールを手に入れることができる。STS 2.0でサポートされるOSGi開発のツールには、SpringSource Bundloのtemplate.mfをMANIFEST.MF、TEST.MFなどのマニフェストファイルと一緒にバリデートするツールなどがある。
ランタイムツール
tc Serverのインスタンス/インスタンス集合の管理
新しいSTSではtc Server(SpringSource版Tomcat)のインスタンスあるいはインスタンス集合をIDE内で管理できるようになる。STS 2.0.2から導入されているtc Serverとの連携では、開始/終了の操作をおこなえるだけでなく、SpringSource AMSで管理されたtc Serverへのリモートデプロイも実現している。STS内のインスタンスを設定するには、WTP Serversビューを開き新しいサーバを作成して、そのウィザードでSpringSource AMSサーバを選択して完了すればいい。
Amazon EC2との連携
STSではWARアプリケーション、OSGiバンドル、PARプロジェクトをAmazon EC2クラウド上のdm Serverやtc Serverにデプロイすることができる。すでにSpringSourceからはdm Serverとtc ServerのAMI(Amazon Machine Image)が出されている。このEC2との連携機能では、アプリケーションサーバのクラスタやロードバランサのセットアップも自動的におこなうようになる予定だ。
VMware Lab Manager
STSにはVMware Lab Manager(開発環境の自動化と管理をおこなう)に接続して設定を確認できる「Lab Manager」と呼ばれるビューもある。ユーザは構成管理をおこなったり仮想マシンのインスタンスに接続するコンソールを開いたりすることがIDE内でできるようになる。このフィーチャーはVMwareのEclipseアップデートサイトからインストールできる。そうすることで仮想データセンタでSpringアプリケーションを管理しているディベロッパは、VMware Workstationで実行されているアプリケーションのテストやデバッグをしやすくするツールを手に入れることになる。
SpringSource Tool Suiteは最近リリースされたEclipse 3.5との統合にも優れている。Christian Dupuis氏とAdam Fitzgerald氏はSpringSource Tool Suite 2.1.0.RC1 EclipseプラグインをEclipse 3.5(コードネームGalileo)にインストールする方法について記事を書いている。
チームのコラボレーションとタスク管理という面からすると、TasktTop(Eclipseにタスク重視型UIを提供するMylynをベースにした有償アプリケーション、またそのプロジェクト)公認のツールでもあるSTSでは、Mylynのタスク重視型のユーザインターフェースを拡張してモダンなエンタープライズアプリケーションの複雑な階層構造をナビゲートする。このSTSの機能では、IDEで開いたすべてのプログラミング要素の履歴と、アクセスしたウェブリソースの履歴が管理される。