public void deploy() throws ServerRuntimeException {
    CloudGitApplication application = mySourceHandler.deploy();

    if (myLogManager != null) {
      LoggingHandler loggingHandler = myLogManager.getMainLoggingHandler();
      loggingHandler.print("Application is available at ");
      loggingHandler.printHyperlink(application.getWebUrl());
      loggingHandler.print("\n");
    }
  }
    public void handle() {
      myLoggingHandler.print("You may need to ");
      myLoggingHandler.printHyperlink(
          "upload SSH public key",
          new HyperlinkInfo() {

            @Override
            public void navigate(Project project) {
              chooseKey();
            }
          });
      myLoggingHandler.print("\n");
    }
  public void deploy(ServerRuntimeInstance.DeploymentOperationCallback callback) {
    try {
      CloudApplication application = deploy();

      if (myLogManager != null) {
        LoggingHandler loggingHandler = myLogManager.getMainLoggingHandler();
        loggingHandler.print("Application is available at ");
        loggingHandler.printHyperlink(application.getWebUrl());
        loggingHandler.print("\n");
      }

      callback.succeeded(this);
    } catch (ServerRuntimeException e) {
      callback.errorOccurred(e.getMessage());
    }
  }