diff options
Diffstat (limited to 'sonar-db')
-rw-r--r-- | sonar-db/pom.xml | 5 | ||||
-rw-r--r-- | sonar-db/src/main/java/org/sonar/db/DefaultDatabase.java | 10 | ||||
-rw-r--r-- | sonar-db/src/test/java/org/sonar/db/DefaultDatabaseTest.java | 13 | ||||
-rw-r--r-- | sonar-db/src/test/java/org/sonar/db/TestDb.java | 3 |
4 files changed, 22 insertions, 9 deletions
diff --git a/sonar-db/pom.xml b/sonar-db/pom.xml index 9d95b998e29..ccffa08f014 100644 --- a/sonar-db/pom.xml +++ b/sonar-db/pom.xml @@ -73,6 +73,11 @@ <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>sonar-process</artifactId> + <version>${project.version}</version> + </dependency> <!-- tests --> <dependency> diff --git a/sonar-db/src/main/java/org/sonar/db/DefaultDatabase.java b/sonar-db/src/main/java/org/sonar/db/DefaultDatabase.java index 2b1360c46ab..5a1995161d9 100644 --- a/sonar-db/src/main/java/org/sonar/db/DefaultDatabase.java +++ b/sonar-db/src/main/java/org/sonar/db/DefaultDatabase.java @@ -19,6 +19,7 @@ */ package org.sonar.db; +import ch.qos.logback.classic.Level; import com.google.common.annotations.VisibleForTesting; import java.sql.Connection; import java.sql.SQLException; @@ -39,6 +40,7 @@ import org.sonar.db.dialect.DialectUtils; import org.sonar.db.profiling.NullConnectionInterceptor; import org.sonar.db.profiling.ProfiledConnectionInterceptor; import org.sonar.db.profiling.ProfiledDataSource; +import org.sonar.process.LogbackHelper; import static java.lang.String.format; @@ -54,12 +56,14 @@ public class DefaultDatabase implements Database { private static final String SONAR_JDBC_DIALECT = "sonar.jdbc.dialect"; private static final String SONAR_JDBC_URL = "sonar.jdbc.url"; - private Settings settings; + private final LogbackHelper logbackHelper; + private final Settings settings; private ProfiledDataSource datasource; private Dialect dialect; private Properties properties; - public DefaultDatabase(Settings settings) { + public DefaultDatabase(LogbackHelper logbackHelper, Settings settings) { + this.logbackHelper = logbackHelper; this.settings = settings; } @@ -93,7 +97,7 @@ public class DefaultDatabase implements Database { datasource = new ProfiledDataSource(basicDataSource, NullConnectionInterceptor.INSTANCE); datasource.setConnectionInitSqls(dialect.getConnectionInitStatements()); datasource.setValidationQuery(dialect.getValidationQuery()); - enableSqlLogging(datasource, "TRACE".equals(settings.getString("sonar.log.level"))); + enableSqlLogging(datasource, logbackHelper.getLoggerLevel("sql") == Level.TRACE); } private void checkConnection() { diff --git a/sonar-db/src/test/java/org/sonar/db/DefaultDatabaseTest.java b/sonar-db/src/test/java/org/sonar/db/DefaultDatabaseTest.java index 2ab4bbad182..454dcbac3ac 100644 --- a/sonar-db/src/test/java/org/sonar/db/DefaultDatabaseTest.java +++ b/sonar-db/src/test/java/org/sonar/db/DefaultDatabaseTest.java @@ -25,14 +25,17 @@ import org.junit.Test; import org.sonar.api.config.Settings; import org.sonar.api.config.MapSettings; import org.sonar.db.dialect.PostgreSql; +import org.sonar.process.LogbackHelper; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; public class DefaultDatabaseTest { + private LogbackHelper logbackHelper = mock(LogbackHelper.class); @Test public void shouldLoadDefaultValues() { - DefaultDatabase db = new DefaultDatabase(new MapSettings()); + DefaultDatabase db = new DefaultDatabase(logbackHelper, new MapSettings()); db.initSettings(); Properties props = db.getProperties(); @@ -59,7 +62,7 @@ public class DefaultDatabaseTest { public void shouldCompleteProperties() { Settings settings = new MapSettings(); - DefaultDatabase db = new DefaultDatabase(settings) { + DefaultDatabase db = new DefaultDatabase(logbackHelper, settings) { @Override protected void doCompleteProperties(Properties properties) { properties.setProperty("sonar.jdbc.maxActive", "2"); @@ -81,7 +84,7 @@ public class DefaultDatabaseTest { settings.setProperty("sonar.jdbc.password", "sonar"); settings.setProperty("sonar.jdbc.maxActive", "1"); - DefaultDatabase db = new DefaultDatabase(settings); + DefaultDatabase db = new DefaultDatabase(logbackHelper, settings); db.start(); db.stop(); @@ -94,7 +97,7 @@ public class DefaultDatabaseTest { Settings settings = new MapSettings(); settings.setProperty("sonar.jdbc.url", "jdbc:postgresql://localhost/sonar"); - DefaultDatabase database = new DefaultDatabase(settings); + DefaultDatabase database = new DefaultDatabase(logbackHelper, settings); database.initSettings(); assertThat(database.getDialect().getId()).isEqualTo(PostgreSql.ID); @@ -105,7 +108,7 @@ public class DefaultDatabaseTest { Settings settings = new MapSettings(); settings.setProperty("sonar.jdbc.url", "jdbc:postgresql://localhost/sonar"); - DefaultDatabase database = new DefaultDatabase(settings); + DefaultDatabase database = new DefaultDatabase(logbackHelper, settings); database.initSettings(); assertThat(database.getProperties().getProperty("sonar.jdbc.driverClassName")).isEqualTo("org.postgresql.Driver"); diff --git a/sonar-db/src/test/java/org/sonar/db/TestDb.java b/sonar-db/src/test/java/org/sonar/db/TestDb.java index 4d008a2338c..4f6d0c0c0b0 100644 --- a/sonar-db/src/test/java/org/sonar/db/TestDb.java +++ b/sonar-db/src/test/java/org/sonar/db/TestDb.java @@ -41,6 +41,7 @@ import org.sonar.api.config.MapSettings; import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; import org.sonar.db.dialect.H2; +import org.sonar.process.LogbackHelper; /** * This class should be call using @ClassRule in order to create the schema once (ft @Rule is used @@ -84,7 +85,7 @@ class TestDb { } String dialect = settings.getString("sonar.jdbc.dialect"); if (dialect != null && !"h2".equals(dialect)) { - db = new DefaultDatabase(settings); + db = new DefaultDatabase(new LogbackHelper(), settings); } else { db = new H2Database("h2Tests" + DigestUtils.md5Hex(StringUtils.defaultString(schemaPath)), schemaPath == null); } |