diff mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialBuildLogProgress.java @ 891:d1a5fc6c1d6e

Log agent-side checkout progress with blocks
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 07 Nov 2014 14:55:14 +0100
parents 30e624f8c237
children 7bf4d943d5bb
line wrap: on
line diff
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialBuildLogProgress.java	Fri Nov 07 14:30:28 2014 +0100
+++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialBuildLogProgress.java	Fri Nov 07 14:55:14 2014 +0100
@@ -19,9 +19,12 @@
 import jetbrains.buildServer.agent.BuildProgressLogger;
 import org.jetbrains.annotations.NotNull;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 public class MercurialBuildLogProgress implements MercurialProgress {
 
   private final BuildProgressLogger myLogger;
+  private final AtomicInteger myBlockMessageCount = new AtomicInteger(0);
   private String myPrevMessage;
   private int myPrevPercents;
 
@@ -30,15 +33,19 @@
   }
 
   public void progressStarted(@NotNull String progressMessage) {
+    myBlockMessageCount.set(0);
+    myLogger.activityStarted(progressMessage, "CUSTOM_HG_PROGRESS");
+  }
+
+  public void reportProgress(@NotNull String progressMessage) {
+    myBlockMessageCount.incrementAndGet();
     myLogger.message(progressMessage);
   }
 
   public void progressFinished(@NotNull String progressMessage) {
-    myLogger.message(progressMessage);
-  }
-
-  public void reportProgress(@NotNull String progressMessage) {
-    myLogger.message(progressMessage);
+    if (myBlockMessageCount.get() == 0)
+      myLogger.message("");//add an empty message so that the empty block is shown in UI
+    myLogger.activityFinished(progressMessage, "CUSTOM_HG_PROGRESS");
   }
 
   public void reportProgress(float percentage, @NotNull String stage) {