changeset 381:44a16c27bed6

Handle changes in ExecResult api
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 15 Feb 2012 15:48:32 +0400
parents 3bc8125671b8
children 01f8d8c216b2
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/LogCommand.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java
diffstat 3 files changed, 15 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java	Wed Feb 15 13:23:53 2012 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java	Wed Feb 15 15:48:32 2012 +0400
@@ -161,8 +161,4 @@
       }
     }
   }
-
-  public byte[] getByteOut() {
-    return myDelegate.getByteOut();
-  }
 }
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/LogCommand.java	Wed Feb 15 13:23:53 2012 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/LogCommand.java	Wed Feb 15 15:48:32 2012 +0400
@@ -25,7 +25,7 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -75,6 +75,7 @@
 
   public List<ChangeSet> execute() throws VcsException {
     GeneralCommandLine cli = createCommandLine();
+    cli.setCharset(Charset.forName("UTF-8"));
     cli.addParameters("--encoding", "UTF-8");
     cli.addParameter("log");
     cli.addParameter("-v");
@@ -97,7 +98,7 @@
     }
 
     CommandResult res = runCommand(cli);
-    String output = getStdout(res);
+    String output = res.getStdout();
     try {
       List<ChangeSet> changes = parseChangeSetsXml(output);
       if (myCalculateParents)
@@ -108,15 +109,6 @@
     }
   }
 
-  private String getStdout(CommandResult res) throws VcsException {
-    try {
-      return new String(res.getByteOut(), "UTF-8");
-    } catch (UnsupportedEncodingException e) {
-      throw new VcsException("Error while reading output", e);
-    }
-  }
-
-
   private List<ChangeSet> parseChangeSetsXml(@NotNull final String xml) throws JDOMException, IOException, ParseException {
     if ("".equals(xml))
       return Collections.emptyList();
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java	Wed Feb 15 13:23:53 2012 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java	Wed Feb 15 15:48:32 2012 +0400
@@ -4,12 +4,14 @@
 import jetbrains.buildServer.util.StringUtil;
 import org.jetbrains.annotations.NotNull;
 
+import java.nio.charset.Charset;
 import java.util.Collections;
 import java.util.Set;
 
 public class MercurialCommandLine extends GeneralCommandLine {
 
   private final Set<String> myPrivateData;
+  private Charset myCharset;
 
   public MercurialCommandLine() {
     this(Collections.<String>emptySet());
@@ -31,6 +33,16 @@
     super.addParameter(escaped);
   }
 
+  @Override
+  public void setCharset(@NotNull Charset charset) {
+    myCharset = charset;
+  }
+
+  @Override
+  public Charset getCharset() {
+    return myCharset != null ? myCharset : super.getCharset();
+  }
+
   private String escape(String s) {
     return StringUtil.escapeQuotesIfWindows(s);
   }