]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5793 Enhance logs with each step
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Tue, 28 Oct 2014 09:32:25 +0000 (10:32 +0100)
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Tue, 28 Oct 2014 09:32:35 +0000 (10:32 +0100)
server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java
server/sonar-server/src/main/java/org/sonar/server/computation/ComputationStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/DbCleanerStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/GetAndSetProjectStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/IndexProjectIssuesStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/SwitchSnapshotStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/SynchronizeProjectPermissionsStep.java

index f0cd88be1f0e787cbfe59f9d28ae8d52229f553b..be2499e31a3b343d67b5f1ba6500dd3548a37be2 100644 (file)
@@ -20,6 +20,8 @@
 
 package org.sonar.server.computation;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.sonar.api.ServerComponent;
 import org.sonar.core.computation.db.AnalysisReportDto;
 import org.sonar.core.persistence.DbSession;
@@ -30,6 +32,8 @@ import org.sonar.server.db.DbClient;
  * since 5.0
  */
 public class ComputationService implements ServerComponent {
+  private static final Logger LOG = LoggerFactory.getLogger(ComputationService.class);
+
   private final DbClient dbClient;
   private final ComputationStepRegistry stepRegistry;
 
@@ -39,15 +43,20 @@ public class ComputationService implements ServerComponent {
   }
 
   public void analyzeReport(AnalysisReportDto report) {
+    LOG.info(String.format("### Analysis '%s' of project '%s' started ###", report.getId(), report.getProjectKey()));
+
     // Synchronization of lot of data can only be done with a batch session for the moment
     DbSession session = dbClient.openSession(true);
 
     try {
       for (ComputationStep step : stepRegistry.steps()) {
+        LOG.info(String.format("# %s step started...", step.description()));
         step.execute(session, report);
+        LOG.info(String.format("# %s step finished", step.description()));
       }
     } finally {
       MyBatis.closeQuietly(session);
+      LOG.info(String.format("### Analysis '%s' finished ###", report.getId()));
     }
   }
 }
index d4cb50bda255ab8354b19d46c057803e52b7a25c..8cfb03e372d7de025336933e5fb8ef7c8a85b08f 100644 (file)
@@ -25,5 +25,8 @@ import org.sonar.core.computation.db.AnalysisReportDto;
 import org.sonar.core.persistence.DbSession;
 
 public interface ComputationStep extends ServerComponent {
+
   void execute(DbSession session, AnalysisReportDto analysisReportDto);
+
+  String description();
 }
index 6556b5cb28fa0328c31f1f014887257e6dc7a830..7b9be40d236c4eb5c719304bdacb8befe94e58d2 100644 (file)
@@ -35,4 +35,9 @@ public class DbCleanerStep implements ComputationStep {
   public void execute(DbSession session, AnalysisReportDto report) {
     purgeTask.purge(report.getProject().getId());
   }
+
+  @Override
+  public String description() {
+    return "Purge database";
+  }
 }
index 7eb4091cab2bde5343411e0f056f16c083d38659..4277cb21bea037d7737f74e0ab9b8f3d10e93f84 100644 (file)
@@ -38,4 +38,9 @@ public class GetAndSetProjectStep implements ComputationStep {
     ComponentDto project = dbClient.componentDao().getByKey(session, report.getProjectKey());
     report.setProject(project);
   }
+
+  @Override
+  public String description() {
+    return "Retrieve project based on identifier";
+  }
 }
index 96fa7abbf3b9c747fe69f7968d308da7dc975b77..83014c6b9bb6a667147ca2c401818fbef55f82e2 100644 (file)
@@ -42,6 +42,11 @@ public class IndexProjectIssuesStep implements ComputationStep {
     indexProjectIssues(session, report.getProjectKey());
   }
 
+  @Override
+  public String description() {
+    return "Update issues index";
+  }
+
   private void indexProjectIssues(DbSession session, String projectKey) {
     dbClient.issueDao().synchronizeAfter(session,
       index.get(IssueIndex.class).getLastSynchronization(),
index 368aeeed36292b138b0fb856a16cbd0e7d03ee6c..a1f3dbf79938d258f434ea67a0c1bc2a16de1d18 100644 (file)
@@ -41,6 +41,11 @@ public class SwitchSnapshotStep implements ComputationStep {
     enableCurrentSnapshot(session, report);
   }
 
+  @Override
+  public String description() {
+    return "Switch last snapshot flag";
+  }
+
   private void disablePreviousSnapshot(DbSession session, AnalysisReportDto report) {
     SnapshotDto referenceSnapshot = dao.getByKey(session, report.getSnapshotId());
 
index 14f0b44cf33a13fb72455caf0d7c16c768179a74..2a50b59fcb0f2156031a3fe5e2616b3c84d4ee84 100644 (file)
@@ -41,6 +41,11 @@ public class SynchronizeProjectPermissionsStep implements ComputationStep {
     synchronizeProjectPermissionsIfNotFound(session, report);
   }
 
+  @Override
+  public String description() {
+    return "Synchronize project permissions";
+  }
+
   private void synchronizeProjectPermissionsIfNotFound(DbSession session, AnalysisReportDto report) {
     if (index.get(IssueAuthorizationIndex.class).getNullableByKey(report.getProjectKey()) == null) {
       permissionService.synchronizePermissions(session, report.getProject().uuid());