protected CloudGitApplication createApplication() throws ServerRuntimeException {
    return myAgentTaskExecutor.execute(
        new Computable<CloudGitApplication>() {

          @Override
          public CloudGitApplication compute() {
            return myDeployment.createApplication();
          }
        });
  }
  public void undeploy() throws ServerRuntimeException {
    if (!confirmUndeploy()) {
      throw new ServerRuntimeException("Undeploy cancelled");
    }
    myAgentTaskExecutor.execute(
        new Computable<Object>() {

          @Override
          public Object compute() {
            myDeployment.deleteApplication();
            return null;
          }
        });
  }
  public void connect(final ServerConnector.ConnectionCallback<DC> callback) {
    myAgentTaskExecutor.execute(
        new Computable() {

          @Override
          public Object compute() {
            doConnect(
                myConfiguration,
                new CloudAgentLogger() {

                  @Override
                  public void debugEx(Exception e) {
                    LOG.debug(e);
                  }

                  @Override
                  public void debug(String message) {
                    LOG.debug(message);
                  }
                });
            return null;
          }
        },
        new CallbackWrapper() {

          @Override
          public void onSuccess(Object result) {
            callback.connected(CloudGitServerRuntimeInstanceBase.this);
          }

          @Override
          public void onError(String message) {
            callback.errorOccurred(message);
          }
        });
  }