# WOGroovy

鈴木鉄也 (suzuki@spice-of-life.net)

## WOGroovyについて

WOGroovyはWebObjectsアプリケーションをGroovy言語で開発できるようにするフレームワークです。 現時点では Mac OS X + Xcode の組み合わせでのみ動作します。

Groovyによる開発
  Javaだけを使うよりも手軽に開発できます。埋め込みGroovy、クラス丸ごとGroovyのどちらの開発も可能です。
動的コンパイル
  アプリケーションを起動したままスクリプトを再コンパイル・ロードでき、アプリケーションの再起動なしに修正を確認できます。スクリプタブルなWebObjectsを体験してみましょう。
追加されたメソッド
  よりGroovyらしく手軽に使えるよう、Utilitiesクラスを含めた多くのメソッドを追加しています。

最新情報や他のドキュメントについてはWOGroovyのWebサイトを参照してください。

## ライセンス

WOGroovyはBSDライセンスです。

## インストール

PProject WONDERが必要です。 事前にインストールしておいてください。

### WOGroovyフレームワーク

1. WOGroovy.frameworkを /Library/Frameworks にコピーします。
2. ~/WebObjects.Properties に次の行を追加します。

       wogroovy.WOGroovyCompilerProxyEnabled=true

### テンプレート

テンプレートは次のディレクトリにコピーしてください。 Xcodeを起動している場合はコピーしてもテンプレートに反映されません（Xcodeを再起動すると読み込まれます）。

Groovy Basic Classes.pbfiletemplate
  /Library/Application Support/Apple/Developer Tools/File Templates/WebObjects/
Groovy Class.pbfiletemplate
  /Library/Application Support/Apple/Developer Tools/File Templates/WebObjects
Groovy Component.pbfiletemplate
  /Library/Application Support/Apple/Developer Tools/Target Templates

## 基本的な使い方

### フレームワークの追加

まず、プロジェクトに次のフレームワークを追加してください。

- WOGroovy.framework
- ERJars.framework
- ERExtensions.framework

#### コンパイルの設定

ビルド時にGroovyスクリプトも一緒にコンパイルするよう設定します。 開発時は動的コンパイルを使い、運用時のみ静的コンパイルをしたい場合は「インストール時にのみ実行 ("Run only when installing")」 にチェックしてください。

1. "Application Server" ターゲットの編集画面を開きます。
2. 「ソースコード」ビルドフェーズの後に「シェルスクリプト」フェーズを追加します。メニューから「プロジェクト」「新規ビルドフェーズ」「新規シェルスクリプト」を選択し、ビルドフェーズの「ソースコード」の後に移動させます。
3. 次のシェルスクリプトを入力します。

       sh /Library/Frameworks/WOGroovy.framework/Resources/CompileGroovyScripts.sh

### 動的コンパイルの設定

アプリケーションを起動したままスクリプトをリコンパイルするための設定です。 基本的にはERXCompilerProxyと同様の手順になります。

1. プロジェクト名のターゲットの編集画面を開きます。
2. ビルドフェーズの「フレームワークとライブラリ」の後に「シェルスクリプト」のフェーズを追加します。
3. 次のシェルスクリプトを入力します。

       sh /Library/Frameworks/ERExtensions.framework/Resources/InstallCompilerProxySupport.sh

### Groovyスクリプトについて

Groovyスクリプトは拡張子を ".groovy" にして、プロジェクトと同じディレクトリに置いてください。 ただし、プロジェクトに追加する必要はありません。 WOGroovyフレームワークはプロジェクトのディレクトリにあるすべてのGroovyスクリプトをコンパイルの対象にします。

コンポーネントやApplicationなどのWebObjectsが使用するクラスもGroovyで書くことができますが、元のファイルはプロジェクトから取り除かないでください。 これらのファイルはコンパイルしたGroovyスクリプトで置き換えられるのですが、消してしまうとアプリケーションが動作しません。 ダミーとしてそのままプロジェクトに残してください。

## テンプレート

Groovy用にいくつかテンプレートを用意してあります。 それぞれ新規ファイルから選択してください。

Groovy Basic Classes
  Application, Session, DirectAction, MainクラスのGroovyスクリプトです。ターゲット選択時に入力するファイル名は無視されます。
Groovy Class
  新しいクラスのGroovyスクリプトを追加します。
Groovy Component
  Groovyスクリプトを含むコンポーネントを追加します。