@Override
 public void tearDown() throws Exception {
   if (textEditor != null) {
     textEditor.setText(originalEditorText);
     textEditor.save();
     textEditor.close();
   }
   super.tearDown();
 }
  public static void modifyAndRepublishApplication(String applicationName) {
    TreeViewerHandler treeViewerHandler = TreeViewerHandler.getInstance();
    ProjectExplorer explorer = new ProjectExplorer();
    explorer.getProject(applicationName).getProjectItem("diy", "index.html").open();

    TextEditor editor = new TextEditor("index.html");
    editor.setText(ID407CreateApplicationFromExistingAndChangeRemoteNameTest.HTML_TEXT);
    editor.save();
    editor.close();

    ServersView servers = new ServersView();
    servers.open();
    treeViewerHandler.getTreeItem(new DefaultTree(), applicationName + " at OpenShift").select();

    new ContextMenu(OpenShiftLabel.ContextMenu.PUBLISH).select();

    try {
      new WaitUntil(new ShellWithTextIsAvailable("Identify Yourself"), TimePeriod.NORMAL);
      new DefaultShell("Identify Yourself").setFocus();
      new PushButton("OK").click();
    } catch (WaitTimeoutExpiredException ex) {
    }

    new WaitUntil(
        new ShellWithTextIsAvailable(OpenShiftLabel.Shell.PUBLISH_CHANGES), TimePeriod.LONG);

    new DefaultShell(OpenShiftLabel.Shell.PUBLISH_CHANGES);
    new DefaultStyledText(0).setText("Commit message");

    new WaitUntil(
        new ButtonWithTextIsEnabled(new PushButton(OpenShiftLabel.Button.COMMIT_PUBLISH)),
        TimePeriod.NORMAL);

    new PushButton(OpenShiftLabel.Button.COMMIT_PUBLISH).click();

    new WaitWhile(new JobIsRunning(), TimePeriod.LONG);

    AbstractWait.sleep(TimePeriod.NORMAL);

    try {
      new WaitUntil(
          new ApplicationIsDeployedSuccessfully(
              Datastore.USERNAME, Datastore.DOMAIN, applicationName, "OpSh"),
          TimePeriod.VERY_LONG);
      // PASS
    } catch (WaitTimeoutExpiredException ex) {
      fail(
          "Application has not been deployed successfully. Browser does not "
              + "contain text of existing project which has been deployed.");
    }
  }
 @Override
 public void tearDown() throws Exception {
   jspEditor.close();
   super.tearDown();
 }