From 771966779750d0cf0ac21d1e711397a1fba74dff Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Mon, 30 Jul 2018 21:25:26 +0200 Subject: [PATCH] SONAR-11077 log nb of inserts in CE PersistMeasuresStep --- .../step/PersistMeasuresStep.java | 6 ++++- .../step/PersistMeasuresStepTest.java | 25 +++++++++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java index c303dfef113..7da1caa2529 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java @@ -79,13 +79,16 @@ public class PersistMeasuresStep implements ComputationStep { @Override public void execute(ComputationStep.Context context) { try (DbSession dbSession = dbClient.openSession(true)) { - new DepthTraversalTypeAwareCrawler(new MeasureVisitor(dbSession)).visit(treeRootHolder.getRoot()); + MeasureVisitor visitor = new MeasureVisitor(dbSession); + new DepthTraversalTypeAwareCrawler(visitor).visit(treeRootHolder.getRoot()); dbSession.commit(); + context.getStatistics().add("inserts", visitor.inserts); } } private class MeasureVisitor extends TypeAwareVisitorAdapter { private final DbSession session; + private int inserts = 0; private MeasureVisitor(DbSession session) { super(CrawlerDepthLimit.LEAVES, PRE_ORDER); @@ -133,6 +136,7 @@ public class PersistMeasuresStep implements ComputationStep { measuresByMetricKey.getValue().stream().filter(NonEmptyMeasure.INSTANCE).forEach(measure -> { MeasureDto measureDto = measureToMeasureDto.toMeasureDto(measure, metric, component); measureDao.insert(session, measureDto); + inserts++; }); } } diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java index fd19e2974c2..7326cab8927 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java @@ -95,7 +95,7 @@ public class PersistMeasuresStepTest extends BaseStepTest { measureRepository.addRawMeasure(REF_3, STRING_METRIC.getKey(), newMeasureBuilder().create("dir-value")); measureRepository.addRawMeasure(REF_4, STRING_METRIC.getKey(), newMeasureBuilder().create("file-value")); - execute(true); + TestComputationStepContext context = execute(true); // project, module and dir measures are persisted, but not file measures assertThat(db.countRowsOfTable("project_measures")).isEqualTo(3); @@ -103,6 +103,7 @@ public class PersistMeasuresStepTest extends BaseStepTest { assertThat(selectMeasure("module-uuid", STRING_METRIC).get().getData()).isEqualTo("module-value"); assertThat(selectMeasure("dir-uuid", STRING_METRIC).get().getData()).isEqualTo("dir-value"); assertThatMeasuresAreNotPersisted("file-uuid"); + assertNbOfInserts(context, 3); } @Test @@ -115,7 +116,7 @@ public class PersistMeasuresStepTest extends BaseStepTest { measureRepository.addRawMeasure(REF_3, STRING_METRIC.getKey(), newMeasureBuilder().create("dir-value")); measureRepository.addRawMeasure(REF_4, STRING_METRIC.getKey(), newMeasureBuilder().create("file-value")); - execute(false); + TestComputationStepContext context = execute(false); // project, module and dir measures are persisted, but not file measures assertThat(db.countRowsOfTable("project_measures")).isEqualTo(2); @@ -123,6 +124,7 @@ public class PersistMeasuresStepTest extends BaseStepTest { assertThat(selectMeasure("module-uuid", STRING_METRIC).get().getData()).isEqualTo("module-value"); assertThatMeasuresAreNotPersisted("dir-uuid"); assertThatMeasuresAreNotPersisted("file-uuid"); + assertNbOfInserts(context, 2); } @Test @@ -131,10 +133,11 @@ public class PersistMeasuresStepTest extends BaseStepTest { measureRepository.addRawMeasure(REF_1, STRING_METRIC.getKey(), newMeasureBuilder().createNoValue()); measureRepository.addRawMeasure(REF_1, INT_METRIC.getKey(), newMeasureBuilder().createNoValue()); - execute(false); + TestComputationStepContext context = execute(false); assertThatMeasureIsNotPersisted("project-uuid", STRING_METRIC); assertThatMeasureIsNotPersisted("project-uuid", INT_METRIC); + assertNbOfInserts(context, 0); } @Test @@ -142,11 +145,12 @@ public class PersistMeasuresStepTest extends BaseStepTest { prepareProject(); measureRepository.addRawMeasure(REF_1, INT_METRIC.getKey(), newMeasureBuilder().setVariation(42.0).createNoValue()); - execute(false); + TestComputationStepContext context = execute(false); MeasureDto persistedMeasure = selectMeasure("project-uuid", INT_METRIC).get(); assertThat(persistedMeasure.getValue()).isNull(); assertThat(persistedMeasure.getVariation()).isEqualTo(42.0); + assertNbOfInserts(context, 1); } @Test @@ -158,11 +162,12 @@ public class PersistMeasuresStepTest extends BaseStepTest { measureRepository.addRawMeasure(REF_2, STRING_METRIC.getKey(), newMeasureBuilder().create("subview-value")); measureRepository.addRawMeasure(REF_3, STRING_METRIC.getKey(), newMeasureBuilder().create("project-value")); - execute(true); + TestComputationStepContext context = execute(true); assertThat(db.countRowsOfTable("project_measures")).isEqualTo(2); assertThat(selectMeasure("view-uuid", STRING_METRIC).get().getData()).isEqualTo("view-value"); assertThat(selectMeasure("subview-uuid", STRING_METRIC).get().getData()).isEqualTo("subview-value"); + assertNbOfInserts(context, 2); } private void prepareProject() { @@ -216,9 +221,11 @@ public class PersistMeasuresStepTest extends BaseStepTest { assertThatMeasureIsNotPersisted(componentUuid, INT_METRIC); } - private void execute(boolean persistDirectories) { + private TestComputationStepContext execute(boolean persistDirectories) { + TestComputationStepContext context = new TestComputationStepContext(); new PersistMeasuresStep(dbClient, metricRepository, new MeasureToMeasureDto(analysisMetadataHolder, treeRootHolder), treeRootHolder, measureRepository, persistDirectories) - .execute(new TestComputationStepContext()); + .execute(context); + return context; } private Optional selectMeasure(String componentUuid, Metric metric) { @@ -237,6 +244,10 @@ public class PersistMeasuresStepTest extends BaseStepTest { return componentDto; } + private static void assertNbOfInserts(TestComputationStepContext context, int expected) { + context.getStatistics().assertValue("inserts", expected); + } + @Override protected ComputationStep step() { return new PersistMeasuresStep(dbClient, metricRepository, new MeasureToMeasureDto(analysisMetadataHolder, treeRootHolder), treeRootHolder, measureRepository, true); -- 2.39.5