ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Super Agile Web Development with Seasar2

Seasar Conferenceでは、私も2つのセッションでお話します。
Seasar2.4
Seasar2.4のセッションでは、バージョン2.4の最大の目玉であるSMART deployを中心にお話します。SMART deployとは、プロジェクトの作成時に設定ファイルの初期設定を済ませた後は、一切設定ファイルをいじることなく開発を進めることのできる機能です。初期設定で必要なのは、プロジェクトのルートパッケージとデータベースへの接続情報くらいです。

  • examples.chura
  • examples.chura.dao
  • examples.chura.util

のようなパッケージ構成の場合、examples.churaがルートパッケージになります。ルートパッケージ配下のパッケージ構成は、規約によって決められているため、設定ファイル無しでSeasar2がかしこく(スマートに)デプロイしてくれます。
SMART deployには、

  • HOT
  • WARM
  • COOL

の3種類があります。アプリケーションサーバのリブート無しにクラスの変更をHOTに認識できるHOT deployが最も「うり」の機能になります。ただし、HOTだと若干パフォーマンスが劣化してしまうので、HOTに認識はされないけれど、アプリケーションの起動時にすべてをデプロイしてパフォーマンスを確保するのがCOOL deployです。WARM deployはその中間。
詳しくは、セッションで。
Super Agile Web Development with Seasar2
Seasar2.4については、既にある程度情報が広まっていると思いますが、実は、極秘に開発されていたプロダクト群があります。
それが、Chura
Churaには、

  • Super Agile
    • ソースコードや設定ファイルの量を激減させることを徹底的に追及したもの。
  • Easy Enterprise
    • JSF, EJB3, JPAといったJavaの標準仕様をより使いやすくしたもの。

の2つのスタイルがあります。
私が話すのはSuper Agile。小林さんが話すのがEasy Enterpriseのほうです。
Super Agileでは、Javaだけでなく、どの言語のフレームワークと比べても、プロパティのような言語的な部分をのぞけば、最もソースコードを書かずにやりたいことが実現できるのではないかと思います。(もちろん、すべてにおいて最も少ないわけではなく、得手不得手はあると思います。)
まだまだ、荒削りですが、実際に試すことができます。あの有名なRailsのscaffoldと同様のことをやってみましょう。セットアップ手順は次のとおりです。

EclipseのメニューからFile -> New -> Projectを選びます。ダイアログが表示されるので、Chura Projectを選択します。
Nextのボタンをクリックしてください。Package nameにchura-example2、Root Package Nameにexamples.churaと入力し、JREコンテナーがUse Default JRE(1.5)になっていることを確認します。Project typeにTeeda + Uujiを選択し、Finishをクリックしてください。chura-example2のプロジェクトが作成されます。
プロジェクトを右クリックして、Tomcatプロジェクト -> Tomcatのコンテキストを更新を選択します。これで開発を始めるための必要な設定は完了しました。直ぐに開発をはじめられるようにHSQLDBもインストールされています。メニューからTomcat -> Tomcat起動を選択して、Tomcatを立ち上げます。HOT deployで開発するので、アプリケーションサーバを起動したままで開発することが可能です。
それでは、scaffoldを作成します。EclipseのメニューからWindow -> Show View -> Other... -> Dolteng -> DatabaseViewを選択します。
DatabaseViewにchura-example2のツリーが表示され、jdbc.diconが見えるはずです。Doltengは、Seasar2のdiconファイルを利用して、データベースに接続してくれます。いちいちPlugin用に設定する必要はないのです。
jdbc.diconを展開するとINFORMATION_SCHEMAとPUBLICというフォルダ(?)が見えるはずです。PUBLICをさらに展開してください。DEPTとEMPテーブルが見えるはずです。EMPテーブルを右クリックして「Generate Scaffold Application」を選択してください。これで、scaffold(足場)ができました。
ブラウザからhttp://localhost:8080/chura-example2/view/emp/empList.htmlにアクセスしてください。
いきなり、Excelのように列固定、行固定されたテーブルが見えるはずです。Teedaを使えば、こんなことは簡単です。右にスクロールするとEdit, Delete, Inquireというリンクが見えるので後は、好きにいじってください。
思う存分、scaffoldをいじったら、次は、データベースにアクセスするDaoを見てみましょう。examples.chura.dao.EmpDaoを開いてください。


public interface EmpDao extends GenericDao {
}
これだけ(実際には、package宣言やimportがあるけど)です。汎用的にテーブルにアクセスするだけなら、interfaceの宣言だけで、一切ロジックを書く必要はありません。
これを実現しているのが、Uuji(うーじ)と呼ばれる新フレームワークです。
当日は、Uujiを含めて、Super Agileな開発の仕方をお話します。