changeset 369:0b2e9154d26e

Merge branch Eluru-6.5.x
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 08 Feb 2012 10:43:17 +0400
parents 061e5f3a6bad (current diff) 7d9620034403 (diff)
children 64cb622b3e89
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/BaseCommand.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/VcsRootCommand.java
diffstat 3 files changed, 41 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/BaseCommand.java	Fri Feb 03 13:23:18 2012 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/BaseCommand.java	Wed Feb 08 10:43:17 2012 +0400
@@ -17,10 +17,12 @@
 
 import com.intellij.execution.configurations.GeneralCommandLine;
 import com.intellij.openapi.util.SystemInfo;
-import jetbrains.buildServer.util.StringUtil;
 import org.jetbrains.annotations.NotNull;
 
 import java.io.File;
+import java.util.Set;
+
+import static java.util.Collections.emptySet;
 
 /**
  * @author pavel
@@ -48,24 +50,13 @@
   }
 
   protected GeneralCommandLine createCL() {
-    GeneralCommandLine cl = new EscapingCommandLineDecorator();
+    GeneralCommandLine cl = new MercurialCommandLine(getPrivateData());
     setupExecutable(cl);
     return cl;
   }
 
-  /**
-   * Escape its parameters
-   */
-  private static class EscapingCommandLineDecorator extends GeneralCommandLine {
-    @Override
-    public void addParameter(@NotNull String parameter) {
-      String escaped = escape(parameter);
-      super.addParameter(escaped);
-    }
-
-    private String escape(String s) {
-      return StringUtil.escapeQuotesIfWindows(s);
-    }
+  protected Set<String> getPrivateData() {
+    return emptySet();
   }
 
   /**
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java	Wed Feb 08 10:43:17 2012 +0400
@@ -0,0 +1,32 @@
+package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;
+
+import com.intellij.execution.configurations.GeneralCommandLine;
+import jetbrains.buildServer.util.StringUtil;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Set;
+
+public class MercurialCommandLine extends GeneralCommandLine {
+
+  private final Set<String> myPrivateData;
+
+  public MercurialCommandLine(@NotNull Set<String> privateData) {
+    myPrivateData = privateData;
+  }
+
+  @Override
+  public String getCommandLineString() {
+    String original = super.getCommandLineString();
+    return CommandUtil.removePrivateData(original, myPrivateData);
+  }
+
+  @Override
+  public void addParameter(@NotNull String parameter) {
+    String escaped = escape(parameter);
+    super.addParameter(escaped);
+  }
+
+  private String escape(String s) {
+    return StringUtil.escapeQuotesIfWindows(s);
+  }
+}
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/VcsRootCommand.java	Fri Feb 03 13:23:18 2012 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/VcsRootCommand.java	Wed Feb 08 10:43:17 2012 +0400
@@ -35,7 +35,8 @@
     return CommandUtil.runCommand(cli, with.privateData(getPrivateData()));
   }
 
-  private Set<String> getPrivateData() {
-    return Collections.singleton(mySettings.getPassword());
+  protected Set<String> getPrivateData() {
+    String password = mySettings.getPassword();
+    return password != null ? Collections.singleton(password) : Collections.<String>emptySet();
   }
 }