]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6643 Add snapshot date in period
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 15 Jun 2015 11:42:55 +0000 (13:42 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 19 Jun 2015 11:58:07 +0000 (13:58 +0200)
server/sonar-server/src/main/java/org/sonar/server/computation/period/Period.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java
server/sonar-server/src/test/java/org/sonar/server/computation/period/PeriodTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/period/PeriodsHolderImplTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/FeedPeriodsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistSnapshotsStepTest.java

index fc1dcdcdc8cd6fd04a67b929f899ce3073a936fb..5666ee3b5807572cc5092f78d06aa918bd85f585 100644 (file)
@@ -22,19 +22,22 @@ package org.sonar.server.computation.period;
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
-import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+import javax.annotation.concurrent.Immutable;
 
+@Immutable
 public class Period {
 
   private int index;
   private String mode, modeParameter;
   private long snapshotDate;
+  private final long snapshotId;
 
-  public Period(int index, String mode, @Nullable String modeParameter, long snapshotDate) {
+  public Period(int index, String mode, @Nullable String modeParameter, long snapshotDate, long snapshotId) {
     this.index = index;
     this.mode = mode;
     this.modeParameter = modeParameter;
     this.snapshotDate = snapshotDate;
+    this.snapshotId = snapshotId;
   }
 
   public int getIndex() {
@@ -45,6 +48,10 @@ public class Period {
     return snapshotDate;
   }
 
+  public long getSnapshotId() {
+    return snapshotId;
+  }
+
   public String getMode() {
     return mode;
   }
@@ -56,7 +63,12 @@ public class Period {
 
   @Override
   public String toString() {
-    return ReflectionToStringBuilder.toString(this);
+    return "Period{" +
+      "index=" + index +
+      ", mode='" + mode + '\'' +
+      ", modeParameter='" + modeParameter + '\'' +
+      ", snapshotDate=" + snapshotDate +
+      ", snapshotId=" + snapshotId +
+      '}';
   }
-
 }
index 885a97769aaf1a6975fbf85b3a17731aa3d2f68b..28b0e5ab267c96acbc0c750fbe435c05a0af525f 100644 (file)
@@ -165,7 +165,7 @@ public class FeedPeriodsStep implements ComputationStep {
         return null;
       }
       LOG.debug(String.format("Compare to date %s (analysis of %s)", formatDate(date.getTime()), formatDate(snapshot.getCreatedAt())));
-      return new Period(index, CoreProperties.TIMEMACHINE_MODE_DATE, DateUtils.formatDate(date), snapshot.getCreatedAt());
+      return new Period(index, CoreProperties.TIMEMACHINE_MODE_DATE, DateUtils.formatDate(date), snapshot.getCreatedAt(), snapshot.getId());
     }
 
     @CheckForNull
@@ -177,7 +177,7 @@ public class FeedPeriodsStep implements ComputationStep {
         return null;
       }
       LOG.debug(String.format("Compare over %s days (%s, analysis of %s)", String.valueOf(days), formatDate(targetDate), formatDate(snapshot.getCreatedAt())));
-      return new Period(index, CoreProperties.TIMEMACHINE_MODE_DAYS, String.valueOf(days), snapshot.getCreatedAt());
+      return new Period(index, CoreProperties.TIMEMACHINE_MODE_DAYS, String.valueOf(days), snapshot.getCreatedAt(), snapshot.getId());
     }
 
     @CheckForNull
@@ -187,7 +187,7 @@ public class FeedPeriodsStep implements ComputationStep {
         return null;
       }
       LOG.debug(String.format("Compare to previous analysis (%s)", formatDate(snapshot.getCreatedAt())));
-      return new Period(index, CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS, formatDate(snapshot.getCreatedAt()), snapshot.getCreatedAt());
+      return new Period(index, CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS, formatDate(snapshot.getCreatedAt()), snapshot.getCreatedAt(), snapshot.getId());
     }
 
     @CheckForNull
@@ -198,7 +198,7 @@ public class FeedPeriodsStep implements ComputationStep {
       }
       SnapshotDto snapshotDto = snapshotDtos.get(0);
       LOG.debug(String.format("Compare to previous version (%s)", formatDate(snapshotDto.getCreatedAt())));
-      return new Period(index, CoreProperties.TIMEMACHINE_MODE_PREVIOUS_VERSION, snapshotDto.getVersion(), snapshotDto.getCreatedAt());
+      return new Period(index, CoreProperties.TIMEMACHINE_MODE_PREVIOUS_VERSION, snapshotDto.getVersion(), snapshotDto.getCreatedAt(), snapshotDto.getId());
     }
 
     @CheckForNull
@@ -208,7 +208,7 @@ public class FeedPeriodsStep implements ComputationStep {
         return null;
       }
       LOG.debug(String.format("Compare to version (%s) (%s)", version, formatDate(snapshot.getCreatedAt())));
-      return new Period(index, CoreProperties.TIMEMACHINE_MODE_VERSION, version, snapshot.getCreatedAt());
+      return new Period(index, CoreProperties.TIMEMACHINE_MODE_VERSION, version, snapshot.getCreatedAt(), snapshot.getId());
     }
 
     @CheckForNull
index f4a591896762ff3ac0a03926f5ab889ce52e8ff2..645b4d6fefe6b4d3906e0c60e34bfbae96c56796 100644 (file)
@@ -30,12 +30,18 @@ public class PeriodTest {
   @Test
   public void test_some_setters_and_getters() {
     Long date = System.currentTimeMillis();
-    Period period = new Period(1, CoreProperties.TIMEMACHINE_MODE_VERSION, "2.3", date);
+    Period period = new Period(1, CoreProperties.TIMEMACHINE_MODE_VERSION, "2.3", date, 10L);
 
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_VERSION);
     assertThat(period.getModeParameter()).isEqualTo("2.3");
     assertThat(period.getIndex()).isEqualTo(1);
     assertThat(period.getSnapshotDate()).isEqualTo(date);
+    assertThat(period.getSnapshotId()).isEqualTo(10L);
   }
 
+  @Test
+  public void test_to_string() throws Exception {
+    assertThat(new Period(1, CoreProperties.TIMEMACHINE_MODE_VERSION, "2.3", 1420034400000L, 10L).toString())
+      .isEqualTo("Period{index=1, mode='version', modeParameter='2.3', snapshotDate=1420034400000, snapshotId=10}");
+  }
 }
index d82ff0ed8991f6cb4d5a1884d822d7536032ac04..b58212ffc5545aa8ce055863ae8539e902dc32f8 100644 (file)
@@ -36,7 +36,7 @@ public class PeriodsHolderImplTest {
   @Test
   public void get_periods() throws Exception {
     List<Period> periods = new ArrayList<>();
-    periods.add(new Period(1, "mode", null, 1000L));
+    periods.add(new Period(1, "mode", null, 1000L, 10L));
 
     PeriodsHolderImpl periodsHolder = new PeriodsHolderImpl();
     periodsHolder.setPeriods(periods);
@@ -66,7 +66,7 @@ public class PeriodsHolderImplTest {
     thrown.expectMessage("Periods have already been initialized");
 
     List<Period> periods = new ArrayList<>();
-    periods.add(new Period(1, "mode", null, 1000L));
+    periods.add(new Period(1, "mode", null, 1000L, 10L));
 
     PeriodsHolderImpl periodsHolder = new PeriodsHolderImpl();
     periodsHolder.setPeriods(periods);
@@ -78,11 +78,11 @@ public class PeriodsHolderImplTest {
     thrown.expect(UnsupportedOperationException.class);
 
     List<Period> periods = new ArrayList<>();
-    periods.add(new Period(1, "mode", null, 1000L));
+    periods.add(new Period(1, "mode", null, 1000L, 10L));
 
     PeriodsHolderImpl periodsHolder = new PeriodsHolderImpl();
     periodsHolder.setPeriods(periods);
 
-    periodsHolder.getPeriods().add(new Period(2, "mode", null, 1001L));
+    periodsHolder.getPeriods().add(new Period(2, "mode", null, 1001L, 11L));
   }
 }
index 1a5db7afbc0c46d400d9de1ebd1d5d2aa1dd5d21..12bc74b4334108834edbbf4f20ca20ece67e9d1a 100644 (file)
@@ -125,6 +125,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_DATE);
     assertThat(period.getModeParameter()).isEqualTo(textDate);
     assertThat(period.getSnapshotDate()).isEqualTo(1227358680000L);
+    assertThat(period.getSnapshotId()).isEqualTo(1003L);
   }
 
   @Test
@@ -173,6 +174,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_DATE);
     assertThat(period.getModeParameter()).isEqualTo(textDate);
     assertThat(period.getSnapshotDate()).isEqualTo(1227358680000L);
+    assertThat(period.getSnapshotId()).isEqualTo(1003L);
 
     assertThat(logTester.logs()).hasSize(1);
     assertThat(logTester.logs().get(0)).startsWith("Compare to date 2008-11-22 (analysis of ");
@@ -194,6 +196,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_DATE);
     assertThat(period.getModeParameter()).isEqualTo(date);
     assertThat(period.getSnapshotDate()).isEqualTo(1227934800000L);
+    assertThat(period.getSnapshotId()).isEqualTo(1004L);
   }
 
   @Test
@@ -222,6 +225,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_DAYS);
     assertThat(period.getModeParameter()).isEqualTo("10");
     assertThat(period.getSnapshotDate()).isEqualTo(1227157200000L);
+    assertThat(period.getSnapshotId()).isEqualTo(1002L);
 
     assertThat(logTester.logs()).hasSize(1);
     assertThat(logTester.logs().get(0)).startsWith("Compare over 10 days (2008-11-20, analysis of ");
@@ -252,6 +256,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS);
     assertThat(period.getModeParameter()).isNotNull();
     assertThat(period.getSnapshotDate()).isEqualTo(1227934800000L);
+    assertThat(period.getSnapshotId()).isEqualTo(1004L);
 
     assertThat(logTester.logs()).hasSize(1);
     assertThat(logTester.logs().get(0)).startsWith("Compare to previous analysis (");
@@ -282,6 +287,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_PREVIOUS_VERSION);
     assertThat(period.getModeParameter()).isEqualTo("1.0");
     assertThat(period.getSnapshotDate()).isEqualTo(1226494680000L);
+    assertThat(period.getSnapshotId()).isEqualTo(1001L);
 
     assertThat(logTester.logs()).hasSize(1);
     assertThat(logTester.logs().get(0)).startsWith("Compare to previous version (");
@@ -302,6 +308,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_PREVIOUS_VERSION);
     assertThat(period.getModeParameter()).isEqualTo("0.9");
     assertThat(period.getSnapshotDate()).isEqualTo(1226379600000L);
+    assertThat(period.getSnapshotId()).isEqualTo(1000L);
   }
 
   @Test
@@ -339,6 +346,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
     assertThat(period.getMode()).isEqualTo(CoreProperties.TIMEMACHINE_MODE_VERSION);
     assertThat(period.getModeParameter()).isEqualTo("0.9");
     assertThat(period.getSnapshotDate()).isEqualTo(1226379600000L);
+    assertThat(period.getSnapshotId()).isEqualTo(1000L);
 
     assertThat(logTester.logs()).hasSize(1);
     assertThat(logTester.logs().get(0)).startsWith("Compare to version (0.9) (");
index 38b42ef58205bfa77925d9dd36c5d7af9eee4d1c..3af4fca66ac7f304cb18fff371efc8fe9d1b429b 100644 (file)
@@ -298,7 +298,7 @@ public class PersistSnapshotsStepTest extends BaseStepTest {
     SnapshotDto snapshotDto = SnapshotTesting.createForProject(projectDto).setCreatedAt(DateUtils.parseDateQuietly("2015-01-01").getTime());
     dbClient.snapshotDao().insert(session, snapshotDto);
     session.commit();
-    periodsHolderRule.addPeriod(new Period(1, CoreProperties.TIMEMACHINE_MODE_DATE, "2015-01-01", analysisDate));
+    periodsHolderRule.addPeriod(new Period(1, CoreProperties.TIMEMACHINE_MODE_DATE, "2015-01-01", analysisDate, 123L));
 
     Component project = DumbComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).build();
     treeRootHolder.setRoot(project);
@@ -314,7 +314,7 @@ public class PersistSnapshotsStepTest extends BaseStepTest {
 
   @Test
   public void only_persist_snapshots_with_periods_on_project_and_module() throws Exception {
-    periodsHolderRule.addPeriod(new Period(1, CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS, null, analysisDate));
+    periodsHolderRule.addPeriod(new Period(1, CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS, null, analysisDate, 123L));
 
     ComponentDto projectDto = ComponentTesting.newProjectDto("ABCD").setKey(PROJECT_KEY).setName("Project");
     dbClient.componentDao().insert(session, projectDto);