com.google.appengine.tools.development
Class ApiProxyLocalImpl

java.lang.Object
  extended by com.google.appengine.tools.development.ApiProxyLocalImpl
All Implemented Interfaces:
ApiProxyLocal, com.google.apphosting.api.ApiProxy.Delegate

public class ApiProxyLocalImpl
extends java.lang.Object
implements ApiProxyLocal

Implements ApiProxy.Delegate such that the requests are dispatched to local service implementations. Used for both the DevAppServer and for unit testing services.


Method Summary
 com.google.appengine.tools.development.LocalRpcService getService(java.lang.String pkg)
          Get the LocalRpcService identified by the given package.
 void log(com.google.apphosting.api.ApiProxy.Environment environment, com.google.apphosting.api.ApiProxy.LogRecord record)
           
 byte[] makeSyncCall(com.google.apphosting.api.ApiProxy.Environment environment, java.lang.String packageName, java.lang.String methodName, byte[] requestBytes)
          Make a synchronous call to the specified method in the specified API package.
 void setProperties(java.util.Map<java.lang.String,java.lang.String> properties)
          Resets the service properties to properties.
 void setProperty(java.lang.String property, java.lang.String value)
          Sets an individual service property.
 void stop()
          Stops all services started by this ApiProxy and releases all of its resources.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

log

public void log(com.google.apphosting.api.ApiProxy.Environment environment,
                com.google.apphosting.api.ApiProxy.LogRecord record)
Specified by:
log in interface com.google.apphosting.api.ApiProxy.Delegate

makeSyncCall

public byte[] makeSyncCall(com.google.apphosting.api.ApiProxy.Environment environment,
                           java.lang.String packageName,
                           java.lang.String methodName,
                           byte[] requestBytes)
Description copied from interface: com.google.apphosting.api.ApiProxy.Delegate
Make a synchronous call to the specified method in the specified API package.

Note: if you have not installed a Delegate and called setEnvironmentForCurrentThread in this thread before calling this method, it will act like no API calls are available (i.e. always throw CallNotFoundException).

Specified by:
makeSyncCall in interface com.google.apphosting.api.ApiProxy.Delegate
Parameters:
environment - the current request environment.
packageName - the name of the API package.
methodName - the name of the method within the API package.
requestBytes - a byte array containing the serialized form of the request protocol buffer.
Returns:
a byte array containing the serialized form of the response protocol buffer.

setProperty

public void setProperty(java.lang.String property,
                        java.lang.String value)
Description copied from interface: ApiProxyLocal
Sets an individual service property.

Specified by:
setProperty in interface ApiProxyLocal
Parameters:
property - name of the property to set
value - new value of the property

setProperties

public void setProperties(java.util.Map<java.lang.String,java.lang.String> properties)
Resets the service properties to properties.

Specified by:
setProperties in interface ApiProxyLocal
Parameters:
properties - a maybe null set of properties for local services.

stop

public void stop()
Stops all services started by this ApiProxy and releases all of its resources. TODO(tobyr) When we fix DevAppServer to support hot redeployment, it MUST call into stop when it is attempting to GC a webapp (otherwise background threads won't be stopped, etc...)

Specified by:
stop in interface ApiProxyLocal

getService

public final com.google.appengine.tools.development.LocalRpcService getService(java.lang.String pkg)
Description copied from interface: ApiProxyLocal
Get the LocalRpcService identified by the given package. This method should really only be used by tests.

Specified by:
getService in interface ApiProxyLocal
Parameters:
pkg - The package identifying the service we want.
Returns:
The requested service, or null if no service identified by the given package is available.