ApiProxy (Google App Engine API for Java)

com.google.apphosting.api

Class ApiProxy

  • java.lang.Object
    • com.google.apphosting.api.ApiProxy


  • public class ApiProxy
    extends java.lang.Object
    ApiProxy is a static class that serves as the collection point for all API calls from user code into the application server. It is responsible for proxying makeSyncCall() calls to a delegate, which actually implements the API calls. It also stores an Environment for each thread, which contains additional user-visible information about the request.
    • Method Detail

      • makeAsyncCall

        public static java.util.concurrent.Future<byte[]> makeAsyncCall(java.lang.String packageName,
                                                                        java.lang.String methodName,
                                                                        byte[] request,
                                                                        ApiProxy.ApiConfig apiConfig)
        Make an asynchronous 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. the returned Future will throw CallNotFoundException).

        There is a limit to the number of simultaneous asynchronous API calls (currently 100). Invoking this method while this number of API calls are outstanding will block.

        Parameters:
        packageName - the name of the API package.
        methodName - the name of the method within the API package.
        request - a byte array containing the serialized form of the request protocol buffer.
        apiConfig - that specifies API-specific configuration parameters.
        Returns:
        a Future that will resolve to a byte array containing the serialized form of the response protocol buffer on success, or throw one of the exceptions documented for makeSyncCall(String, String, byte[], ApiConfig) on failure.
      • flushLogs

        public static void flushLogs()
        Synchronously flush all pending application logs.
      • setDelegate

        public static void setDelegate(ApiProxy.Delegate aDelegate)
        Sets a delegate to which we will proxy requests. This should not be used from user-code.
      • getDelegate

        public static ApiProxy.Delegate getDelegate()
        Gets the delegate to which we will proxy requests. This should really only be called from test-code where, for example, you might want to downcast and invoke methods on a specific implementation that you happen to know has been installed.
      • setEnvironmentForCurrentThread

        public static void setEnvironmentForCurrentThread(ApiProxy.Environment environment)
        Sets an environment for the current thread. This should not be used from user-code.
      • clearEnvironmentForCurrentThread

        public static void clearEnvironmentForCurrentThread()
        Removes any environment associated with the current thread. This should not be used from user-code.
      • setEnvironmentFactory

        public static void setEnvironmentFactory(ApiProxy.EnvironmentFactory factory)
        Set the EnvironmentFactory instance to use, which will be used to create Environment instances when a thread local one is not set. This should not be used from user-code, and it should only be called once, with a value that must not be null.
      • getRequestThreads

        public static java.util.List<java.lang.Thread> getRequestThreads()
        Returns a list of all threads which are currently running requests.