aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build.gradle3
-rw-r--r--gradle.properties2
-rw-r--r--server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java35
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java4
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java2
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml9
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java2
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableModuleSettings.java65
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableProjectSettings.java71
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java8
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java4
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java5
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java16
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java14
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java4
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java14
16 files changed, 81 insertions, 177 deletions
diff --git a/build.gradle b/build.gradle
index a80886fc06c..fed1788a82f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -302,7 +302,7 @@ subprojects {
dependency 'com.sonarsource.security:sonar-security-python-frontend-plugin:11.1.0.35630'
dependency 'com.sonarsource.security:sonar-security-js-frontend-plugin:11.1.0.35630'
dependency 'com.sonarsource.slang:sonar-apex-plugin:1.18.0.198'
- dependency 'org.sonarsource.slang:sonar-ruby-plugin:1.18.0.234'
+ dependency 'org.sonarsource.slang:sonar-ruby-plugin:1.19.0.471'
dependency 'org.sonarsource.slang:sonar-scala-plugin:1.18.0.266'
dependency 'com.sonarsource.swift:sonar-swift-plugin:4.13.1.8101'
dependency 'com.sonarsource.tsql:sonar-tsql-plugin:1.14.0.7614'
@@ -518,6 +518,7 @@ subprojects {
exclude 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
}
dependency 'com.sonarsource.pdfreport:security-report-pdf-generation:2.0.0.184'
+ dependency 'com.sonarsource.fixsuggestions:ai-suggestions-shared:1.0.0.1220'
dependency 'org.sonarsource.update-center:sonar-update-center-common:1.35.0.2835'
dependency 'org.sonarsource.classloader:sonar-classloader:1.1.0.1059'
dependency 'org.springdoc:springdoc-openapi-starter-webmvc-api:2.8.6'
diff --git a/gradle.properties b/gradle.properties
index 5142d360241..04ea2c9bf9b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,4 +15,4 @@ elasticSearchServerVersion=8.16.3
projectType=application
artifactoryUrl=https://repox.jfrog.io/repox
jre_release_name=jdk-17.0.13+11
-webappVersion=2025.3.0.16376
+webappVersion=2025.3.0.16560
diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java
index 2b1cb099fca..feae0d3f20c 100644
--- a/server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java
+++ b/server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java
@@ -906,6 +906,41 @@ class BranchDaoIT {
tuple(branch1.getUuid(), projectData1.projectUuid(), true));
}
+ @Test
+ void selectPullRequestsTargetingBranch() {
+ BranchDto mainBranch = new BranchDto();
+ mainBranch.setProjectUuid("U1");
+ mainBranch.setUuid("U1");
+ mainBranch.setIsMain(true);
+ mainBranch.setBranchType(BranchType.BRANCH);
+ mainBranch.setKey("master");
+ underTest.insert(dbSession, mainBranch);
+
+ BranchDto prBranch = new BranchDto();
+ prBranch.setProjectUuid("U1");
+ prBranch.setUuid("U2");
+ prBranch.setIsMain(false);
+ prBranch.setBranchType(PULL_REQUEST);
+ prBranch.setKey("1234");
+ prBranch.setMergeBranchUuid("U1");
+ underTest.insert(dbSession, prBranch);
+
+ // make a second PR also targeting main branch
+ prBranch.setUuid("U3");
+ prBranch.setKey("4321");
+ prBranch.setMergeBranchUuid("U1");
+ underTest.insert(dbSession, prBranch);
+
+ // make a third PR NOT targeting main branch to be sure we filter it out
+ prBranch.setUuid("U4");
+ prBranch.setKey("5678");
+ prBranch.setMergeBranchUuid("U42");
+ underTest.insert(dbSession, prBranch);
+
+ var result = underTest.selectPullRequestsTargetingBranch(dbSession, "U1", "U1");
+ assertThat(result.stream().map(BranchDto::getUuid).toList()).containsExactlyInAnyOrder("U2", "U3");
+ }
+
private void insertBranchesForProjectUuids(boolean mainBranch, String... uuids) {
for (String uuid : uuids) {
BranchDto dto = new BranchDto();
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java
index 1f72e4a4002..faa712d555d 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java
@@ -214,4 +214,8 @@ public class BranchDao implements Dao {
public List<BranchDto> selectMainBranchesAssociatedToDefaultQualityProfile(DbSession dbSession) {
return mapper(dbSession).selectMainBranchesAssociatedToDefaultQualityProfile();
}
+
+ public List<BranchDto> selectPullRequestsTargetingBranch(DbSession dbSession, String projectUuid, String branchUuid) {
+ return mapper(dbSession).selectPullRequestsTargetingBranch(projectUuid, branchUuid);
+ }
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java
index 04c4642834f..dbd11313580 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java
@@ -81,4 +81,6 @@ public interface BranchMapper {
List<BranchDto> selectMainBranches();
List<BranchDto> selectMainBranchesAssociatedToDefaultQualityProfile();
+
+ List<BranchDto> selectPullRequestsTargetingBranch(@Param("projectUuid") String projectUuid, @Param("branchUuid") String branchUuid);
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml
index f96a116d7c1..acf970ba7ac 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml
@@ -322,4 +322,13 @@
and p.uuid not in (select project_uuid from project_qprofiles)
</select>
+ <select id="selectPullRequestsTargetingBranch" resultType="org.sonar.db.component.BranchDto">
+ select <include refid="columns"/>
+ from project_branches pb
+ where
+ pb.project_uuid = #{projectUuid, jdbcType=VARCHAR}
+ and pb.merge_branch_uuid = #{branchUuid, jdbcType=VARCHAR}
+ and pb.branch_type = 'PULL_REQUEST'
+ </select>
+
</mapper>
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java
index 9c41891dbab..0ce43672d5b 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java
@@ -99,7 +99,6 @@ import org.sonar.scanner.scan.InputModuleHierarchyProvider;
import org.sonar.scanner.scan.InputProjectProvider;
import org.sonar.scanner.scan.ModuleIndexer;
import org.sonar.scanner.scan.MutableProjectReactorProvider;
-import org.sonar.scanner.scan.MutableProjectSettings;
import org.sonar.scanner.scan.ProjectBuildersExecutor;
import org.sonar.scanner.scan.ProjectConfigurationProvider;
import org.sonar.scanner.scan.ProjectLock;
@@ -226,7 +225,6 @@ public class SpringScannerContainer extends SpringComponentContainer {
ContextPropertiesCache.class,
TelemetryCache.class,
- MutableProjectSettings.class,
SonarGlobalPropertiesFilter.class,
ProjectConfigurationProvider.class,
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableModuleSettings.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableModuleSettings.java
deleted file mode 100644
index 15912f8a510..00000000000
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableModuleSettings.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2025 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.scanner.scan;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import jakarta.annotation.Priority;
-import org.sonar.api.config.internal.Settings;
-
-import static java.util.Objects.requireNonNull;
-
-/**
- * @deprecated since 6.5 {@link ModuleConfiguration} used to be mutable, so keep a mutable copy for backward compatibility.
- */
-@Deprecated
-@Priority(1)
-public class MutableModuleSettings extends Settings {
-
- private final Map<String, String> properties = new HashMap<>();
-
- public MutableModuleSettings(ModuleConfiguration config) {
- super(config.getDefinitions(), config.getEncryption());
- addProperties(config.getProperties());
- }
-
- @Override
- protected Optional<String> get(String key) {
- return Optional.ofNullable(properties.get(key));
- }
-
- @Override
- protected void set(String key, String value) {
- properties.put(
- requireNonNull(key, "key can't be null"),
- requireNonNull(value, "value can't be null").trim());
- }
-
- @Override
- protected void remove(String key) {
- properties.remove(key);
- }
-
- @Override
- public Map<String, String> getProperties() {
- return properties;
- }
-}
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableProjectSettings.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableProjectSettings.java
deleted file mode 100644
index df24cbe81e5..00000000000
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableProjectSettings.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2025 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.scanner.scan;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import org.sonar.api.config.internal.Settings;
-import org.sonar.scanner.bootstrap.GlobalConfiguration;
-
-import jakarta.annotation.Priority;
-
-import static java.util.Objects.requireNonNull;
-
-/**
- * @deprecated since 6.5 {@link ProjectConfiguration} used to be mutable, so keep a mutable copy for backward compatibility.
- */
-@Deprecated
-@Priority(2)
-public class MutableProjectSettings extends Settings {
-
- private final Map<String, String> properties = new HashMap<>();
-
- public MutableProjectSettings(GlobalConfiguration globalConfig) {
- super(globalConfig.getDefinitions(), globalConfig.getEncryption());
- addProperties(globalConfig.getProperties());
- }
-
- public void complete(ProjectConfiguration projectConfig) {
- addProperties(projectConfig.getProperties());
- }
-
- @Override
- protected Optional<String> get(String key) {
- return Optional.ofNullable(properties.get(key));
- }
-
- @Override
- protected void set(String key, String value) {
- properties.put(
- requireNonNull(key, "key can't be null"),
- requireNonNull(value, "value can't be null").trim());
- }
-
- @Override
- protected void remove(String key) {
- properties.remove(key);
- }
-
- @Override
- public Map<String, String> getProperties() {
- return properties;
- }
-}
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java
index c12ec245924..e5543d4f9c5 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java
@@ -26,7 +26,6 @@ import org.sonar.scanner.bootstrap.GlobalConfiguration;
import org.sonar.scanner.bootstrap.GlobalServerSettings;
import org.springframework.context.annotation.Bean;
-
public class ProjectConfigurationProvider {
private final SonarGlobalPropertiesFilter sonarGlobalPropertiesFilter;
@@ -37,7 +36,7 @@ public class ProjectConfigurationProvider {
@Bean("ProjectConfiguration")
public ProjectConfiguration provide(DefaultInputProject project, GlobalConfiguration globalConfig, GlobalServerSettings globalServerSettings,
- ProjectServerSettings projectServerSettings, MutableProjectSettings projectSettings) {
+ ProjectServerSettings projectServerSettings) {
Map<String, String> settings = new LinkedHashMap<>();
settings.putAll(globalServerSettings.properties());
settings.putAll(projectServerSettings.properties());
@@ -45,10 +44,7 @@ public class ProjectConfigurationProvider {
settings = sonarGlobalPropertiesFilter.enforceOnlyServerSideSonarGlobalPropertiesAreUsed(settings, globalServerSettings.properties());
- ProjectConfiguration projectConfig = new ProjectConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), settings);
- projectSettings.complete(projectConfig);
- return projectConfig;
+ return new ProjectConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), settings);
}
-
}
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java
index 4315c762481..8ddb889912d 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java
@@ -54,7 +54,6 @@ public class SpringModuleScanContainer extends SpringComponentContainer {
add(
module.definition(),
module,
- MutableModuleSettings.class,
SonarGlobalPropertiesFilter.class,
ModuleConfigurationProvider.class,
@@ -68,8 +67,7 @@ public class SpringModuleScanContainer extends SpringComponentContainer {
ModuleSensorOptimizer.class,
ModuleSensorContext.class,
- ModuleSensorExtensionDictionary.class
- );
+ ModuleSensorExtensionDictionary.class);
}
private void addExtensions() {
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java
index 5f28e7e283e..01b6c0c11cd 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java
@@ -28,7 +28,6 @@ import org.sonar.api.batch.rule.ActiveRules;
import org.sonar.api.batch.sensor.cache.ReadCache;
import org.sonar.api.batch.sensor.cache.WriteCache;
import org.sonar.api.config.Configuration;
-import org.sonar.api.config.Settings;
import org.sonar.scanner.bootstrap.ScannerPluginRepository;
import org.sonar.scanner.cache.AnalysisCacheEnabled;
import org.sonar.scanner.scan.branch.BranchConfiguration;
@@ -38,11 +37,11 @@ public class ModuleSensorContext extends ProjectSensorContext {
private final InputModule module;
- public ModuleSensorContext(DefaultInputProject project, InputModule module, Configuration config, Settings mutableModuleSettings, FileSystem fs, ActiveRules activeRules,
+ public ModuleSensorContext(DefaultInputProject project, InputModule module, Configuration config, FileSystem fs, ActiveRules activeRules,
DefaultSensorStorage sensorStorage, SonarRuntime sonarRuntime, BranchConfiguration branchConfiguration,
WriteCache writeCache, ReadCache readCache, AnalysisCacheEnabled analysisCacheEnabled, UnchangedFilesHandler unchangedFilesHandler,
ExecutingSensorContext executingSensorContext, ScannerPluginRepository pluginRepository) {
- super(project, config, mutableModuleSettings, fs, activeRules, sensorStorage, sonarRuntime, branchConfiguration, writeCache, readCache, analysisCacheEnabled,
+ super(project, config, fs, activeRules, sensorStorage, sonarRuntime, branchConfiguration, writeCache, readCache, analysisCacheEnabled,
unchangedFilesHandler, executingSensorContext, pluginRepository);
this.module = module;
}
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java
index 6fb38fa4563..54c86750eaf 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java
@@ -66,7 +66,6 @@ public class ProjectSensorContext implements SensorContext {
static final NoOpNewAnalysisError NO_OP_NEW_ANALYSIS_ERROR = new NoOpNewAnalysisError();
- private final Settings mutableSettings;
private final FileSystem fs;
private final ActiveRules activeRules;
private final DefaultSensorStorage sensorStorage;
@@ -81,15 +80,14 @@ public class ProjectSensorContext implements SensorContext {
private final ExecutingSensorContext executingSensorContext;
private final ScannerPluginRepository pluginRepo;
- public ProjectSensorContext(DefaultInputProject project, Configuration config, Settings mutableSettings, FileSystem fs,
- ActiveRules activeRules,
- DefaultSensorStorage sensorStorage, SonarRuntime sonarRuntime, BranchConfiguration branchConfiguration,
- WriteCache writeCache, ReadCache readCache,
- AnalysisCacheEnabled analysisCacheEnabled, UnchangedFilesHandler unchangedFilesHandler,
- ExecutingSensorContext executingSensorContext, ScannerPluginRepository pluginRepo) {
+ public ProjectSensorContext(DefaultInputProject project, Configuration config, FileSystem fs,
+ ActiveRules activeRules,
+ DefaultSensorStorage sensorStorage, SonarRuntime sonarRuntime, BranchConfiguration branchConfiguration,
+ WriteCache writeCache, ReadCache readCache,
+ AnalysisCacheEnabled analysisCacheEnabled, UnchangedFilesHandler unchangedFilesHandler,
+ ExecutingSensorContext executingSensorContext, ScannerPluginRepository pluginRepo) {
this.project = project;
this.config = config;
- this.mutableSettings = mutableSettings;
this.fs = fs;
this.activeRules = activeRules;
this.sensorStorage = sensorStorage;
@@ -105,7 +103,7 @@ public class ProjectSensorContext implements SensorContext {
@Override
public Settings settings() {
- return mutableSettings;
+ throw new UnsupportedOperationException("This method is not supported anymore");
}
@Override
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java
index 21dcf58b114..3e3066e76e2 100644
--- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java
+++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java
@@ -52,10 +52,9 @@ public class ProjectConfigurationProviderTest {
private static final Map<String, String> PROJECT_SERVER_PROPERTIES = Map.of(NON_GLOBAL_KEY_PROPERTIES_1, NON_GLOBAL_VALUE_PROPERTIES_1);
private static final Map<String, String> DEFAULT_PROJECT_PROPERTIES = Map.of(DEFAULT_KEY_PROPERTIES_1, DEFAULT_VALUE_1);
- private static final Map<String, String> ALL_PROPERTIES_MAP =
- Stream.of(GLOBAL_SERVER_PROPERTIES, PROJECT_SERVER_PROPERTIES, DEFAULT_PROJECT_PROPERTIES)
- .flatMap(map -> map.entrySet().stream())
- .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+ private static final Map<String, String> ALL_PROPERTIES_MAP = Stream.of(GLOBAL_SERVER_PROPERTIES, PROJECT_SERVER_PROPERTIES, DEFAULT_PROJECT_PROPERTIES)
+ .flatMap(map -> map.entrySet().stream())
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
private static final Map<String, String> PROPERTIES_AFTER_FILTERING = Map.of("aKey", "aValue");
@@ -66,8 +65,6 @@ public class ProjectConfigurationProviderTest {
@Mock
private GlobalConfiguration globalConfiguration;
@Mock
- private MutableProjectSettings mutableProjectSettings;
- @Mock
private DefaultInputProject defaultInputProject;
@Mock
private SonarGlobalPropertiesFilter sonarGlobalPropertiesFilter;
@@ -75,7 +72,6 @@ public class ProjectConfigurationProviderTest {
@InjectMocks
private ProjectConfigurationProvider provider;
-
@Before
public void init() {
when(globalConfiguration.getDefinitions()).thenReturn(new PropertyDefinitions(System2.INSTANCE));
@@ -89,11 +85,11 @@ public class ProjectConfigurationProviderTest {
when(sonarGlobalPropertiesFilter.enforceOnlyServerSideSonarGlobalPropertiesAreUsed(ALL_PROPERTIES_MAP, GLOBAL_SERVER_PROPERTIES))
.thenReturn(PROPERTIES_AFTER_FILTERING);
- ProjectConfiguration provide = provider.provide(defaultInputProject, globalConfiguration, globalServerSettings, projectServerSettings, mutableProjectSettings);
+ ProjectConfiguration provide = provider.provide(defaultInputProject, globalConfiguration, globalServerSettings, projectServerSettings);
verify(sonarGlobalPropertiesFilter).enforceOnlyServerSideSonarGlobalPropertiesAreUsed(ALL_PROPERTIES_MAP, GLOBAL_SERVER_PROPERTIES);
assertThat(provide.getOriginalProperties()).containsExactlyEntriesOf(PROPERTIES_AFTER_FILTERING);
}
-} \ No newline at end of file
+}
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java
index 4ab9f46fb4a..3a0ff7fb4c2 100644
--- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java
+++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java
@@ -68,7 +68,7 @@ class ModuleSensorContextTest {
@BeforeEach
void prepare() {
fs = new DefaultFileSystem(temp);
- underTest = new ModuleSensorContext(mock(DefaultInputProject.class), mock(InputModule.class), settings.asConfig(), settings, fs, activeRules, sensorStorage, runtime,
+ underTest = new ModuleSensorContext(mock(DefaultInputProject.class), mock(InputModule.class), settings.asConfig(), fs, activeRules, sensorStorage, runtime,
branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository);
}
@@ -104,7 +104,7 @@ class ModuleSensorContextTest {
@Test
void pull_request_can_skip_unchanged_files() {
when(branchConfiguration.isPullRequest()).thenReturn(true);
- underTest = new ModuleSensorContext(mock(DefaultInputProject.class), mock(InputModule.class), settings.asConfig(), settings, fs, activeRules, sensorStorage, runtime,
+ underTest = new ModuleSensorContext(mock(DefaultInputProject.class), mock(InputModule.class), settings.asConfig(), fs, activeRules, sensorStorage, runtime,
branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository);
assertThat(underTest.canSkipUnchangedFiles()).isTrue();
}
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java
index 3c7f3d36793..01c337a5ed0 100644
--- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java
+++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java
@@ -59,8 +59,8 @@ class ProjectSensorContextTest {
private ExecutingSensorContext executingSensorContext = mock(ExecutingSensorContext.class);
private ScannerPluginRepository pluginRepository = mock(ScannerPluginRepository.class);
- private ProjectSensorContext underTest = new ProjectSensorContext(mock(DefaultInputProject.class), settings.asConfig(), settings, fs, activeRules, sensorStorage, runtime,
- branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository);
+ private ProjectSensorContext underTest = new ProjectSensorContext(mock(DefaultInputProject.class), settings.asConfig(), fs, activeRules, sensorStorage, runtime,
+ branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository);
private static final String PLUGIN_KEY = "org.sonarsource.pluginKey";
@@ -69,7 +69,6 @@ class ProjectSensorContextTest {
when(executingSensorContext.getSensorExecuting()).thenReturn(new SensorId(PLUGIN_KEY, "sensorName"));
}
-
@Test
void addTelemetryProperty_whenTheOrganizationIsSonarSource_mustStoreTheTelemetry() {
@@ -77,16 +76,21 @@ class ProjectSensorContextTest {
underTest.addTelemetryProperty("key", "value");
- //then verify that the defaultStorage is called with the telemetry property once
+ // then verify that the defaultStorage is called with the telemetry property once
verify(sensorStorage).storeTelemetry("key", "value");
}
@Test
- void addTelemetryProperty_whenTheOrganizationIsNotSonarSource_mustThrowExcaption() {
+ void addTelemetryProperty_whenTheOrganizationIsNotSonarSource_mustThrowException() {
when(pluginRepository.getPluginInfo(PLUGIN_KEY)).thenReturn(new PluginInfo(PLUGIN_KEY).setOrganizationName("notSonarsource"));
assertThrows(IllegalStateException.class, () -> underTest.addTelemetryProperty("key", "value"));
verifyNoInteractions(sensorStorage);
}
+
+ @Test
+ void settings_throwsUnsupportedOperationException() {
+ assertThrows(UnsupportedOperationException.class, () -> underTest.settings());
+ }
}