aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-06-30 10:38:11 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-06-30 10:53:05 +0200
commit8ccfa525b8dbe7b6d639002df58ad5841a9208bd (patch)
tree69eb689560fcf6f85d711b52e3532a4db522e709
parent81e17e86cb55558de9d48c6e5fbda1cc79e98355 (diff)
downloadsonarqube-8ccfa525b8dbe7b6d639002df58ad5841a9208bd.tar.gz
sonarqube-8ccfa525b8dbe7b6d639002df58ad5841a9208bd.zip
SONAR-6621 warn log if sonar.qualitygate set in project properties
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/ProjectSettings.java22
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java14
2 files changed, 34 insertions, 2 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectSettings.java b/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectSettings.java
index 3219c719864..9a794590c43 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectSettings.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectSettings.java
@@ -19,16 +19,29 @@
*/
package org.sonar.batch.scan;
+import com.google.common.collect.ImmutableMap;
+import java.util.Map;
import org.sonar.api.CoreProperties;
import org.sonar.api.batch.bootstrap.ProjectReactor;
import org.sonar.api.config.PropertyDefinitions;
import org.sonar.api.config.Settings;
import org.sonar.api.utils.MessageException;
+import org.sonar.api.utils.log.Logger;
+import org.sonar.api.utils.log.Loggers;
import org.sonar.batch.bootstrap.DefaultAnalysisMode;
import org.sonar.batch.bootstrap.GlobalSettings;
import org.sonar.batch.protocol.input.ProjectRepositories;
public class ProjectSettings extends Settings {
+ private static final Logger LOGGER = Loggers.get(ProjectSettings.class);
+
+ /**
+ * A map of dropped properties as key and specific message to display for that property
+ * (what will happen, what should the user do, ...) as a value
+ */
+ private static final Map<String, String> DROPPED_PROPERTIES = ImmutableMap.of(
+ "sonar.qualitygate", "It will be ignored."
+ );
private final GlobalSettings globalSettings;
private final ProjectRepositories projectRepositories;
@@ -42,6 +55,7 @@ public class ProjectSettings extends Settings {
this.globalSettings = globalSettings;
this.projectRepositories = projectRepositories;
init(reactor);
+ checkDroppedProperties();
}
private void init(ProjectReactor reactor) {
@@ -52,6 +66,14 @@ public class ProjectSettings extends Settings {
addProperties(reactor.getRoot().properties());
}
+ private void checkDroppedProperties() {
+ for (Map.Entry<String, String> entry : DROPPED_PROPERTIES.entrySet()) {
+ if (hasKey(entry.getKey())) {
+ LOGGER.warn("Property '{}' is not supported any more. {}", entry.getKey(), entry.getValue());
+ }
+ }
+ }
+
@Override
protected void doOnGetProperties(String key) {
if (mode.isPreview() && key.endsWith(".secured") && !key.contains(".license")) {
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java
index 532393a56e0..c2e936ecf8b 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java
@@ -20,6 +20,7 @@
package org.sonar.batch.scan;
import com.google.common.collect.ImmutableMap;
+import java.util.Collections;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -29,14 +30,13 @@ import org.sonar.api.batch.bootstrap.ProjectDefinition;
import org.sonar.api.batch.bootstrap.ProjectReactor;
import org.sonar.api.config.PropertyDefinitions;
import org.sonar.api.utils.MessageException;
+import org.sonar.api.utils.log.LogTester;
import org.sonar.batch.bootstrap.BootstrapProperties;
import org.sonar.batch.bootstrap.DefaultAnalysisMode;
import org.sonar.batch.bootstrap.GlobalSettings;
import org.sonar.batch.protocol.input.GlobalRepositories;
import org.sonar.batch.protocol.input.ProjectRepositories;
-import java.util.Collections;
-
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -45,6 +45,8 @@ public class ProjectSettingsTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
+ @Rule
+ public LogTester logTester = new LogTester();
ProjectRepositories projectRef;
ProjectDefinition project = ProjectDefinition.create().setKey("struts");
@@ -113,4 +115,12 @@ public class ProjectSettingsTest {
batchSettings.getString("sonar.foo.secured");
}
+ @Test
+ public void should_log_a_warning_when_a_dropper_property_is_present() {
+ GlobalSettings settings = new GlobalSettings(new BootstrapProperties(ImmutableMap.of("sonar.qualitygate", "somevalue")), new PropertyDefinitions(), new GlobalRepositories(), mode);
+ new ProjectSettings(new ProjectReactor(project), settings, new PropertyDefinitions(), projectRef, mode);
+
+ logTester.logs().contains("Property 'sonar.qualitygate' is not supported any more. It will be ignored.");
+
+ }
}