テスト時に必要ですよね。
ApiProxyそのもの
- com.google.apphosting.api.ApiProxy.Delegate
- 下記ApiProxyLocalの親インターフェース
- com.google.appengine.tools.development.ApiProxyLocal
- 上記を継承したインターフェース。getService()メソッドもこのインターフェースで定義されている。
- com.google.appengine.tools.development.ApiProxyLocalImpl
- ApiProxyLocalの実装
ApiProxyから取得するサービス
- com.google.appengine.tools.development.LocalRpcService
- ApiProxy#getService()で返るインターフェースの型。以下のサービスは全部これの実装。これを実装したクラスのgetPackage()が返す値が、ApiProxyLocal.getService()で指定すべき値。
- com.google.appengine.api.datastore.dev.LocalDatastoreService
- データストアサービスの実装。getPackage()が返す値は"datastore_v3"
- com.google.appengine.api.users.dev.LocalUserService
- ユーザサービスの実装。getPackage()が返す値は"user"
- com.google.appengine.api.urlfetch.dev.LocalURLFetchService
- URL Fetchサービスの実装。getPackage()が返す値は"urlfetch"
- com.google.appengine.api.mail.dev.LocalMailService
- Mailサービス。getPackage()が返す値は"mail"
- com.google.appengine.api.memcache.dev.LocalMemcacheService
- memcacheサービス。getPackage()が返す値は"memcache"
- com.google.appengine.api.images.dev.LocalImagesService
- 画像サービス。getPackage()が返す値は"images"
ローカル用のサービスの実装
サービスの実装を指定している場所
正式なGoogleのSDKに含まれるjarは使ってないからわからんけども、mvnsearchのリポジトリにあるjarでいぅと"appengine-1.0-stubs-1.2.1.jar"の中の"META-INF/services/com.google.appengine.tools.development.LocalRpcService"で以下のように指定されている。
com.google.appengine.api.users.dev.LocalUserService com.google.appengine.api.datastore.dev.LocalDatastoreService
com.google.appengine.api.memcache.dev.LocalMemcacheService
com.google.appengine.api.urlfetch.dev.LocalURLFetchService
com.google.appengine.api.mail.dev.LocalMailService
com.google.appengine.api.images.dev.LocalImagesService
ちなみに、Webコンテナも同様にサービスとして実行時に解決されていて、インターフェースは"com.google.appengine.tools.development.ContainerService"で、定義は"appengine-api-1.0-runtime-1.2.1.jar(例のごとくmvnsearchのリポジトリ内のjarでの話)の、"META-INF/services/com.google.appengine.tools.development.ContainerService"で以下のように定義されている。
com.google.appengine.tools.development.JettyContainerService
0 件のコメント:
コメントを投稿