]> source.dussan.org Git - sonarqube.git/commitdiff
Fix property sonar.core.startTime
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 29 Jul 2016 12:54:27 +0000 (14:54 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 29 Jul 2016 14:57:18 +0000 (16:57 +0200)
server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java
server/sonar-server/src/main/java/org/sonar/server/platform/StartupMetadataPersister.java
server/sonar-server/src/main/java/org/sonar/server/platform/StartupMetadataProvider.java
server/sonar-server/src/test/java/org/sonar/server/platform/StartupMetadataPersisterTest.java
server/sonar-server/src/test/java/org/sonar/server/platform/StartupMetadataProviderTest.java
sonar-scanner-engine/src/main/java/org/sonar/scanner/platform/DefaultServer.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/platform/DefaultServerTest.java

index dd5d7c14038d6ce4794f17c1d786834c8ba165dc..151742f4c3773985cacee5ed06ab10ec0ff5c300 100644 (file)
@@ -21,6 +21,7 @@ package org.sonar.ce.container;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Date;
 import java.util.Properties;
 import org.apache.commons.dbcp.BasicDataSource;
 import org.junit.Rule;
@@ -29,6 +30,7 @@ import org.junit.rules.TemporaryFolder;
 import org.picocontainer.MutablePicoContainer;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.database.DatabaseProperties;
+import org.sonar.api.utils.DateUtils;
 import org.sonar.api.utils.System2;
 import org.sonar.db.DbTester;
 import org.sonar.db.property.PropertyDto;
@@ -75,7 +77,7 @@ public class ComputeEngineContainerImplTest {
     properties.setProperty(DatabaseProperties.PROP_USER, "sonar");
     properties.setProperty(DatabaseProperties.PROP_PASSWORD, "sonar");
     insertProperty(CoreProperties.SERVER_ID, "a_startup_id");
-    insertProperty("sonar.core.startedAt", "123456789");
+    insertProperty(CoreProperties.SERVER_STARTTIME, DateUtils.formatDateTime(new Date()));
 
     underTest
       .start(new Props(properties));
index 7c3017dab6bdac078ccd5fbc91ea73b7ec20db70..dfb371cd14f03837d69259c5917d4f2e1e4b5fb4 100644 (file)
  */
 package org.sonar.server.platform;
 
+import java.util.Date;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.Startable;
 import org.sonar.api.server.ServerSide;
+import org.sonar.api.utils.DateUtils;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.property.PropertiesDao;
@@ -47,9 +49,10 @@ public class StartupMetadataPersister implements Startable {
   @Override
   public void start() {
     try (DbSession dbSession = dbClient.openSession(false)) {
+      String startedAt = DateUtils.formatDateTime(new Date(metadata.getStartedAt()));
       PropertiesDao dao = dbClient.propertiesDao();
       dao.insertProperty(dbSession, new PropertyDto().setKey(CoreProperties.SERVER_ID).setValue(metadata.getStartupId()));
-      dao.insertProperty(dbSession, new PropertyDto().setKey(StartupMetadataProvider.PROPERTY_STARTED_AT).setValue(String.valueOf(metadata.getStartedAt())));
+      dao.insertProperty(dbSession, new PropertyDto().setKey(CoreProperties.SERVER_STARTTIME).setValue(startedAt));
       dbSession.commit();
     }
   }
index f1ccde603b046fff6624234fa214bf32273771c7..3471353721fc090aa44a88492ed3468104ea54e1 100644 (file)
@@ -25,6 +25,7 @@ import org.sonar.api.SonarQubeSide;
 import org.sonar.api.SonarRuntime;
 import org.sonar.api.ce.ComputeEngineSide;
 import org.sonar.api.server.ServerSide;
+import org.sonar.api.utils.DateUtils;
 import org.sonar.api.utils.System2;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.db.DbClient;
@@ -39,8 +40,6 @@ import static org.apache.commons.lang.StringUtils.isBlank;
 @ServerSide
 public class StartupMetadataProvider extends ProviderAdapter {
 
-  public static final String PROPERTY_STARTED_AT = "sonar.core.startedAt";
-
   private StartupMetadata cache = null;
 
   public StartupMetadata provide(UuidFactory uuidFactory, System2 system, SonarRuntime runtime, Cluster cluster, DbClient dbClient) {
@@ -70,8 +69,8 @@ public class StartupMetadataProvider extends ProviderAdapter {
   private static StartupMetadata load(DbClient dbClient) {
     try (DbSession dbSession = dbClient.openSession(false)) {
       String startupId = selectProperty(dbClient, dbSession, CoreProperties.SERVER_ID);
-      String startedAt = selectProperty(dbClient, dbSession, PROPERTY_STARTED_AT);
-      return new StartupMetadata(startupId, Long.parseLong(startedAt));
+      String startedAt = selectProperty(dbClient, dbSession, CoreProperties.SERVER_STARTTIME);
+      return new StartupMetadata(startupId, DateUtils.parseDateTime(startedAt).getTime());
     }
   }
 
index 4fba9c60f5e78b299cce4adfa6d3f916620c5c23..364d0126b17c517ee0596060d5cff3e6328dd851 100644 (file)
@@ -23,6 +23,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.sonar.api.CoreProperties;
+import org.sonar.api.utils.DateUtils;
 import org.sonar.api.utils.System2;
 import org.sonar.db.DbTester;
 import org.sonar.db.property.PropertyDto;
@@ -45,7 +46,7 @@ public class StartupMetadataPersisterTest {
     underTest.start();
 
     assertPersistedProperty(CoreProperties.SERVER_ID, metadata.getStartupId());
-    assertPersistedProperty("sonar.core.startedAt", String.valueOf(metadata.getStartedAt()));
+    assertPersistedProperty(CoreProperties.SERVER_STARTTIME, DateUtils.formatDateTime(metadata.getStartedAt()));
 
     underTest.stop();
   }
index 4e5e7a6708aa8122335cb6b443814c18715ea7c1..a0e5b13e04429e9601aaa36000ed7b8910ddc237 100644 (file)
@@ -26,6 +26,7 @@ import org.sonar.api.CoreProperties;
 import org.sonar.api.SonarQubeSide;
 import org.sonar.api.SonarRuntime;
 import org.sonar.api.internal.SonarRuntimeImpl;
+import org.sonar.api.utils.DateUtils;
 import org.sonar.api.utils.System2;
 import org.sonar.api.utils.Version;
 import org.sonar.core.util.UuidFactory;
@@ -41,7 +42,7 @@ import static org.mockito.Mockito.when;
 
 public class StartupMetadataProviderTest {
 
-  private static final long A_DATE = 123_456_789L;
+  private static final long A_DATE = 1_500_000_000_000L;
   private static final String AN_ID = "generated_id";
 
   @Rule
@@ -67,7 +68,7 @@ public class StartupMetadataProviderTest {
     assertThat(metadata.getStartupId()).isEqualTo(AN_ID);
 
     assertNotPersistedProperty(CoreProperties.SERVER_ID);
-    assertNotPersistedProperty("sonar.core.startedAt");
+    assertNotPersistedProperty(CoreProperties.SERVER_STARTTIME);
 
     // keep a cache
     StartupMetadata secondMetadata = underTest.provide(uuidFactory, system, runtime, cluster, dbTester.getDbClient());
@@ -116,7 +117,7 @@ public class StartupMetadataProviderTest {
 
     // still in database
     assertPersistedProperty(CoreProperties.SERVER_ID, AN_ID);
-    assertPersistedProperty("sonar.core.startedAt", String.valueOf(A_DATE));
+    assertPersistedProperty(CoreProperties.SERVER_STARTTIME, DateUtils.formatDateTime(A_DATE));
 
     // keep a cache
     StartupMetadata secondMetadata = underTest.provide(uuidFactory, system, runtime, cluster, dbTester.getDbClient());
index 1862bfbfb23e6e8f755f5332899030db24df4e17..594c7b5ba31c89c97feac5cae2cd0c3c5c70d361 100644 (file)
 package org.sonar.scanner.platform;
 
 import java.io.File;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.Date;
 import javax.annotation.CheckForNull;
 import org.apache.commons.lang.StringUtils;
-import org.slf4j.LoggerFactory;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.batch.ScannerSide;
 import org.sonar.api.config.Settings;
 import org.sonar.api.platform.Server;
+import org.sonar.api.utils.DateUtils;
 import org.sonar.scanner.bootstrap.BatchWsClient;
 
 import static org.apache.commons.lang.StringUtils.trimToEmpty;
@@ -58,15 +56,7 @@ public class DefaultServer extends Server {
   @Override
   public Date getStartedAt() {
     String dateString = settings.getString(CoreProperties.SERVER_STARTTIME);
-    if (dateString != null) {
-      try {
-        return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(dateString);
-
-      } catch (ParseException e) {
-        LoggerFactory.getLogger(getClass()).error("The property " + CoreProperties.SERVER_STARTTIME + " is badly formatted.", e);
-      }
-    }
-    return null;
+    return DateUtils.parseDateTime(dateString);
   }
 
   @Override
index 2140aab032bc8e026adfbc085c4f2be2084c9635..70fe539966204e26963a102a41d1634a534c92ca 100644 (file)
@@ -69,12 +69,12 @@ public class DefaultServerTest {
     assertThat(metadata.getPublicRootUrl()).isEqualTo("http://foo.com");
   }
 
-  @Test
-  public void invalidDate() {
+  @Test(expected = RuntimeException.class)
+  public void invalid_startup_date_throws_exception() {
     Settings settings = new Settings();
     settings.setProperty(CoreProperties.SERVER_STARTTIME, "invalid");
     BatchWsClient client = mock(BatchWsClient.class);
     DefaultServer metadata = new DefaultServer(settings, client);
-    assertThat(metadata.getStartedAt()).isNull();
+    metadata.getStartedAt();
   }
 }