com.google.appengine.tools.remoteapi

## Class RemoteApiInstaller

- java.lang.Object
- - com.google.appengine.tools.remoteapi.RemoteApiInstaller

-     public class RemoteApiInstaller
      extends java.lang.Object

  Installs and uninstalls the remote API. While the RemoteApi is installed, all App Engine calls made by the same thread that performed the installation will be sent to a remote server.

  Instances of this class can only be used on a single thread.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RemoteApiInstaller()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getRpcCount()` Returns the number of RPC calls made since the API was installed or `resetRpcCount()` was called.
    `void` | `install(RemoteApiOptions options)` Installs the remote API using the provided options.
    `void` | `logMethodCalls()` Starts logging remote API method calls to the console.
    `static Cookie` | `makeDevAppServerCookie(java.lang.String hostname, java.lang.String email)`
    `void` | `resetRpcCount()`
    `java.lang.String` | `serializeCredentials()` Returns a string containing the cookies associated with this connection.
    `void` | `uninstall()` Uninstalls the remote API.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RemoteApiInstaller

          public RemoteApiInstaller()

  - ### Method Detail

    - #### install

          public void install(RemoteApiOptions options)
                       throws java.io.IOException

      Installs the remote API using the provided options. Logs into the remote application using the credentials available via these options.

      Warning: This method only installs the remote API on the current thread. Do not share this instance across threads!

      Throws:
        `java.lang.IllegalArgumentException` - if the server or credentials weren't provided.
        `java.lang.IllegalStateException` - if already installed
        `LoginException` - if unable to log in.
        `java.io.IOException` - if unable to connect to the remote API.

    - #### uninstall

          public void uninstall()

      Uninstalls the remote API. If any async calls are in progress, waits for them to finish.

      If the remote API isn't installed, this method has no effect.

    - #### serializeCredentials

          public java.lang.String serializeCredentials()

      Returns a string containing the cookies associated with this connection. The string can be used to create a new connection without logging in again by using `RemoteApiOptions.reuseCredentials(java.lang.String, java.lang.String)`. By storing credentials to a file, we can avoid repeated password prompts in command-line tools. (Note that the cookies will expire based on the setting under Application Settings in the admin console.)

      Beware: it's important to keep this string private, as it allows admin access to the app as the current user.

    - #### logMethodCalls

          public void logMethodCalls()

      Starts logging remote API method calls to the console. (Useful within tests.)

    - #### resetRpcCount

          public void resetRpcCount()

    - #### getRpcCount

          public int getRpcCount()

      Returns the number of RPC calls made since the API was installed or `resetRpcCount()` was called.

    - #### makeDevAppServerCookie

          public static Cookie makeDevAppServerCookie(java.lang.String hostname,
                                      java.lang.String email)