]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8743 Persist only leak period in compute engine
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 6 Feb 2017 14:42:35 +0000 (15:42 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 9 Feb 2017 11:15:10 +0000 (12:15 +0100)
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/measure/MeasureDtoToMeasure.java
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/measure/MeasureToMeasureDto.java
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/PersistAnalysisStep.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/MeasureDtoToMeasureTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/MeasureToMeasureDtoTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistMeasuresStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ReportPersistAnalysisStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ViewsPersistAnalysisStepTest.java

index 7e769708ce23eb67a1e0985e70abf98073ce1ed2..1869cffbbd03d6a3a8998dc905d3060c199a0394 100644 (file)
@@ -123,21 +123,11 @@ public class MeasureDtoToMeasure {
   }
 
   private static boolean hasAnyVariation(MeasureDto measureDto) {
-    for (int i = 1; i < 6; i++) {
-      if (measureDto.getVariation(i) != null) {
-        return true;
-      }
-    }
-    return false;
+    return measureDto.getVariation() != null;
   }
 
   private static MeasureVariations createVariations(MeasureDto measureDto) {
-    return new MeasureVariations(
-      measureDto.getVariation(1),
-      measureDto.getVariation(2),
-      measureDto.getVariation(3),
-      measureDto.getVariation(4),
-      measureDto.getVariation(5));
+    return new MeasureVariations(measureDto.getVariation());
   }
 
 }
index a48ad4aeb96b2f6d63bcfab553165e7bed0dd48a..0a117786fd1dea24a06b55cdd5e41bd396f52c82 100644 (file)
@@ -45,7 +45,7 @@ public class MeasureToMeasureDto {
     out.setComponentUuid(component.getUuid());
     out.setAnalysisUuid(analysisMetadataHolder.getUuid());
     if (measure.hasVariations()) {
-      setVariations(out, measure.getVariations());
+      setVariation(out, measure.getVariations());
     }
     if (measure.hasQualityGateStatus()) {
       setAlert(out, measure.getQualityGateStatus());
@@ -60,12 +60,8 @@ public class MeasureToMeasureDto {
     return out;
   }
 
-  private static void setVariations(MeasureDto measureDto, MeasureVariations variations) {
-    measureDto.setVariation(1, variations.hasVariation1() ? variations.getVariation1() : null);
-    measureDto.setVariation(2, variations.hasVariation2() ? variations.getVariation2() : null);
-    measureDto.setVariation(3, variations.hasVariation3() ? variations.getVariation3() : null);
-    measureDto.setVariation(4, variations.hasVariation4() ? variations.getVariation4() : null);
-    measureDto.setVariation(5, variations.hasVariation5() ? variations.getVariation5() : null);
+  private static void setVariation(MeasureDto measureDto, MeasureVariations variations) {
+    measureDto.setVariation(variations.hasVariation1() ? variations.getVariation1() : null);
   }
 
   private static void setAlert(MeasureDto measureDto, QualityGateStatus qualityGateStatus) {
index 3ec87d2f3d71fcbdffda11f14fc00551d6fc704d..0b1b23cb79c1ddcd217d581347d89eb740320b38 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.server.computation.task.projectanalysis.step;
 
+import java.util.List;
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
 import org.sonar.api.utils.System2;
@@ -47,7 +48,7 @@ public class PersistAnalysisStep implements ComputationStep {
   private final PeriodsHolder periodsHolder;
 
   public PersistAnalysisStep(System2 system2, DbClient dbClient, TreeRootHolder treeRootHolder,
-                             AnalysisMetadataHolder analysisMetadataHolder, PeriodsHolder periodsHolder) {
+    AnalysisMetadataHolder analysisMetadataHolder, PeriodsHolder periodsHolder) {
     this.system2 = system2;
     this.dbClient = dbClient;
     this.treeRootHolder = treeRootHolder;
@@ -60,7 +61,7 @@ public class PersistAnalysisStep implements ComputationStep {
     DbSession session = dbClient.openSession(false);
     try {
       new PathAwareCrawler<>(
-          new PersistSnapshotsPathAwareVisitor(session, analysisMetadataHolder.getAnalysisDate()))
+        new PersistSnapshotsPathAwareVisitor(session, analysisMetadataHolder.getAnalysisDate()))
           .visit(treeRootHolder.getRoot());
       session.commit();
     } finally {
@@ -94,24 +95,26 @@ public class PersistAnalysisStep implements ComputationStep {
     }
 
     private void updateSnapshotPeriods(SnapshotDto snapshotDto) {
-      for (Period period : periodsHolder.getPeriods()) {
-        int index = period.getIndex();
-        snapshotDto.setPeriodMode(index, period.getMode());
-        snapshotDto.setPeriodParam(index, period.getModeParameter());
-        snapshotDto.setPeriodDate(index, period.getSnapshotDate());
+      List<Period> periods = periodsHolder.getPeriods();
+      if (periods.isEmpty()) {
+        return;
       }
+      Period period = periods.get(0);
+      snapshotDto.setPeriodMode(period.getMode());
+      snapshotDto.setPeriodParam(period.getModeParameter());
+      snapshotDto.setPeriodDate(period.getSnapshotDate());
     }
 
     private SnapshotDto createAnalysis(String snapshotUuid, Component component, boolean setVersion) {
       String componentUuid = component.getUuid();
       return new SnapshotDto()
-          .setUuid(snapshotUuid)
-          .setVersion(setVersion ? component.getReportAttributes().getVersion() : null)
-          .setComponentUuid(componentUuid)
-          .setLast(false)
-          .setStatus(SnapshotDto.STATUS_UNPROCESSED)
-          .setCreatedAt(analysisDate)
-          .setBuildDate(system2.now());
+        .setUuid(snapshotUuid)
+        .setVersion(setVersion ? component.getReportAttributes().getVersion() : null)
+        .setComponentUuid(componentUuid)
+        .setLast(false)
+        .setStatus(SnapshotDto.STATUS_UNPROCESSED)
+        .setCreatedAt(analysisDate)
+        .setBuildDate(system2.now());
     }
 
     private void persist(SnapshotDto snapshotDto, DbSession dbSession) {
index ef34809b2da577469b205b22b74d02a41548c67d..881379b75070e8030bd935d28ae7b374270cf398 100644 (file)
@@ -306,26 +306,18 @@ public class MeasureDtoToMeasureTest {
   @Test
   @UseDataProvider("all_types_MeasureDtos")
   public void toMeasure_creates_MeasureVariation_and_maps_the_right_one(MeasureDto builder, Metric metric) {
-    assertThat(underTest.toMeasure(builder.setVariation(1, 1d), metric).get().getVariations().getVariation1()).isEqualTo(1);
-    assertThat(underTest.toMeasure(builder.setVariation(2, 2d), metric).get().getVariations().getVariation2()).isEqualTo(2);
-    assertThat(underTest.toMeasure(builder.setVariation(3, 3d), metric).get().getVariations().getVariation3()).isEqualTo(3);
-    assertThat(underTest.toMeasure(builder.setVariation(4, 4d), metric).get().getVariations().getVariation4()).isEqualTo(4);
-    assertThat(underTest.toMeasure(builder.setVariation(5, 5d), metric).get().getVariations().getVariation5()).isEqualTo(5);
+    assertThat(underTest.toMeasure(builder.setVariation(1d), metric).get().getVariations().getVariation1()).isEqualTo(1);
   }
 
   @Test
   public void toMeasure_creates_MeasureVariation_and_maps_the_right_one() {
     MeasureDto measureDto = new MeasureDto()
       .setData("1")
-      .setVariation(2, 2d).setVariation(3, 3d).setVariation(5, 5d);
+      .setVariation(2d);
 
     Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_STRING_METRIC);
 
-    assertThat(measure.get().getVariations().hasVariation1()).isFalse();
-    assertThat(measure.get().getVariations().getVariation2()).isEqualTo(2);
-    assertThat(measure.get().getVariations().getVariation3()).isEqualTo(3);
-    assertThat(measure.get().getVariations().hasVariation4()).isFalse();
-    assertThat(measure.get().getVariations().getVariation5()).isEqualTo(5);
+    assertThat(measure.get().getVariations().getVariation1()).isEqualTo(2);
   }
 
   @Test
index df43e0486c3c77a33a25c044a64af83d58bcb59f..d6a3b2b263c88f988f8154935cbff0fc173fe67b 100644 (file)
@@ -44,7 +44,7 @@ public class MeasureToMeasureDtoTest {
   private static final int SOME_COMPONENT_ID = 951;
   private static final String SOME_DATA = "some_data";
   private static final String SOME_STRING = "some_string";
-  private static final MeasureVariations SOME_VARIATIONS = new MeasureVariations(1d, 2d, 3d, 4d, 5d);
+  private static final MeasureVariations SOME_VARIATIONS = new MeasureVariations(1d);
   private static final MetricImpl SOME_BOOLEAN_METRIC = new MetricImpl(1, "1", "1", Metric.MetricType.BOOL);
   private static final MetricImpl SOME_INT_METRIC = new MetricImpl(2, "2", "2", Metric.MetricType.INT);
   private static final MetricImpl SOME_LONG_METRIC = new MetricImpl(3, "3", "3", Metric.MetricType.DISTRIB);
@@ -95,22 +95,14 @@ public class MeasureToMeasureDtoTest {
   public void toMeasureDto_returns_Dto_without_any_variation_if_Measure_has_no_MeasureVariations(Measure measure, Metric metric) {
     MeasureDto measureDto = underTest.toMeasureDto(measure, metric, SOME_COMPONENT);
 
-    assertThat(measureDto.getVariation(1)).isNull();
-    assertThat(measureDto.getVariation(2)).isNull();
-    assertThat(measureDto.getVariation(3)).isNull();
-    assertThat(measureDto.getVariation(4)).isNull();
-    assertThat(measureDto.getVariation(5)).isNull();
+    assertThat(measureDto.getVariation()).isNull();
   }
 
   @Test
   public void toMeasureDto_returns_Dto_with_variation_if_Measure_has_MeasureVariations() {
     MeasureDto measureDto = underTest.toMeasureDto(Measure.newMeasureBuilder().setVariations(SOME_VARIATIONS).create(SOME_STRING), SOME_STRING_METRIC, SOME_COMPONENT);
 
-    assertThat(measureDto.getVariation(1)).isEqualTo(1d);
-    assertThat(measureDto.getVariation(2)).isEqualTo(2d);
-    assertThat(measureDto.getVariation(3)).isEqualTo(3d);
-    assertThat(measureDto.getVariation(4)).isEqualTo(4d);
-    assertThat(measureDto.getVariation(5)).isEqualTo(5d);
+    assertThat(measureDto.getVariation()).isEqualTo(1d);
   }
 
   @Test
@@ -138,7 +130,7 @@ public class MeasureToMeasureDtoTest {
     MeasureDto measureDto = underTest.toMeasureDto(measure, metric, SOME_COMPONENT);
 
     assertThat(measureDto.getComponentUuid()).isEqualTo(SOME_COMPONENT.getUuid());
-    //assertThat(measureDto.getSnapshotId()).isEqualTo(SOME_SNAPSHOT_ID);
+    // assertThat(measureDto.getSnapshotId()).isEqualTo(SOME_SNAPSHOT_ID);
   }
 
   @Test
index c49a1a418172a3dacb50072faa97bb5ab2aa5540..a17e3d3f76da74232e8da12f311f2fb862455530 100644 (file)
@@ -261,11 +261,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
       newMeasureBuilder()
         .setVariations(
           newMeasureVariationsBuilder()
-            .setVariation(createPeriod(1), 1.1d)
-            .setVariation(createPeriod(2), 2.2d)
-            .setVariation(createPeriod(3), 3.3d)
-            .setVariation(createPeriod(4), 4.4d)
-            .setVariation(createPeriod(5), 5.5d)
+            .setVariation(createPeriod(), 1.1d)
             .build())
         .create(10d, 1));
 
@@ -274,11 +270,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
     List<Map<String, Object>> dtos = selectSnapshots();
     Map<String, Object> dto = dtos.get(0);
-    assertThat(dto.get("variation_value_1")).isEqualTo(1.1d);
-    assertThat(dto.get("variation_value_2")).isEqualTo(2.2d);
-    assertThat(dto.get("variation_value_3")).isEqualTo(3.3d);
-    assertThat(dto.get("variation_value_4")).isEqualTo(4.4d);
-    assertThat(dto.get("variation_value_5")).isEqualTo(5.5d);
+    assertThat(dto.get("variation_value")).isEqualTo(1.1d);
   }
 
   @Test
@@ -403,8 +395,8 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     return componentDto;
   }
 
-  private static Period createPeriod(Integer index) {
-    return new Period(index, "mode" + index, null, index, String.valueOf(index));
+  private static Period createPeriod() {
+    return new Period(1, "mode" + 1, null, 1, "1");
   }
 
   private List<Map<String, Object>> selectSnapshots() {
@@ -413,11 +405,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
         "SELECT analysis_uuid as \"analysisUuid\", component_uuid as \"componentUuid\", metric_id as \"metricId\", person_id as \"developerId\", "
           +
           "value as \"value\", text_value as \"textValue\", " +
-          "variation_value_1 as \"variation_value_1\", " +
-          "variation_value_2 as \"variation_value_2\", " +
-          "variation_value_3 as \"variation_value_3\", " +
-          "variation_value_4 as \"variation_value_4\", " +
-          "variation_value_5 as \"variation_value_5\"" +
+          "variation_value_1 as \"variation_value\"" +
           "FROM project_measures " +
           "ORDER by id asc");
   }
index 788a8dfe6ead08a3a1f93600dca6933e4226f931..3ed82c6cf503ffdd750d7076819e2a9a95da3f25 100644 (file)
@@ -34,10 +34,10 @@ import org.sonar.db.component.SnapshotQuery;
 import org.sonar.db.component.SnapshotTesting;
 import org.sonar.db.organization.OrganizationDto;
 import org.sonar.server.computation.task.projectanalysis.analysis.AnalysisMetadataHolderRule;
-import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.server.computation.task.projectanalysis.component.Component;
 import org.sonar.server.computation.task.projectanalysis.component.DbIdsRepositoryImpl;
 import org.sonar.server.computation.task.projectanalysis.component.ReportComponent;
+import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.server.computation.task.projectanalysis.period.Period;
 import org.sonar.server.computation.task.projectanalysis.period.PeriodsHolderRule;
 import org.sonar.server.computation.task.step.ComputationStep;
@@ -140,7 +140,7 @@ public class ReportPersistAnalysisStepTest extends BaseStepTest {
   }
 
   @Test
-  public void persist_snapshots_with_periods() {
+  public void persist_snapshots_with_leak_period() {
     OrganizationDto organizationDto = dbTester.organizations().insert();
     ComponentDto projectDto = ComponentTesting.newProjectDto(organizationDto, "ABCD").setKey(PROJECT_KEY).setName("Project");
     dbClient.componentDao().insert(dbTester.getSession(), projectDto);
@@ -156,13 +156,13 @@ public class ReportPersistAnalysisStepTest extends BaseStepTest {
     underTest.execute();
 
     SnapshotDto projectSnapshot = getUnprocessedSnapshot(projectDto.uuid());
-    assertThat(projectSnapshot.getPeriodMode(1)).isEqualTo(TIMEMACHINE_MODE_DATE);
-    assertThat(projectSnapshot.getPeriodDate(1)).isEqualTo(analysisDate);
-    assertThat(projectSnapshot.getPeriodModeParameter(1)).isNotNull();
+    assertThat(projectSnapshot.getPeriodMode()).isEqualTo(TIMEMACHINE_MODE_DATE);
+    assertThat(projectSnapshot.getPeriodDate()).isEqualTo(analysisDate);
+    assertThat(projectSnapshot.getPeriodModeParameter()).isNotNull();
   }
 
   @Test
-  public void only_persist_snapshots_with_periods_on_project_and_module() {
+  public void only_persist_snapshots_with_leak_period_on_project_and_module() {
     periodsHolder.setPeriods(new Period(1, TIMEMACHINE_MODE_PREVIOUS_ANALYSIS, null, analysisDate, "u1"));
 
     OrganizationDto organizationDto = dbTester.organizations().insert();
@@ -196,7 +196,7 @@ public class ReportPersistAnalysisStepTest extends BaseStepTest {
     underTest.execute();
 
     SnapshotDto newProjectSnapshot = getUnprocessedSnapshot(projectDto.uuid());
-    assertThat(newProjectSnapshot.getPeriodMode(1)).isEqualTo(TIMEMACHINE_MODE_PREVIOUS_ANALYSIS);
+    assertThat(newProjectSnapshot.getPeriodMode()).isEqualTo(TIMEMACHINE_MODE_PREVIOUS_ANALYSIS);
   }
 
   @Test
@@ -214,9 +214,9 @@ public class ReportPersistAnalysisStepTest extends BaseStepTest {
     underTest.execute();
 
     SnapshotDto projectSnapshot = getUnprocessedSnapshot(projectDto.uuid());
-    assertThat(projectSnapshot.getPeriodMode(1)).isNull();
-    assertThat(projectSnapshot.getPeriodDate(1)).isNull();
-    assertThat(projectSnapshot.getPeriodModeParameter(1)).isNull();
+    assertThat(projectSnapshot.getPeriodMode()).isNull();
+    assertThat(projectSnapshot.getPeriodDate()).isNull();
+    assertThat(projectSnapshot.getPeriodModeParameter()).isNull();
   }
 
   private SnapshotDto getUnprocessedSnapshot(String componentUuid) {
index 6c6725711793ba39fb0f59df8048191ac24f572d..17344baf7102e40450c2a604df5443b60f6d8908 100644 (file)
@@ -32,8 +32,8 @@ import org.sonar.db.component.SnapshotDto;
 import org.sonar.db.component.SnapshotQuery;
 import org.sonar.db.organization.OrganizationDto;
 import org.sonar.server.computation.task.projectanalysis.analysis.AnalysisMetadataHolderRule;
-import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.server.computation.task.projectanalysis.component.Component;
+import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.server.computation.task.projectanalysis.component.ViewsComponent;
 import org.sonar.server.computation.task.projectanalysis.period.Period;
 import org.sonar.server.computation.task.projectanalysis.period.PeriodsHolderRule;
@@ -122,7 +122,7 @@ public class ViewsPersistAnalysisStepTest extends BaseStepTest {
   }
 
   @Test
-  public void persist_snapshots_with_periods() {
+  public void persist_snapshots_with_leak_period() {
     OrganizationDto organizationDto = dbTester.organizations().insert();
     ComponentDto viewDto = save(newView(organizationDto, "UUID_VIEW").setKey("KEY_VIEW"));
     ComponentDto subViewDto = save(newSubView(viewDto, "UUID_SUBVIEW", "KEY_SUBVIEW"));
@@ -137,9 +137,9 @@ public class ViewsPersistAnalysisStepTest extends BaseStepTest {
     underTest.execute();
 
     SnapshotDto viewSnapshot = getUnprocessedSnapshot(viewDto.uuid());
-    assertThat(viewSnapshot.getPeriodMode(1)).isEqualTo(TIMEMACHINE_MODE_DATE);
-    assertThat(viewSnapshot.getPeriodDate(1)).isEqualTo(analysisDate);
-    assertThat(viewSnapshot.getPeriodModeParameter(1)).isNotNull();
+    assertThat(viewSnapshot.getPeriodMode()).isEqualTo(TIMEMACHINE_MODE_DATE);
+    assertThat(viewSnapshot.getPeriodDate()).isEqualTo(analysisDate);
+    assertThat(viewSnapshot.getPeriodModeParameter()).isNotNull();
   }
 
   private ComponentDto save(ComponentDto componentDto) {