*/
package org.sonar.server.platform;
+import com.google.common.collect.ImmutableMap;
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;
-import org.sonar.db.property.PropertyDto;
/**
* The server node marked as "startup leader" generates some information about startup. These
public class StartupMetadataPersister implements Startable {
private final StartupMetadata metadata;
- private final DbClient dbClient;
+ private final PersistentSettings persistentSettings;
- public StartupMetadataPersister(StartupMetadata metadata, DbClient dbClient) {
+ public StartupMetadataPersister(StartupMetadata metadata, PersistentSettings persistentSettings) {
this.metadata = metadata;
- this.dbClient = dbClient;
+ this.persistentSettings = persistentSettings;
}
@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(CoreProperties.SERVER_STARTTIME).setValue(startedAt));
- dbSession.commit();
- }
+ String startedAt = DateUtils.formatDateTime(new Date(metadata.getStartedAt()));
+ persistentSettings.saveProperties(ImmutableMap.of(
+ CoreProperties.SERVER_ID, metadata.getStartupId(),
+ CoreProperties.SERVER_STARTTIME, startedAt));
}
@Override
import org.sonar.server.platform.ServerIdGenerator;
import org.sonar.server.platform.ServerIdLoader;
import org.sonar.server.platform.StartupMetadataPersister;
+import org.sonar.server.startup.LogServerId;
public class PlatformLevel3 extends PlatformLevel {
public PlatformLevel3(PlatformLevel parent) {
DefaultHttpDownloader.class,
UriReader.class,
ServerIdLoader.class,
- ServerIdGenerator.class);
+ ServerIdGenerator.class,
+ LogServerId.class);
}
}
import org.sonar.server.startup.DisplayLogOnDeprecatedProjects;
import org.sonar.server.startup.FeedUsersLocalStartupTask;
import org.sonar.server.startup.GeneratePluginIndex;
-import org.sonar.server.startup.LogServerId;
import org.sonar.server.startup.RegisterDashboards;
import org.sonar.server.startup.RegisterMetrics;
import org.sonar.server.startup.RegisterNewMeasureFilters;
@Override
protected void configureLevel() {
add(GeneratePluginIndex.class,
- LogServerId.class,
RegisterServletFilters.class,
ServerLifecycleNotifier.class);
*/
package org.sonar.server.platform;
+import java.util.Properties;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.sonar.api.CoreProperties;
+import org.sonar.api.config.PropertyDefinitions;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
@Rule
public DbTester dbTester = DbTester.create(System2.INSTANCE);
+ private PersistentSettings persistentSettings = new PersistentSettings(dbTester.getDbClient(), new ServerSettingsImpl(new PropertyDefinitions(), new Properties()));
private StartupMetadata metadata = new StartupMetadata("an_id", 123_456_789L);
- private StartupMetadataPersister underTest = new StartupMetadataPersister(metadata, dbTester.getDbClient());
+ private StartupMetadataPersister underTest = new StartupMetadataPersister(metadata, persistentSettings);
@Test
public void persist_metadata_at_startup() {
*/
package org.sonar.server.platform;
+import java.util.Properties;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.sonar.api.CoreProperties;
import org.sonar.api.SonarQubeSide;
import org.sonar.api.SonarRuntime;
+import org.sonar.api.config.PropertyDefinitions;
import org.sonar.api.internal.SonarRuntimeImpl;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.System2;
}
private void testLoadingFromDatabase(SonarRuntime runtime, boolean isStartupLeader) {
- new StartupMetadataPersister(new StartupMetadata(AN_ID, A_DATE), dbTester.getDbClient()).start();
+ PersistentSettings persistentSettings = new PersistentSettings(dbTester.getDbClient(), new ServerSettingsImpl(new PropertyDefinitions(), new Properties()));
+ new StartupMetadataPersister(new StartupMetadata(AN_ID, A_DATE), persistentSettings).start();
cluster.setStartupLeader(isStartupLeader);
StartupMetadata metadata = underTest.provide(uuidFactory, system, runtime, cluster, dbTester.getDbClient());