gae

開発サーバの起動引数メモ

GAE/Jの開発サーバの起動引数とappengine-web.xmlに関して、ちょっとはまっていたのでメモしておきます。GAE/Jの開発サーバは、 com.google.appengine.tools.development.DevAppServerMain をエントリーポイントとします。これは通常のエントリーポイントの…

makeAsynCallをサーバ上で実行させる

Google App Engineの各サービス(Datastore,Mail,Memcahe…)はプロダクションサーバで実行されるときにGoogleのサーバ群のどこかで実行されています。この時に使われている通信プロトコルがプロトコルバッファと呼ばれるもので、バックエンドのサービスに対…

GAEのChannel API で対戦ゲームの開発がどの程度難しいか

かなり前(SDK1.3.4-5)の頃の話題なのですが、Google App Engine でCometを実現するAPIが試験的に導入されました。デモとしてAndroidのロボットが動くやつを見た人も多いでしょう(http://dance-dance-robot.appspot.com/)。 現在、Channel APIは申請し承認…

Scenic3を可変長のURL引数に対応してみた

slim3のMLでこんなURLに対応できないの?という話があがっていました /foo/bar/a/very/long/long/long/long/long/long/long/path/ つまり、パスでIdか何かが区切られていて、かつ可変長なパターンです。 正直な所あまりないのかな?と思いつつも、ファイルの…

単純な処理の単体テストが重要

先日、appengine SDKが1.3.8にアップデートしたのですが、ローカル環境のSDKを1.3.8にした所、EtupirkaCMSの単体テストが1/3くらい失敗するようになりました。原因の1つはプロトコルバッファを使って画像加工の部分を単体テスト用に細工しているところで、A…

LocalDatastoreServiceのThreadを止める方法

JUnitで実行する分には問題は起こらないのですが、通常のJavaアプリケーションとしてGAEの実行環境を使い、LocalのDatastoreを操作したい場合、アプリケーションが終了しない問題に遭遇します。 原因は、com.google.appengine.api.datastore.dev.LocalDatast…

scenic3 0.2.0 リリース

slim3をT2Framework風に記述できる拡張ライブラリ Scenic3の0.2.0をリリースしました。とはいっても、単体テストを追加して不要なクラスなどを整理しただけです。 0.1.0には随分とゴミコードが残っていたので・・・・。詳しくはドキュメントサイトを参照くだ…

単体テストで ImagesService#applyTransform を使う方法

slim3ではGAEの環境に依存するような単体テストもかなり簡単に行う事ができます。例えば、Bigtableへのアクセスはテストの実行毎にリセットされる、グローバルトランザクションに対応など至れりつくせりです。ところが、画像を加工してサムネイルを作る時な…

GoogleAppEngine 1.3.1でファイルIOエラー

GoogleAppEngine が 1.3.1になりましたが、特に影響ないなと思っていた矢先、デプロイしてみたら起動できなくなるという不具合に見舞われましたorz アプリケーションは、slim3 + t2がベースです。原因としては、これまでなかったディレクトリがデプロイ時に…