Cloud Foundryは、Ruby on Rails,sinatraに限らず、いろんなフレームワークに対応しているところが魅力的だ。今回はHight Productivty Frameworkとして注目されているSpring RooのアプリケーションをCloud Foundryで動かしてみる。Spring Roo 1.1.4からCloud Foundry へのデプロイ機能が実装され、RooシェルからシームレスにCloud Foundryにデプロイすることが可能だ。
残念ながら今回は、まだ、Spring Roo 1.1.4がリリースされていないので、vmcツールでcloud foundryへSpring Rooアプリケーションをデプロイしたい。

1.Spring Rooを起動(ダウンロード、インストールなどについては以下のURLを参照)
mkdir crm && cd crm
roo.sh # roo起動

2.Rooのサンプルスクリプト実行、
以下の内容をRooシェルに入力する。
project --topLevelPackage roo.hoge.com.crmap
persistence setup --provider HIBERNATE --database MYSQL  # データベースは、mysqlを利用する。
entity --class ~.domain.db
field string --fieldName customername
controller scaffold --class ~.controller.mycontroll
perform package # パッケージ(warファイル)を作成
exit

15)

3.Rooシェルを終了後、vmc (vmcインストール、アカウント登録、loginの方法は、「Cloud Foundry PaaSを自宅のPCで動かす(その2)を参照)起動する。
デプロイするRooアプリケーションはmysqlデータベースを使っているので、vmcでサービスを作成する。
cd target #rooによって作成されてwarファイルが存在するディレクトリに移動
vmc create-service mysql tikeda_serivce_0001

29)

4.Cloud Foundryで利用できるサービスの確認
vmc services #アプリケーションサービスの確認

06)

5.vmcを使ってCloud FoundryへRooアプリケーションをデプロイする。
vmc push 
Would you like to deploy from the current directory? [Yn]: Y
Application Name: hogeWeb
Application Deployed URL: 'hogeWeb.cloudfoundry.com'? 
Detected a Java SpringSource Spring Application, is this correct? [Yn]: Y
Memory Reservation [Default:512M] (64M, 128M, 256M, 512M or 1G) 256M
Creating Application: OK
Would you like to bind any services to 'hogeWeb'? [yN]: y
Would you like to use an existing provisioned service [yN]? y
The following provisioned services are available::
1. tikeda_serivce_0001
2. tikeda_0002
3. mysql-tikeda0001
Please select one you wish to provision: 1
33)
6.vmc appsでデプロイされたアプリケーションを確認する。
vmc apps 
38)
7.ブラウザでアプリケーション(hogeweb.cloudfoundry.com)が動作するか確認する。
06)

 今回は、
Spring Roo 1.1.4がリリースされていないので、vmcツールでcloud foundryへSpring Rooアプリケーションをデプロイであったが、是非、
Spring Roo 1.1.4がリリースされたら、Cloud Foundry Add-on機能を使ってみたい。