Browse Source

SONAR-11621 Add sonar.scm.exclusions.disabled property

tags/7.7
Benoît Gianinetti 5 years ago
parent
commit
93ae9e4354

+ 5
- 0
sonar-plugin-api/src/main/java/org/sonar/api/CoreProperties.java View File

@@ -515,6 +515,11 @@ public interface CoreProperties {
*/
String SCM_DISABLED_KEY = "sonar.scm.disabled";

/**
* @since 7.6
*/
String SCM_EXCLUSIONS_DISABLED_KEY = "sonar.scm.exclusions.disabled";

/**
* @since 5.0
*/

+ 8
- 0
sonar-scanner-engine/src/main/java/org/sonar/scanner/scm/ScmConfiguration.java View File

@@ -59,6 +59,7 @@ public class ScmConfiguration implements Startable {
public static final String FORCE_RELOAD_KEY = "sonar.scm.forceReloadAll";

static final String MESSAGE_SCM_STEP_IS_DISABLED_BY_CONFIGURATION = "SCM Step is disabled by configuration";
static final String MESSAGE_SCM_EXLUSIONS_IS_DISABLED_BY_CONFIGURATION = "Exclusions based on SCM info is disabled by configuration";

private final Configuration settings;
private final AnalysisWarnings analysisWarnings;
@@ -105,6 +106,9 @@ public class ScmConfiguration implements Startable {
analysisWarnings.addUnique(message);
}
}
if (isExclusionDisabled()) {
LOG.info(MESSAGE_SCM_EXLUSIONS_IS_DISABLED_BY_CONFIGURATION);
}
}

private void setProviderIfSupported(String forcedProviderKey) {
@@ -150,6 +154,10 @@ public class ScmConfiguration implements Startable {
return settings.getBoolean(CoreProperties.SCM_DISABLED_KEY).orElse(false);
}

public boolean isExclusionDisabled() {
return isDisabled() || settings.getBoolean(CoreProperties.SCM_EXCLUSIONS_DISABLED_KEY).orElse(false);
}

public boolean forceReloadAll() {
return settings.getBoolean(FORCE_RELOAD_KEY).orElse(false);
}

+ 31
- 0
sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmConfigurationTest.java View File

@@ -48,6 +48,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.withSettings;
import static org.sonar.scanner.scm.ScmConfiguration.MESSAGE_SCM_EXLUSIONS_IS_DISABLED_BY_CONFIGURATION;
import static org.sonar.scanner.scm.ScmConfiguration.MESSAGE_SCM_STEP_IS_DISABLED_BY_CONFIGURATION;

@RunWith(DataProviderRunner.class)
@@ -103,6 +104,36 @@ public class ScmConfigurationTest {
assertThat(logTester.logs()).contains(MESSAGE_SCM_STEP_IS_DISABLED_BY_CONFIGURATION);
}

@Test
public void log_when_exclusion_is_disabled() {
when(settings.getBoolean(CoreProperties.SCM_EXCLUSIONS_DISABLED_KEY)).thenReturn(Optional.of(true));

underTest.start();

assertThat(logTester.logs()).contains(MESSAGE_SCM_EXLUSIONS_IS_DISABLED_BY_CONFIGURATION);
}

@Test
@UseDataProvider("scmDisabledProperty")
public void exclusion_is_disabled_by_property(boolean scmDisabled, boolean scmExclusionsDisabled, boolean isScmExclusionDisabled) {
when(settings.getBoolean(CoreProperties.SCM_DISABLED_KEY)).thenReturn(Optional.of(scmDisabled));
when(settings.getBoolean(CoreProperties.SCM_EXCLUSIONS_DISABLED_KEY)).thenReturn(Optional.of(scmExclusionsDisabled));

underTest.start();

assertThat(underTest.isExclusionDisabled()).isEqualTo(isScmExclusionDisabled);
}

@DataProvider
public static Object[][] scmDisabledProperty() {
return new Object[][] {
{true, true, true},
{true, false, true},
{false, true, true},
{false, false, false}
};
}

@Test
public void return_early_from_start_in_issues_mode() {
// return early = doesn't reach the logging when disabled

Loading…
Cancel
Save