aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-11-16 12:03:11 +0100
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-11-16 18:46:47 +0100
commitd28bd659fda693609a26d3598eebeac8c5deef6d (patch)
tree833626727fcfc982dcdcd093bb4d1fb6a683afa7 /sonar-db
parent0aaf59f1624a7fb2f2efb21603fd5cfcb205e8f6 (diff)
downloadsonarqube-d28bd659fda693609a26d3598eebeac8c5deef6d.tar.gz
sonarqube-d28bd659fda693609a26d3598eebeac8c5deef6d.zip
SONAR-8336 add properties to control SQL logs level in CE and Web
Diffstat (limited to 'sonar-db')
-rw-r--r--sonar-db/pom.xml5
-rw-r--r--sonar-db/src/main/java/org/sonar/db/DefaultDatabase.java10
-rw-r--r--sonar-db/src/test/java/org/sonar/db/DefaultDatabaseTest.java13
-rw-r--r--sonar-db/src/test/java/org/sonar/db/TestDb.java3
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);
}