BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JavaRebel 2.0 WAR/EARのホット・デプロイ及びSpringとの統合をサポート

JavaRebel 2.0 WAR/EARのホット・デプロイ及びSpringとの統合をサポート

原文(投稿日:2009/4/5)へのリンク

アプリケーション・コードの修正に応じてダイナミックにデプロイをするためのJVMのプラグインである、JavaRebel(リンク)の最新版ではWAR/EARのホット・デプロイとSpringやStruts2 フレームワークとの統合をサポートした。最近、ZeroTurnaround(リンク)の開発チームはJavaRebel 2.0のリリースを発表した(リンク)

このツールはJavaエージェント(-javaagent(リンク)オプション)を使用することで、Webアプリケーションのコードに対する修正に応じてホット・デプロイをするために(JBoss(リンク) やTomcat(リンク)などの)サーブレット・コンテナにおける(Webアプリケーションのコンテキスト全体を再デプロイするという)デフォルトのWARデプロイ方法を上書いている。

JavaRebel 2.0に含まれる新しい機能(リンク)に以下のようなものがある。

  • Javaのクラスにあるメソッドの実装を変更
  • メソッド、フィールド、コンストラクタの追加、アノテーションの変更及び追加、インタフェースの変更などを含むクラス構造の変更。
  • JavaRebelプラグイン(リンク)を使ったSpring(リンク)やGuice(リンク)フレームワークとの統合によってアプリケーションの設定は動的に変更可能となった。プラグインはJavaRebel SDK(リンク)を使って作成可能である。さらにはWicket(リンク)、Stripes(リンク)、Tapestry 4(リンク)、そしてStruts2(リンク)といったMVCフレームワークとも統合され、さらなるサポートのためのオープンなAPIも追加された。
  • 展開された状態、パッケージ化された状態でのデプロイ(リンク)。新しいバージョンでは展開された状態と全く同じようにWAR/EAR化されたファイルでのアプリケーションのデプロイにも対応する。アプリケーションを構成するファイルが更新・保存されるとひそかに全てのクラスやリソースがリロードされる。この機能を使うためにはrebel.xmlと呼ばれる新しい設定ファイルによってJavaRebelがどこにあるクラスやリソースの更新を確認すべきであるかを教える必要がある。この設定をIDE外から行うためのMaven(リンク)プラグインも提供されている。

新しいバージョンのJavaRebelでは性能と起動時間に対する改善が行われており、Reflection APIの変更や製品の機能を検証するための優れたテスト・スイートも含まれている。さらにはAspectJ(リンク)のload-time-weaving(ロード時のアスペクト適用)機能や、IBM WebSphere(リンク)、動的言語Groovy(リンク) などもサポートしている。JavaRebelはさらにEclipseプラットフォーム(リンク) もサポートしており、開発者はプラグインを起動した状態でそのソースコードを修正してもEclipseを再起動することなく修正結果が反映されるのを確認することが出来る。

この記事に星をつける

おすすめ度
スタイル

BT