dev_appserverを外部プロセスとして起動する方法と殺す方法

Kotanの実行環境としては3パターンを想定しています。
- プロダクション環境(Java Web Startで実行)
- ローカルサーバ環境(Java Web StartまたはJavaアプリケーション)
- 組込AppEngine環境(Javaアプリケーション)
どれも、サーバとはHttpでデータを通信していますが、都度サーバを動かす2つ目の方法はちょっと面倒です。

そこで3つ目の実行方法として、スタンドアロンアプリケーションとしてKotanを動かします。組込モードでは、Kotanが外部プロセスとしてAppEngineのローカルサーバを起動します。この時、ApplicationIdやDatastoreのパスを指定する事ができるため、Datastoreのバイナリファイルを好きなように作成することができるわけです。

この機能により、開発中のアプリケーションのデータをコピーしてKotanで編集すること、Kotanで作ったデータを開発中のアプリケーションのテストデータとして使うことなどができるわけです。

起動オプションあれこれ

Datasroeを指定して起動する

    • jvm_flag=-Ddatastore.backing_store=MY_STORE

ApplicationIdを指定して起動する

    • jvm_flag=-Dcom.google.appengine.application.id=MY_APPLICATION_ID

ApplicationのVersionを指定して起動する

    • jvm_flag=-Dcom.google.appengine.application.version=MY_VERSION

尚、dev_appserver.shなどのスクリプトを使って起動してしまうと、Process#destoroyでサーバが殺せません。dev_appserver.shを参考にして、Javaコマンドでサーバを起動します。
参考:http://code.google.com/p/kotan/source/browse/trunk/kotan/src/main/java/kotan/server/embedded/DevAppServerProcess.java