@@ -34,8 +34,8 @@ public abstract class AbstractPatternInitializer { | |||
private Configuration settings; | |||
private List<IssuePattern> multicriteriaPatterns; | |||
protected AbstractPatternInitializer(Configuration settings) { | |||
this.settings = settings; | |||
protected AbstractPatternInitializer(Configuration config) { | |||
this.settings = config; | |||
initPatterns(); | |||
} | |||
@@ -40,7 +40,7 @@ public class IssueExclusionPatternInitializer extends AbstractPatternInitializer | |||
@Override | |||
protected String getMulticriteriaConfigurationKey() { | |||
return "sonar.issue.ignore" + ".multicriteria"; | |||
return IssueExclusionProperties.EXCLUSION_KEY_PREFIX + ".multicriteria"; | |||
} | |||
@Override |
@@ -20,6 +20,7 @@ | |||
package org.sonar.scanner.issue.ignore.pattern; | |||
import org.sonar.api.config.Configuration; | |||
import org.sonar.core.config.IssueExclusionProperties; | |||
public class IssueInclusionPatternInitializer extends AbstractPatternInitializer { | |||
@@ -29,6 +30,6 @@ public class IssueInclusionPatternInitializer extends AbstractPatternInitializer | |||
@Override | |||
protected String getMulticriteriaConfigurationKey() { | |||
return "sonar.issue.enforce" + ".multicriteria"; | |||
return IssueExclusionProperties.INCLUSION_KEY_PREFIX + ".multicriteria"; | |||
} | |||
} |
@@ -25,9 +25,9 @@ import org.sonar.api.config.PropertyDefinitions; | |||
import org.sonar.scanner.bootstrap.GlobalAnalysisMode; | |||
import org.sonar.scanner.config.DefaultConfiguration; | |||
public class ModuleSettings extends DefaultConfiguration { | |||
public class ModuleConfiguration extends DefaultConfiguration { | |||
public ModuleSettings(PropertyDefinitions propertyDefinitions, Encryption encryption, GlobalAnalysisMode mode, Map<String, String> props) { | |||
public ModuleConfiguration(PropertyDefinitions propertyDefinitions, Encryption encryption, GlobalAnalysisMode mode, Map<String, String> props) { | |||
super(propertyDefinitions, encryption, mode, props); | |||
} | |||
@@ -32,23 +32,23 @@ import org.sonar.scanner.bootstrap.GlobalConfiguration; | |||
import org.sonar.scanner.report.AnalysisContextReportPublisher; | |||
import org.sonar.scanner.repository.ProjectRepositories; | |||
public class ModuleSettingsProvider extends ProviderAdapter { | |||
public class ModuleConfigurationProvider extends ProviderAdapter { | |||
private ModuleSettings projectSettings; | |||
private ModuleConfiguration moduleConfiguration; | |||
public ModuleSettings provide(GlobalConfiguration globalSettings, DefaultInputModule module, ProjectRepositories projectRepos, | |||
GlobalAnalysisMode analysisMode, AnalysisContextReportPublisher contextReportPublisher) { | |||
if (projectSettings == null) { | |||
public ModuleConfiguration provide(GlobalConfiguration globalConfig, DefaultInputModule module, ProjectRepositories projectRepos, | |||
GlobalAnalysisMode analysisMode, AnalysisContextReportPublisher contextReportPublisher) { | |||
if (moduleConfiguration == null) { | |||
Map<String, String> settings = new LinkedHashMap<>(); | |||
settings.putAll(globalSettings.getProperties()); | |||
settings.putAll(globalConfig.getProperties()); | |||
settings.putAll(addServerSidePropertiesIfModuleExists(projectRepos, module.definition())); | |||
addScannerSideProperties(settings, module.definition()); | |||
contextReportPublisher.dumpModuleSettings(module); | |||
projectSettings = new ModuleSettings(globalSettings.getDefinitions(), globalSettings.getEncryption(), analysisMode, settings); | |||
moduleConfiguration = new ModuleConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), analysisMode, settings); | |||
} | |||
return projectSettings; | |||
return moduleConfiguration; | |||
} | |||
private static Map<String, String> addServerSidePropertiesIfModuleExists(ProjectRepositories projectRepos, ProjectDefinition def) { |
@@ -89,7 +89,7 @@ public class ModuleScanContainer extends ComponentContainer { | |||
module.definition(), | |||
module, | |||
MutableModuleSettings.class, | |||
new ModuleSettingsProvider()); | |||
new ModuleConfigurationProvider()); | |||
if (analysisMode.isIssues()) { | |||
add( |
@@ -33,7 +33,7 @@ import org.sonar.scanner.repository.ProjectRepositories; | |||
import static java.util.Objects.requireNonNull; | |||
/** | |||
* @deprecated since 6.5 {@link ModuleSettings} used to be mutable, so keep a mutable copy for backward compatibility. | |||
* @deprecated since 6.5 {@link ModuleConfiguration} used to be mutable, so keep a mutable copy for backward compatibility. | |||
*/ | |||
@Deprecated | |||
public class MutableModuleSettings extends Settings { | |||
@@ -69,7 +69,7 @@ public class MutableModuleSettings extends Settings { | |||
} | |||
private void addBuildProperties(ProjectDefinition project) { | |||
List<ProjectDefinition> orderedProjects = ModuleSettingsProvider.getTopDownParentProjects(project); | |||
List<ProjectDefinition> orderedProjects = ModuleConfigurationProvider.getTopDownParentProjects(project); | |||
for (ProjectDefinition p : orderedProjects) { | |||
addProperties(p.properties()); | |||
} |
@@ -32,7 +32,7 @@ import org.sonar.scanner.repository.ProjectRepositories; | |||
import static java.util.Objects.requireNonNull; | |||
/** | |||
* @deprecated since 6.5 {@link ProjectSettings} used to be mutable, so keep a mutable copy for backward compatibility. | |||
* @deprecated since 6.5 {@link ProjectConfiguration} used to be mutable, so keep a mutable copy for backward compatibility. | |||
*/ | |||
@Deprecated | |||
public class MutableProjectSettings extends Settings { |
@@ -25,9 +25,9 @@ import org.sonar.api.config.PropertyDefinitions; | |||
import org.sonar.scanner.bootstrap.GlobalAnalysisMode; | |||
import org.sonar.scanner.config.DefaultConfiguration; | |||
public class ProjectSettings extends DefaultConfiguration { | |||
public class ProjectConfiguration extends DefaultConfiguration { | |||
public ProjectSettings(PropertyDefinitions propertyDefinitions, Encryption encryption, GlobalAnalysisMode mode, Map<String, String> props) { | |||
public ProjectConfiguration(PropertyDefinitions propertyDefinitions, Encryption encryption, GlobalAnalysisMode mode, Map<String, String> props) { | |||
super(propertyDefinitions, encryption, mode, props); | |||
} | |||
@@ -27,20 +27,20 @@ import org.sonar.scanner.bootstrap.GlobalAnalysisMode; | |||
import org.sonar.scanner.bootstrap.GlobalConfiguration; | |||
import org.sonar.scanner.repository.ProjectRepositories; | |||
public class ProjectSettingsProvider extends ProviderAdapter { | |||
public class ProjectConfigurationProvider extends ProviderAdapter { | |||
private ProjectSettings projectSettings; | |||
private ProjectConfiguration projectConfig; | |||
public ProjectSettings provide(ProjectReactor reactor, GlobalConfiguration globalSettings, ProjectRepositories projectRepositories, GlobalAnalysisMode mode) { | |||
if (projectSettings == null) { | |||
public ProjectConfiguration provide(ProjectReactor reactor, GlobalConfiguration globalSettings, ProjectRepositories projectRepositories, GlobalAnalysisMode mode) { | |||
if (projectConfig == null) { | |||
Map<String, String> settings = new LinkedHashMap<>(); | |||
settings.putAll(globalSettings.getProperties()); | |||
settings.putAll(projectRepositories.settings(reactor.getRoot().getKeyWithBranch())); | |||
settings.putAll(reactor.getRoot().properties()); | |||
projectSettings = new ProjectSettings(globalSettings.getDefinitions(), globalSettings.getEncryption(), mode, settings); | |||
projectConfig = new ProjectConfiguration(globalSettings.getDefinitions(), globalSettings.getEncryption(), mode, settings); | |||
} | |||
return projectSettings; | |||
return projectConfig; | |||
} | |||
} |
@@ -119,8 +119,8 @@ public class ProjectScanContainer extends ComponentContainer { | |||
@Override | |||
protected void doBeforeStart() { | |||
addBatchComponents(); | |||
addBatchExtensions(); | |||
addScannerComponents(); | |||
addScannerExtensions(); | |||
ProjectLock lock = getComponentByType(ProjectLock.class); | |||
lock.tryLock(); | |||
getComponentByType(WorkDirectoriesInitializer.class).execute(); | |||
@@ -133,7 +133,7 @@ public class ProjectScanContainer extends ComponentContainer { | |||
} | |||
private void addBatchComponents() { | |||
private void addScannerComponents() { | |||
add( | |||
props, | |||
ProjectReactorBuilder.class, | |||
@@ -202,7 +202,7 @@ public class ProjectScanContainer extends ComponentContainer { | |||
MutableProjectSettings.class, | |||
ScannerProperties.class, | |||
new ProjectSettingsProvider(), | |||
new ProjectConfigurationProvider(), | |||
// Report | |||
ScannerMetrics.class, | |||
@@ -252,15 +252,15 @@ public class ProjectScanContainer extends ComponentContainer { | |||
return getComponentByType(GlobalAnalysisMode.class).isIssues(); | |||
} | |||
private void addBatchExtensions() { | |||
private void addScannerExtensions() { | |||
getComponentByType(CoreExtensionsInstaller.class) | |||
.install(this, noExtensionFilter(), extension -> isInstantiationStrategy(extension, PER_BATCH)); | |||
.install(this, noExtensionFilter(), extension -> getScannerProjectExtensionsFilter().accept(extension)); | |||
getComponentByType(ExtensionInstaller.class) | |||
.install(this, getBatchPluginExtensionsFilter()); | |||
.install(this, getScannerProjectExtensionsFilter()); | |||
} | |||
@VisibleForTesting | |||
static ExtensionMatcher getBatchPluginExtensionsFilter() { | |||
static ExtensionMatcher getScannerProjectExtensionsFilter() { | |||
return extension -> isScannerSide(extension) || (isDeprecatedScannerSide(extension) && isInstantiationStrategy(extension, PER_BATCH)); | |||
} | |||
@@ -56,7 +56,7 @@ public class BranchConfigurationProvider extends ProviderAdapter { | |||
} | |||
private static Supplier<Map<String, String>> createSettingsSupplier(GlobalConfiguration globalConfiguration, ProjectDefinition root, SettingsLoader settingsLoader) { | |||
// we can't get ProjectSettings because it creates a circular dependency. | |||
// we can't get ProjectConfiguration because it creates a circular dependency. | |||
// We create our own settings which will only be loaded if needed. | |||
return () -> { | |||
Map<String, String> settings = new HashMap<>(); |
@@ -30,7 +30,7 @@ import org.sonar.api.utils.log.LogTester; | |||
import org.sonar.api.utils.log.LoggerLevel; | |||
import org.sonar.scanner.bootstrap.GlobalAnalysisMode; | |||
import org.sonar.scanner.config.DefaultConfiguration; | |||
import org.sonar.scanner.scan.ProjectSettings; | |||
import org.sonar.scanner.scan.ProjectConfiguration; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
@@ -49,7 +49,7 @@ public class GenericCoverageSensorTest { | |||
settings.put(GenericCoverageSensor.OLD_OVERALL_COVERAGE_REPORT_PATHS_PROPERTY_KEY, "old5.xml,old6.xml"); | |||
PropertyDefinitions defs = new PropertyDefinitions(GenericCoverageSensor.properties()); | |||
DefaultConfiguration config = new ProjectSettings(defs, new Encryption(null), mock(GlobalAnalysisMode.class), settings); | |||
DefaultConfiguration config = new ProjectConfiguration(defs, new Encryption(null), mock(GlobalAnalysisMode.class), settings); | |||
Set<String> reportPaths = new GenericCoverageSensor(config).loadReportPaths(); | |||
@@ -31,14 +31,12 @@ import org.junit.rules.TemporaryFolder; | |||
import org.sonar.api.batch.sensor.internal.SensorContextTester; | |||
import org.sonar.api.config.Encryption; | |||
import org.sonar.api.config.PropertyDefinitions; | |||
import org.sonar.api.config.Settings; | |||
import org.sonar.api.config.internal.MapSettings; | |||
import org.sonar.api.utils.log.LogTester; | |||
import org.sonar.api.utils.log.LoggerLevel; | |||
import org.sonar.scanner.bootstrap.GlobalAnalysisMode; | |||
import org.sonar.scanner.config.DefaultConfiguration; | |||
import org.sonar.scanner.deprecated.test.TestPlanBuilder; | |||
import org.sonar.scanner.scan.ProjectSettings; | |||
import org.sonar.scanner.scan.ProjectConfiguration; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
@@ -61,7 +59,7 @@ public class GenericTestExecutionSensorTest { | |||
Map<String, String> settings = new HashMap<>(); | |||
settings.put(GenericTestExecutionSensor.OLD_UNIT_TEST_REPORT_PATHS_PROPERTY_KEY, "report.xml"); | |||
PropertyDefinitions defs = new PropertyDefinitions(GenericTestExecutionSensor.properties()); | |||
DefaultConfiguration config = new ProjectSettings(defs, new Encryption(null), mock(GlobalAnalysisMode.class), settings); | |||
DefaultConfiguration config = new ProjectConfiguration(defs, new Encryption(null), mock(GlobalAnalysisMode.class), settings); | |||
new GenericTestExecutionSensor(mock(TestPlanBuilder.class), config).execute(context); | |||
assertThat(logTester.logs(LoggerLevel.WARN)).contains( |
@@ -76,7 +76,7 @@ public class MutableModuleSettingsTest { | |||
grandParent.addSubProject(parent); | |||
parent.addSubProject(child); | |||
List<ProjectDefinition> hierarchy = ModuleSettingsProvider.getTopDownParentProjects(child); | |||
List<ProjectDefinition> hierarchy = ModuleConfigurationProvider.getTopDownParentProjects(child); | |||
assertThat(hierarchy.get(0)).isEqualTo(grandParent); | |||
assertThat(hierarchy.get(1)).isEqualTo(parent); | |||
assertThat(hierarchy.get(2)).isEqualTo(child); |
@@ -32,7 +32,7 @@ public class ProjectScanContainerTest { | |||
@Test | |||
public void should_add_only_batch_extensions() { | |||
ExtensionMatcher filter = ProjectScanContainer.getBatchPluginExtensionsFilter(); | |||
ExtensionMatcher filter = ProjectScanContainer.getScannerProjectExtensionsFilter(); | |||
assertThat(filter.accept(new MyBatchExtension())).isTrue(); | |||
assertThat(filter.accept(MyBatchExtension.class)).isTrue(); |