From: Simon Brandhof Date: Mon, 30 Jul 2018 21:17:11 +0000 (+0200) Subject: SONAR-11077 log nb of SQL inserts in CE PersistCrossProjectDuplicationsStep X-Git-Tag: 7.5~663 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c1931745e1dfe85df57306b325469b638e588910;p=sonarqube.git SONAR-11077 log nb of SQL inserts in CE PersistCrossProjectDuplicationsStep --- diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java index f5b2bd3f280..914fb03604d 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java @@ -65,8 +65,10 @@ public class PersistCrossProjectDuplicationIndexStep implements ComputationStep try (DbSession dbSession = dbClient.openSession(true)) { Component project = treeRootHolder.getRoot(); - new DepthTraversalTypeAwareCrawler(new DuplicationVisitor(dbSession, analysisMetadataHolder.getUuid())).visit(project); + DuplicationVisitor visitor = new DuplicationVisitor(dbSession, analysisMetadataHolder.getUuid()); + new DepthTraversalTypeAwareCrawler(visitor).visit(project); dbSession.commit(); + context.getStatistics().add("inserts", visitor.count); } } @@ -74,6 +76,7 @@ public class PersistCrossProjectDuplicationIndexStep implements ComputationStep private final DbSession session; private final String analysisUuid; + private int count = 0; private DuplicationVisitor(DbSession session, String analysisUuid) { super(CrawlerDepthLimit.FILE, PRE_ORDER); @@ -107,13 +110,14 @@ public class PersistCrossProjectDuplicationIndexStep implements ComputationStep indexInFile++; } } + count += indexInFile; } } @Override public String getDescription() { - return "Persist cross project duplications index"; + return "Persist cross project duplications"; } } diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java index 19f343fc1dc..080a10e3a7a 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java @@ -96,7 +96,8 @@ public class PersistCrossProjectDuplicationIndexStepTest { when(crossProjectDuplicationStatusHolder.isEnabled()).thenReturn(true); reportReader.putDuplicationBlocks(FILE_1_REF, singletonList(CPD_TEXT_BLOCK)); - underTest.execute(new TestComputationStepContext()); + TestComputationStepContext context = new TestComputationStepContext(); + underTest.execute(context); Map dto = dbTester.selectFirst("select HASH, START_LINE, END_LINE, INDEX_IN_FILE, COMPONENT_UUID, ANALYSIS_UUID from duplications_index"); assertThat(dto.get("HASH")).isEqualTo(CPD_TEXT_BLOCK.getHash()); @@ -105,6 +106,7 @@ public class PersistCrossProjectDuplicationIndexStepTest { assertThat(dto.get("INDEX_IN_FILE")).isEqualTo(0L); assertThat(dto.get("COMPONENT_UUID")).isEqualTo(FILE_1.getUuid()); assertThat(dto.get("ANALYSIS_UUID")).isEqualTo(ANALYSIS_UUID); + context.getStatistics().assertValue("inserts", 1); } @Test @@ -118,7 +120,8 @@ public class PersistCrossProjectDuplicationIndexStepTest { .setEndLine(15) .build())); - underTest.execute(new TestComputationStepContext()); + TestComputationStepContext context = new TestComputationStepContext(); + underTest.execute(context); List> dtos = dbTester.select("select HASH, START_LINE, END_LINE, INDEX_IN_FILE, COMPONENT_UUID, ANALYSIS_UUID from duplications_index"); assertThat(dtos).extracting("HASH").containsOnly(CPD_TEXT_BLOCK.getHash(), "b1234353e96320ff"); @@ -127,6 +130,7 @@ public class PersistCrossProjectDuplicationIndexStepTest { assertThat(dtos).extracting("INDEX_IN_FILE").containsOnly(0L, 1L); assertThat(dtos).extracting("COMPONENT_UUID").containsOnly(FILE_1.getUuid()); assertThat(dtos).extracting("ANALYSIS_UUID").containsOnly(ANALYSIS_UUID); + context.getStatistics().assertValue("inserts", 2); } @Test @@ -134,9 +138,11 @@ public class PersistCrossProjectDuplicationIndexStepTest { when(crossProjectDuplicationStatusHolder.isEnabled()).thenReturn(true); reportReader.putDuplicationBlocks(FILE_1_REF, Collections.emptyList()); - underTest.execute(new TestComputationStepContext()); + TestComputationStepContext context = new TestComputationStepContext(); + underTest.execute(context); assertThat(dbTester.countRowsOfTable("duplications_index")).isEqualTo(0); + context.getStatistics().assertValue("inserts", 0); } @Test @@ -144,9 +150,11 @@ public class PersistCrossProjectDuplicationIndexStepTest { when(crossProjectDuplicationStatusHolder.isEnabled()).thenReturn(false); reportReader.putDuplicationBlocks(FILE_1_REF, singletonList(CPD_TEXT_BLOCK)); - underTest.execute(new TestComputationStepContext()); + TestComputationStepContext context = new TestComputationStepContext(); + underTest.execute(context); assertThat(dbTester.countRowsOfTable("duplications_index")).isEqualTo(0); + context.getStatistics().assertValue("inserts", null); } }