From 9e704c5749434366f62fe8b06913ab5e56fedf08 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 11 Feb 2014 22:49:37 +0100 Subject: [PATCH] Database implements Startable --- .../main/java/org/sonar/core/persistence/Database.java | 7 ++----- .../java/org/sonar/core/persistence/DefaultDatabase.java | 9 +++++---- .../core/persistence/profiling/PersistenceProfiling.java | 7 +++---- .../test/java/org/sonar/core/persistence/H2Database.java | 8 ++++---- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/Database.java b/sonar-core/src/main/java/org/sonar/core/persistence/Database.java index e2a9f75d118..b83dcaea6f9 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/Database.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/Database.java @@ -19,6 +19,7 @@ */ package org.sonar.core.persistence; +import org.picocontainer.Startable; import org.sonar.core.persistence.dialect.Dialect; import javax.sql.DataSource; @@ -27,11 +28,7 @@ import java.util.Properties; /** * @since 2.12 */ -public interface Database { - Database start(); - - Database stop(); - +public interface Database extends Startable { /** * Returns the configured datasource. Null as long as start() is not executed. */ diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DefaultDatabase.java b/sonar-core/src/main/java/org/sonar/core/persistence/DefaultDatabase.java index bec9bf8aafa..a4785642dcc 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/DefaultDatabase.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/DefaultDatabase.java @@ -25,6 +25,7 @@ import org.apache.commons.dbcp.BasicDataSourceFactory; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.lang.StringUtils; import org.hibernate.cfg.Environment; +import org.picocontainer.Startable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.config.Settings; @@ -67,13 +68,13 @@ public class DefaultDatabase implements Database { this.settings = settings; } - public final DefaultDatabase start() { + @Override + public void start() { try { initSettings(); initDatasource(); checkConnection(); doAfterStart(); - return this; } catch (Exception e) { throw new IllegalStateException("Fail to connect to database", e); @@ -139,7 +140,8 @@ public class DefaultDatabase implements Database { } } - public final DefaultDatabase stop() { + @Override + public void stop() { if (datasource != null) { try { datasource.close(); @@ -147,7 +149,6 @@ public class DefaultDatabase implements Database { throw new IllegalStateException("Fail to stop JDBC connection pool", e); } } - return this; } public final Dialect getDialect() { diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/profiling/PersistenceProfiling.java b/sonar-core/src/main/java/org/sonar/core/persistence/profiling/PersistenceProfiling.java index 335e7025ef4..35faac5b3e9 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/profiling/PersistenceProfiling.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/profiling/PersistenceProfiling.java @@ -33,11 +33,10 @@ public final class PersistenceProfiling { } public static BasicDataSource addProfilingIfNeeded(BasicDataSource datasource, Settings settings) { - Profiling.Level profilingLevel = Profiling.Level.fromConfigString(settings.getString(Profiling.CONFIG_PROFILING_LEVEL)); - if (profilingLevel == Profiling.Level.FULL) { + Profiling.Level level = Profiling.Level.fromConfigString(settings.getString(Profiling.CONFIG_PROFILING_LEVEL)); + if (level == Profiling.Level.FULL) { return new ProfilingDataSource(datasource); - } else { - return datasource; } + return datasource; } } diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/H2Database.java b/sonar-core/src/test/java/org/sonar/core/persistence/H2Database.java index 774249bbe1f..a2216af69b0 100644 --- a/sonar-core/src/test/java/org/sonar/core/persistence/H2Database.java +++ b/sonar-core/src/test/java/org/sonar/core/persistence/H2Database.java @@ -50,12 +50,12 @@ public class H2Database implements Database { this.createSchema = createSchema; } - public H2Database start() { + @Override + public void start() { startDatabase(); if (createSchema) { createSchema(); } - return this; } private void startDatabase() { @@ -96,13 +96,13 @@ public class H2Database implements Database { } } - public H2Database stop() { + @Override + public void stop() { try { datasource.close(); } catch (SQLException e) { // Ignore error } - return this; } public DataSource getDataSource() { -- 2.39.5