private static Supplier<Map<String, String>> createSettingsSupplier(ProjectDefinition root, GlobalServerSettings globalServerSettings, ProjectServerSettings projectServerSettings) { // 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<>(); settings.putAll(globalServerSettings.properties()); settings.putAll(projectServerSettings.properties()); settings.putAll(root.properties()); return settings; }; } }
public ProjectServerSettings provide(SettingsLoader loader, AnalysisWarnings analysisWarnings) { if (singleton == null) { Map<String, String> serverSideSettings = loader.loadProjectSettings(); if (StringUtils.isNotBlank(serverSideSettings.get(CoreProperties.MODULE_LEVEL_ARCHIVED_SETTINGS))) { LOG.warn(MODULE_LEVEL_ARCHIVED_SETTINGS_WARNING); analysisWarnings.addUnique(MODULE_LEVEL_ARCHIVED_SETTINGS_WARNING); } singleton = new ProjectServerSettings(serverSideSettings); } return singleton; } }
private void writeProjectSettings(BufferedWriter fileWriter) throws IOException { fileWriter.append("Project server settings:\n"); Map<String, String> props = projectServerSettings.properties(); for (String prop : new TreeSet<>(props.keySet())) { dumpPropIfNotSensitive(fileWriter, prop, props.get(prop)); } fileWriter.append("Project scanner properties:\n"); writeScannerProps(fileWriter, hierarchy.root().properties()); }
public ProjectServerSettings provide(SettingsLoader loader, AnalysisWarnings analysisWarnings) { if (singleton == null) { Map<String, String> serverSideSettings = loader.loadProjectSettings(); if (StringUtils.isNotBlank(serverSideSettings.get(CoreProperties.MODULE_LEVEL_ARCHIVED_SETTINGS))) { LOG.warn(MODULE_LEVEL_ARCHIVED_SETTINGS_WARNING); analysisWarnings.addUnique(MODULE_LEVEL_ARCHIVED_SETTINGS_WARNING); } singleton = new ProjectServerSettings(serverSideSettings); } return singleton; } }
public ProjectConfiguration provide(DefaultInputProject project, GlobalConfiguration globalConfig, GlobalServerSettings globalServerSettings, ProjectServerSettings projectServerSettings, MutableProjectSettings projectSettings) { if (projectConfig == null) { Map<String, String> settings = new LinkedHashMap<>(); settings.putAll(globalServerSettings.properties()); settings.putAll(projectServerSettings.properties()); settings.putAll(project.properties()); projectConfig = new ProjectConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), settings); projectSettings.complete(projectConfig); } return projectConfig; } }
public ModuleConfiguration provide(GlobalConfiguration globalConfig, DefaultInputModule module, GlobalServerSettings globalServerSettings, ProjectServerSettings projectServerSettings) { if (moduleConfiguration == null) { Map<String, String> settings = new LinkedHashMap<>(); settings.putAll(globalServerSettings.properties()); settings.putAll(projectServerSettings.properties()); addScannerSideProperties(settings, module.definition()); moduleConfiguration = new ModuleConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), settings); } return moduleConfiguration; }
@Test public void settings_should_include_command_line_args_with_highest_priority() { when(globalConfiguration.getProperties()).thenReturn(Collections.singletonMap("key", "global")); when(projectServerSettings.properties()).thenReturn(Collections.singletonMap("key", "settings")); when(root.properties()).thenReturn(Collections.singletonMap("key", "root")); provider.provide(loader, globalConfiguration, reactor, globalServerSettings, projectServerSettings, branches, pullRequests); verify(loader).load(anyMap(), settingsCaptor.capture(), any(ProjectBranches.class), any(ProjectPullRequests.class)); Map<String, String> map = settingsCaptor.getValue().get(); assertThat(map.get("key")).isEqualTo("root"); }
@Test public void dumpServerSideProjectProps() throws Exception { logTester.setLevel(LoggerLevel.DEBUG); ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder()); DefaultInputModule rootModule = new DefaultInputModule(ProjectDefinition.create() .setBaseDir(temp.newFolder()) .setWorkDir(temp.newFolder()) .setProperty("sonar.projectKey", "foo")); when(store.allModules()).thenReturn(singletonList(rootModule)); when(hierarchy.root()).thenReturn(rootModule); when(projectServerSettings.properties()).thenReturn(ImmutableMap.of(COM_FOO, "bar", SONAR_SKIP, "true")); publisher.init(writer); List<String> lines = FileUtils.readLines(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8); assertThat(lines).containsExactly("Environment variables:", "System properties:", "SonarQube plugins:", "Global server settings:", "Project server settings:", " - com.foo=bar", " - sonar.skip=true", "Project scanner properties:", " - sonar.projectKey=foo"); }
private static Supplier<Map<String, String>> createSettingsSupplier(ProjectDefinition root, GlobalServerSettings globalServerSettings, ProjectServerSettings projectServerSettings) { // 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<>(); settings.putAll(globalServerSettings.properties()); settings.putAll(projectServerSettings.properties()); settings.putAll(root.properties()); return settings; }; } }
private void writeProjectSettings(BufferedWriter fileWriter) throws IOException { fileWriter.append("Project server settings:\n"); Map<String, String> props = projectServerSettings.properties(); for (String prop : new TreeSet<>(props.keySet())) { dumpPropIfNotSensitive(fileWriter, prop, props.get(prop)); } fileWriter.append("Project scanner properties:\n"); writeScannerProps(fileWriter, hierarchy.root().properties()); }
public ProjectConfiguration provide(DefaultInputProject project, GlobalConfiguration globalConfig, GlobalServerSettings globalServerSettings, ProjectServerSettings projectServerSettings, MutableProjectSettings projectSettings) { if (projectConfig == null) { Map<String, String> settings = new LinkedHashMap<>(); settings.putAll(globalServerSettings.properties()); settings.putAll(projectServerSettings.properties()); settings.putAll(project.properties()); projectConfig = new ProjectConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), settings); projectSettings.complete(projectConfig); } return projectConfig; } }
public ModuleConfiguration provide(GlobalConfiguration globalConfig, DefaultInputModule module, GlobalServerSettings globalServerSettings, ProjectServerSettings projectServerSettings) { if (moduleConfiguration == null) { Map<String, String> settings = new LinkedHashMap<>(); settings.putAll(globalServerSettings.properties()); settings.putAll(projectServerSettings.properties()); addScannerSideProperties(settings, module.definition()); moduleConfiguration = new ModuleConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), settings); } return moduleConfiguration; }