diff options
Diffstat (limited to 'sonar-core')
239 files changed, 984 insertions, 354 deletions
diff --git a/sonar-core/build.gradle b/sonar-core/build.gradle index df61f1b8825..8406f2f1e08 100644 --- a/sonar-core/build.gradle +++ b/sonar-core/build.gradle @@ -23,6 +23,8 @@ dependencies { compileOnlyApi 'com.github.spotbugs:spotbugs-annotations' compileOnlyApi 'com.google.code.gson:gson' + implementation 'org.apache.commons:commons-exec' + testImplementation 'com.tngtech.java:junit-dataprovider' testImplementation 'junit:junit' testImplementation 'org.assertj:assertj-core' diff --git a/sonar-core/src/it/java/org/sonar/core/util/DefaultHttpDownloaderIT.java b/sonar-core/src/it/java/org/sonar/core/util/DefaultHttpDownloaderIT.java index cbab2fd1955..0045b7e884e 100644 --- a/sonar-core/src/it/java/org/sonar/core/util/DefaultHttpDownloaderIT.java +++ b/sonar-core/src/it/java/org/sonar/core/util/DefaultHttpDownloaderIT.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/ce/CeTaskCharacteristics.java b/sonar-core/src/main/java/org/sonar/core/ce/CeTaskCharacteristics.java index fc47210eb99..18028ef4545 100644 --- a/sonar-core/src/main/java/org/sonar/core/ce/CeTaskCharacteristics.java +++ b/sonar-core/src/main/java/org/sonar/core/ce/CeTaskCharacteristics.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/ce/package-info.java b/sonar-core/src/main/java/org/sonar/core/ce/package-info.java index 032879f3c96..e467e84ffe2 100644 --- a/sonar-core/src/main/java/org/sonar/core/ce/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/ce/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java b/sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java index a37697ce133..3e4824d72be 100644 --- a/sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java +++ b/sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/component/package-info.java b/sonar-core/src/main/java/org/sonar/core/component/package-info.java index 9be2d1c8e4a..b228f1f333e 100644 --- a/sonar-core/src/main/java/org/sonar/core/component/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/component/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/AiCodeFixEnablementConstants.java b/sonar-core/src/main/java/org/sonar/core/config/AiCodeFixEnablementConstants.java index 6e4ee5ca133..fb7fa85a72c 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/AiCodeFixEnablementConstants.java +++ b/sonar-core/src/main/java/org/sonar/core/config/AiCodeFixEnablementConstants.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -21,6 +21,10 @@ package org.sonar.core.config; public final class AiCodeFixEnablementConstants { public static final String SUGGESTION_FEATURE_ENABLED_PROPERTY = "sonar.ai.suggestions.enabled"; + public static final String SUGGESTION_PROVIDER_KEY_PROPERTY = "sonar.ai.suggestions.provider.key"; + public static final String SUGGESTION_PROVIDER_MODEL_KEY_PROPERTY = "sonar.ai.suggestions.provider.modelKey"; + public static final String SUGGESTION_PROVIDER_ENDPOINT_PROPERTY = "sonar.ai.suggestions.provider.endpoint"; + public static final String SUGGESTION_PROVIDER_API_KEY_INTERNAL_PROPERTY = "sonar.ai.suggestions.provider.apiKey"; private AiCodeFixEnablementConstants() { } diff --git a/sonar-core/src/main/java/org/sonar/core/config/AiCodefixPropertyDefinitions.java b/sonar-core/src/main/java/org/sonar/core/config/AiCodefixPropertyDefinitions.java new file mode 100644 index 00000000000..328cfb94813 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/config/AiCodefixPropertyDefinitions.java @@ -0,0 +1,47 @@ +/* + * 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.core.config; + +import java.util.List; +import org.sonar.api.PropertyType; +import org.sonar.api.config.PropertyDefinition; + +import static org.sonar.api.config.PropertyDefinition.builder; + +public class AiCodefixPropertyDefinitions { + public static final String PROP_AI_CODEFIX_HIDDEN = "sonar.ai.codefix.hidden"; + public static final String AI_CODE_CATEGORY = "ai_codefix"; + + private AiCodefixPropertyDefinitions() { + // only static stuff + } + + public static List<PropertyDefinition> all() { + return List.of( + builder(PROP_AI_CODEFIX_HIDDEN) + .name("AI Codefix feature hidden") + .description("Defines if the AI Codefix feature should be hidden across the product, including its marketing content.") + .type(PropertyType.BOOLEAN) + .hidden() + .category(AI_CODE_CATEGORY) + .defaultValue(Boolean.toString(false)) + .build()); + } +} diff --git a/sonar-core/src/main/java/org/sonar/core/config/ComputeEngineProperties.java b/sonar-core/src/main/java/org/sonar/core/config/ComputeEngineProperties.java index 0f9c85e99d7..55b5324ea4d 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/ComputeEngineProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/ComputeEngineProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java index 3740ea7b0c7..beb314cae1e 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java +++ b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -66,6 +66,7 @@ public class CorePropertyDefinitions { defs.addAll(PurgeProperties.all()); defs.addAll(ScannerProperties.all()); defs.addAll(MQRModeProperties.all()); + defs.addAll(AiCodefixPropertyDefinitions.all()); defs.addAll(asList( PropertyDefinition.builder(CoreProperties.MODULE_LEVEL_ARCHIVED_SETTINGS) diff --git a/sonar-core/src/main/java/org/sonar/core/config/DebtProperties.java b/sonar-core/src/main/java/org/sonar/core/config/DebtProperties.java index b1efbfade58..73b2ef78732 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/DebtProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/DebtProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/ExclusionProperties.java b/sonar-core/src/main/java/org/sonar/core/config/ExclusionProperties.java index 248d64e4f6a..317490350bd 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/ExclusionProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/ExclusionProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/Frequency.java b/sonar-core/src/main/java/org/sonar/core/config/Frequency.java index bdf34959bb1..4385922bf3a 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/Frequency.java +++ b/sonar-core/src/main/java/org/sonar/core/config/Frequency.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/IssueExclusionProperties.java b/sonar-core/src/main/java/org/sonar/core/config/IssueExclusionProperties.java index c77ea4fbf3e..56067bdda81 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/IssueExclusionProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/IssueExclusionProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/Logback.java b/sonar-core/src/main/java/org/sonar/core/config/Logback.java index 593bc6079a5..29fc6566d65 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/Logback.java +++ b/sonar-core/src/main/java/org/sonar/core/config/Logback.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/MQRModeConstants.java b/sonar-core/src/main/java/org/sonar/core/config/MQRModeConstants.java index 20d36c2ea5b..2b3b366dd5d 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/MQRModeConstants.java +++ b/sonar-core/src/main/java/org/sonar/core/config/MQRModeConstants.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/MQRModeProperties.java b/sonar-core/src/main/java/org/sonar/core/config/MQRModeProperties.java index b5ef02e42e9..4167ff508d9 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/MQRModeProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/MQRModeProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/MaxTokenLifetimeOption.java b/sonar-core/src/main/java/org/sonar/core/config/MaxTokenLifetimeOption.java index d0a05b52c4d..20e9c7df6e7 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/MaxTokenLifetimeOption.java +++ b/sonar-core/src/main/java/org/sonar/core/config/MaxTokenLifetimeOption.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/ProxyProperties.java b/sonar-core/src/main/java/org/sonar/core/config/ProxyProperties.java index e5eb089bc99..c07943826fc 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/ProxyProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/ProxyProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/PurgeConstants.java b/sonar-core/src/main/java/org/sonar/core/config/PurgeConstants.java index 4a8c9a671d8..60edf16a1ce 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/PurgeConstants.java +++ b/sonar-core/src/main/java/org/sonar/core/config/PurgeConstants.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/PurgeProperties.java b/sonar-core/src/main/java/org/sonar/core/config/PurgeProperties.java index 255f8fbbc8f..e2005b2ff8d 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/PurgeProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/PurgeProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/ScannerProperties.java b/sonar-core/src/main/java/org/sonar/core/config/ScannerProperties.java index b1c68acb353..22e7bd5346c 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/ScannerProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/ScannerProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/SecurityProperties.java b/sonar-core/src/main/java/org/sonar/core/config/SecurityProperties.java index 5b564817384..061f8bf563a 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/SecurityProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/SecurityProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/SvnProperties.java b/sonar-core/src/main/java/org/sonar/core/config/SvnProperties.java index 04e11a1f265..0598ff959d5 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/SvnProperties.java +++ b/sonar-core/src/main/java/org/sonar/core/config/SvnProperties.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/TokenExpirationConstants.java b/sonar-core/src/main/java/org/sonar/core/config/TokenExpirationConstants.java index 07dc9eb7b66..aaa711648b7 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/TokenExpirationConstants.java +++ b/sonar-core/src/main/java/org/sonar/core/config/TokenExpirationConstants.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/WebConstants.java b/sonar-core/src/main/java/org/sonar/core/config/WebConstants.java index 96aa913365e..a363456c837 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/WebConstants.java +++ b/sonar-core/src/main/java/org/sonar/core/config/WebConstants.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/config/package-info.java b/sonar-core/src/main/java/org/sonar/core/config/package-info.java index f0c908c8116..30bc737f935 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/config/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/documentation/DefaultDocumentationLinkGenerator.java b/sonar-core/src/main/java/org/sonar/core/documentation/DefaultDocumentationLinkGenerator.java index b499c6406f4..015b8780a35 100644 --- a/sonar-core/src/main/java/org/sonar/core/documentation/DefaultDocumentationLinkGenerator.java +++ b/sonar-core/src/main/java/org/sonar/core/documentation/DefaultDocumentationLinkGenerator.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/documentation/DocumentationBaseLinkProvider.java b/sonar-core/src/main/java/org/sonar/core/documentation/DocumentationBaseLinkProvider.java index e1f18289f84..b26fac5cd9c 100644 --- a/sonar-core/src/main/java/org/sonar/core/documentation/DocumentationBaseLinkProvider.java +++ b/sonar-core/src/main/java/org/sonar/core/documentation/DocumentationBaseLinkProvider.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/documentation/DocumentationLinkGenerator.java b/sonar-core/src/main/java/org/sonar/core/documentation/DocumentationLinkGenerator.java index aad1593af15..35c5caf1d80 100644 --- a/sonar-core/src/main/java/org/sonar/core/documentation/DocumentationLinkGenerator.java +++ b/sonar-core/src/main/java/org/sonar/core/documentation/DocumentationLinkGenerator.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/documentation/VersionedDocumentationBaseLinkProvider.java b/sonar-core/src/main/java/org/sonar/core/documentation/VersionedDocumentationBaseLinkProvider.java index 4b6b3271c86..302d45465be 100644 --- a/sonar-core/src/main/java/org/sonar/core/documentation/VersionedDocumentationBaseLinkProvider.java +++ b/sonar-core/src/main/java/org/sonar/core/documentation/VersionedDocumentationBaseLinkProvider.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/documentation/package-info.java b/sonar-core/src/main/java/org/sonar/core/documentation/package-info.java index cbe06c6281b..000f2d7ca4a 100644 --- a/sonar-core/src/main/java/org/sonar/core/documentation/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/documentation/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtension.java b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtension.java index 7d7e868697a..cce494d4149 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtension.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtension.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionRepository.java b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionRepository.java index 78f9b13ee78..adee45c65d2 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionRepository.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionRepository.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionRepositoryImpl.java b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionRepositoryImpl.java index bdbaf6f486b..95e2f502ed2 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionRepositoryImpl.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionRepositoryImpl.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsInstaller.java b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsInstaller.java index cbd04f866a2..10640cab072 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsInstaller.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsInstaller.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -24,12 +24,12 @@ import java.util.Arrays; import java.util.Collection; import java.util.Optional; import java.util.function.Predicate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.sonar.api.SonarRuntime; import org.sonar.api.config.Configuration; import org.sonar.api.config.internal.MapSettings; import org.sonar.api.utils.AnnotationUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.sonar.core.platform.ExtensionContainer; import static java.util.Objects.requireNonNull; @@ -72,7 +72,7 @@ public abstract class CoreExtensionsInstaller { try { addDeclaredExtensions(container, extensionFilter, additionalSideFilter, coreExtension); - LOG.debug("Installed core extension: " + coreExtensionName); + LOG.debug("Installed core extension: {}", coreExtensionName); coreExtensionRepository.installed(coreExtension); } catch (Exception e) { throw new RuntimeException("Failed to load core extension " + coreExtensionName, e); diff --git a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsLoader.java b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsLoader.java index 1dfdcb96604..3265e3998f2 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsLoader.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsLoader.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -19,10 +19,10 @@ */ package org.sonar.core.extension; +import jakarta.inject.Inject; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import jakarta.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,7 +53,9 @@ public class CoreExtensionsLoader { coreExtensionRepository.setLoadedCoreExtensions(coreExtensions); if (!coreExtensions.isEmpty()) { - LOG.info("Loaded core extensions: {}", coreExtensions.stream().map(CoreExtension::getName).collect(Collectors.joining(", "))); + LOG.atInfo() + .addArgument(coreExtensions.stream().map(CoreExtension::getName).collect(Collectors.joining(", "))) + .log("Loaded core extensions: {}"); } } @@ -67,6 +69,6 @@ public class CoreExtensionsLoader { .collect(Collectors.toSet()); checkState(duplicatedNames.isEmpty(), "Multiple core extensions declare the following names: %s", - duplicatedNames.stream().sorted().collect(Collectors.joining(", "))); + duplicatedNames.isEmpty() ? "" : duplicatedNames.stream().sorted().collect(Collectors.joining(", "))); } } diff --git a/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevel.java b/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevel.java index a9f36c9d857..37ddd54a53b 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevel.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevel.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevelPredicates.java b/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevelPredicates.java index 07cd6344971..394a14c5e5c 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevelPredicates.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevelPredicates.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/extension/PluginRiskConsent.java b/sonar-core/src/main/java/org/sonar/core/extension/PluginRiskConsent.java index 109b3c29ef7..d023bca7320 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/PluginRiskConsent.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/PluginRiskConsent.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/extension/ServiceLoaderWrapper.java b/sonar-core/src/main/java/org/sonar/core/extension/ServiceLoaderWrapper.java index 6ee72caa185..04de4fce61e 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/ServiceLoaderWrapper.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/ServiceLoaderWrapper.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/extension/package-info.java b/sonar-core/src/main/java/org/sonar/core/extension/package-info.java index 823d7ee04bc..e22795a82cd 100644 --- a/sonar-core/src/main/java/org/sonar/core/extension/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/extension/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/fips/FipsDetector.java b/sonar-core/src/main/java/org/sonar/core/fips/FipsDetector.java index d619fffa55d..30af63dc73a 100644 --- a/sonar-core/src/main/java/org/sonar/core/fips/FipsDetector.java +++ b/sonar-core/src/main/java/org/sonar/core/fips/FipsDetector.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/fips/package-info.java b/sonar-core/src/main/java/org/sonar/core/fips/package-info.java index 1d1de452d39..d35b88f01cb 100644 --- a/sonar-core/src/main/java/org/sonar/core/fips/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/fips/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/hash/LineRange.java b/sonar-core/src/main/java/org/sonar/core/hash/LineRange.java index cb843fb7c0c..ed15e87a93b 100644 --- a/sonar-core/src/main/java/org/sonar/core/hash/LineRange.java +++ b/sonar-core/src/main/java/org/sonar/core/hash/LineRange.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/hash/SourceHashComputer.java b/sonar-core/src/main/java/org/sonar/core/hash/SourceHashComputer.java index 4ecbd788a79..ac7b71d9ddb 100644 --- a/sonar-core/src/main/java/org/sonar/core/hash/SourceHashComputer.java +++ b/sonar-core/src/main/java/org/sonar/core/hash/SourceHashComputer.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/hash/SourceLineHashesComputer.java b/sonar-core/src/main/java/org/sonar/core/hash/SourceLineHashesComputer.java index 9a149dc1dd1..76536e409f6 100644 --- a/sonar-core/src/main/java/org/sonar/core/hash/SourceLineHashesComputer.java +++ b/sonar-core/src/main/java/org/sonar/core/hash/SourceLineHashesComputer.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/hash/package-info.java b/sonar-core/src/main/java/org/sonar/core/hash/package-info.java index 89e44b9cf65..5c9fbb46f93 100644 --- a/sonar-core/src/main/java/org/sonar/core/hash/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/hash/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/i18n/DefaultI18n.java b/sonar-core/src/main/java/org/sonar/core/i18n/DefaultI18n.java index ebc4c560b54..69e5ac9b1ac 100644 --- a/sonar-core/src/main/java/org/sonar/core/i18n/DefaultI18n.java +++ b/sonar-core/src/main/java/org/sonar/core/i18n/DefaultI18n.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/i18n/DurationLabel.java b/sonar-core/src/main/java/org/sonar/core/i18n/DurationLabel.java index 7a7e6f4b349..95b64697078 100644 --- a/sonar-core/src/main/java/org/sonar/core/i18n/DurationLabel.java +++ b/sonar-core/src/main/java/org/sonar/core/i18n/DurationLabel.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/i18n/I18n.java b/sonar-core/src/main/java/org/sonar/core/i18n/I18n.java index 1e3991281e5..77624402c4d 100644 --- a/sonar-core/src/main/java/org/sonar/core/i18n/I18n.java +++ b/sonar-core/src/main/java/org/sonar/core/i18n/I18n.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/i18n/I18nClassloader.java b/sonar-core/src/main/java/org/sonar/core/i18n/I18nClassloader.java index dd4352835ea..d51cf204060 100644 --- a/sonar-core/src/main/java/org/sonar/core/i18n/I18nClassloader.java +++ b/sonar-core/src/main/java/org/sonar/core/i18n/I18nClassloader.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/i18n/package-info.java b/sonar-core/src/main/java/org/sonar/core/i18n/package-info.java index ed195753396..e053c9cf32b 100644 --- a/sonar-core/src/main/java/org/sonar/core/i18n/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/i18n/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/AnticipatedTransition.java b/sonar-core/src/main/java/org/sonar/core/issue/AnticipatedTransition.java index 50c91c18134..244dfb86943 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/AnticipatedTransition.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/AnticipatedTransition.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -119,12 +119,6 @@ public class AnticipatedTransition implements Trackable { return Date.from(Instant.now()); } - @Nullable - @Override - public String getCveId() { - return null; - } - @Override public boolean equals(Object o) { if (this == o) { diff --git a/sonar-core/src/main/java/org/sonar/core/issue/DefaultImpact.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultImpact.java index 36ea21eca93..5ccf987e8d2 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/DefaultImpact.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultImpact.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java index dc4fb271e3d..c8e1a7fa4a8 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -28,7 +28,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Date; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -48,13 +47,13 @@ import org.sonar.api.issue.impact.SoftwareQuality; import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.Severity; import org.sonar.api.rules.CleanCodeAttribute; -import org.sonar.api.rules.RuleType; import org.sonar.api.utils.Duration; import org.sonar.core.issue.tracking.Trackable; +import org.sonar.core.rule.RuleType; import static org.sonar.api.utils.DateUtils.truncateToSeconds; -public class DefaultIssue implements Issue, Trackable, org.sonar.api.ce.measure.Issue { +public class DefaultIssue implements Issue, Trackable { private String key = null; private RuleType type = null; @@ -141,8 +140,6 @@ public class DefaultIssue implements Issue, Trackable, org.sonar.api.ce.measure. private final Map<SoftwareQuality, DefaultImpact> impacts = new LinkedHashMap<>(); private CleanCodeAttribute cleanCodeAttribute = null; - private String cveId = null; - @Override public String key() { return key; @@ -153,12 +150,10 @@ public class DefaultIssue implements Issue, Trackable, org.sonar.api.ce.measure. return this; } - @Override public RuleType type() { return type; } - @Override public Map<SoftwareQuality, org.sonar.api.issue.impact.Severity> impacts() { return impacts.values().stream().collect(Collectors.toMap(DefaultImpact::softwareQuality, DefaultImpact::severity)); } @@ -358,7 +353,6 @@ public class DefaultIssue implements Issue, Trackable, org.sonar.api.ce.measure. } @Nullable - @Override public IssueStatus issueStatus() { return IssueStatus.of(status, resolution); } @@ -374,6 +368,10 @@ public class DefaultIssue implements Issue, Trackable, org.sonar.api.ce.measure. return this; } + public boolean isUnresolved() { + return resolution == null; + } + @Override @CheckForNull public String assignee() { @@ -519,25 +517,6 @@ public class DefaultIssue implements Issue, Trackable, org.sonar.api.ce.measure. return this; } - /** - * @deprecated since 9.4, attribute was already not returning any element since 5.2 - */ - @Deprecated - @Override - @CheckForNull - public String attribute(String key) { - return null; - } - - /** - * @deprecated since 9.4, attribute was already not returning any element since 5.2 - */ - @Deprecated - @Override - public Map<String, String> attributes() { - return new HashMap<>(); - } - @Override @CheckForNull public String authorLogin() { @@ -783,15 +762,4 @@ public class DefaultIssue implements Issue, Trackable, org.sonar.api.ce.measure. public Date getUpdateDate() { return updateDate; } - - @Override - @CheckForNull - public String getCveId() { - return cveId; - } - - public DefaultIssue setCveId(@Nullable String cveId) { - this.cveId = cveId; - return this; - } } diff --git a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueComment.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueComment.java index ec253c71268..7c1fc33f57c 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueComment.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueComment.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/FieldDiffs.java b/sonar-core/src/main/java/org/sonar/core/issue/FieldDiffs.java index 5d17343f234..5d82d5fcc9f 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/FieldDiffs.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/FieldDiffs.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/IssueChangeContext.java b/sonar-core/src/main/java/org/sonar/core/issue/IssueChangeContext.java index 07348eb497e..e8099a422e0 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/IssueChangeContext.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/IssueChangeContext.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/package-info.java b/sonar-core/src/main/java/org/sonar/core/issue/package-info.java index e7201e40f41..ee5a898a4eb 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/AbstractTracker.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/AbstractTracker.java index 1c1e9394f48..56543b8eb52 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/AbstractTracker.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/AbstractTracker.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -61,13 +61,11 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { private final RuleKey ruleKey; private final String lineHash; private final Integer line; - private final String cveId; protected LineAndLineHashKey(Trackable trackable) { this.ruleKey = trackable.getRuleKey(); this.line = trackable.getLine(); this.lineHash = Objects.toString(trackable.getLineHash(), ""); - this.cveId = trackable.getCveId(); } @Override @@ -83,12 +81,12 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { return Objects.equals(line, that.line) && lineHash.equals(that.lineHash) && ruleKey.equals(that.ruleKey) - && Objects.equals(cveId, that.cveId); + ; } @Override public int hashCode() { - return Objects.hash(ruleKey, lineHash, line != null ? line : 0, cveId); + return Objects.hash(ruleKey, lineHash, line != null ? line : 0); } } @@ -97,14 +95,12 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { private final String lineHash; private final String message; private final Integer line; - private final String cveId; protected LineAndLineHashAndMessage(Trackable trackable) { this.ruleKey = trackable.getRuleKey(); this.line = trackable.getLine(); this.message = trackable.getMessage(); this.lineHash = Objects.toString(trackable.getLineHash(), ""); - this.cveId = trackable.getCveId(); } @Override @@ -121,12 +117,12 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { && lineHash.equals(that.lineHash) && Objects.equals(message, that.message) && ruleKey.equals(that.ruleKey) - && Objects.equals(cveId, that.cveId); + ; } @Override public int hashCode() { - return Objects.hash(ruleKey, lineHash, message, line != null ? line : 0, cveId); + return Objects.hash(ruleKey, lineHash, message, line != null ? line : 0); } } @@ -134,13 +130,11 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { private final RuleKey ruleKey; private final String message; private final String lineHash; - private final String cveId; LineHashAndMessageKey(Trackable trackable) { this.ruleKey = trackable.getRuleKey(); this.message = trackable.getMessage(); this.lineHash = Objects.toString(trackable.getLineHash(), ""); - this.cveId = trackable.getCveId(); } @Override @@ -156,12 +150,12 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { return lineHash.equals(that.lineHash) && Objects.equals(message, that.message) && ruleKey.equals(that.ruleKey) - && Objects.equals(cveId, that.cveId); + ; } @Override public int hashCode() { - return Objects.hash(ruleKey, message, lineHash, cveId); + return Objects.hash(ruleKey, message, lineHash); } } @@ -169,13 +163,11 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { private final RuleKey ruleKey; private final String message; private final Integer line; - private final String cveId; LineAndMessageKey(Trackable trackable) { this.ruleKey = trackable.getRuleKey(); this.message = trackable.getMessage(); this.line = trackable.getLine(); - this.cveId = trackable.getCveId(); } @Override @@ -191,7 +183,7 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { return Objects.equals(line, that.line) && Objects.equals(message, that.message) && ruleKey.equals(that.ruleKey) - && Objects.equals(cveId, that.cveId); + ; } @Override @@ -203,12 +195,10 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { protected static class LineHashKey implements SearchKey { private final RuleKey ruleKey; private final String lineHash; - private final String cveId; LineHashKey(Trackable trackable) { this.ruleKey = trackable.getRuleKey(); this.lineHash = Objects.toString(trackable.getLineHash(), ""); - this.cveId = trackable.getCveId(); } @Override @@ -221,12 +211,14 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { } LineHashKey that = (LineHashKey) o; // start with most discriminant field - return lineHash.equals(that.lineHash) && ruleKey.equals(that.ruleKey) && Objects.equals(cveId, that.cveId); + return lineHash.equals(that.lineHash) + && ruleKey.equals(that.ruleKey) + ; } @Override public int hashCode() { - return Objects.hash(ruleKey, lineHash, cveId); + return Objects.hash(ruleKey, lineHash); } } diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/AnticipatedTransitionTracker.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/AnticipatedTransitionTracker.java index ebba139292d..d72d445ccda 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/AnticipatedTransitionTracker.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/AnticipatedTransitionTracker.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -22,8 +22,7 @@ package org.sonar.core.issue.tracking; import java.util.Collection; /** - * A simplified version of {@link Tracker}, which doesn't use line hash sequences nor block hash sequences and - * only has two steps instead of 5 steps. + * Alternative version of {@link Tracker} used to detect issues to be updated when an anticipated transition from SonarQube IDE is found. */ public class AnticipatedTransitionTracker<RAW extends Trackable, BASE extends Trackable> extends AbstractTracker<RAW, BASE> { diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockHashSequence.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockHashSequence.java index a6b168e78d8..1b016b6bf7e 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockHashSequence.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockHashSequence.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java index dbc39985251..3adef3644e6 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/FilteringBaseInputWrapper.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/FilteringBaseInputWrapper.java index 99880efb960..99183d05013 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/FilteringBaseInputWrapper.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/FilteringBaseInputWrapper.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/Input.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/Input.java index 477d820e3f9..cd38108b9e3 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/Input.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/Input.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/LazyInput.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/LazyInput.java index 0b710eef8b0..7c6eae96d2d 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/LazyInput.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/LazyInput.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/LineHashSequence.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/LineHashSequence.java index 4668a188c76..a85c6ca6085 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/LineHashSequence.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/LineHashSequence.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/NonClosedTracking.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/NonClosedTracking.java index 8ef9870b03d..b9f07b8c492 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/NonClosedTracking.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/NonClosedTracking.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/SimpleTracker.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/SimpleTracker.java index 1002cbc616b..d859c663696 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/SimpleTracker.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/SimpleTracker.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/Trackable.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/Trackable.java index 63e6a919287..f78ce451b72 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/Trackable.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/Trackable.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -50,7 +50,4 @@ public interface Trackable { * Functional update date for the issue. See {@link DefaultIssue#updateDate()} */ Date getUpdateDate(); - - @CheckForNull - String getCveId(); } diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracker.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracker.java index e17aec00c3f..e45f7629c12 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracker.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracker.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracking.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracking.java index 501fb817b73..95aee9052a9 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracking.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracking.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/package-info.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/package-info.java index b77883d70c7..7fc191f378c 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/language/LanguagesProvider.java b/sonar-core/src/main/java/org/sonar/core/language/LanguagesProvider.java index 1298c19b83d..fd00da55889 100644 --- a/sonar-core/src/main/java/org/sonar/core/language/LanguagesProvider.java +++ b/sonar-core/src/main/java/org/sonar/core/language/LanguagesProvider.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/language/UnanalyzedLanguages.java b/sonar-core/src/main/java/org/sonar/core/language/UnanalyzedLanguages.java index 5a40aefdc13..96b90e52d61 100644 --- a/sonar-core/src/main/java/org/sonar/core/language/UnanalyzedLanguages.java +++ b/sonar-core/src/main/java/org/sonar/core/language/UnanalyzedLanguages.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/language/package-info.java b/sonar-core/src/main/java/org/sonar/core/language/package-info.java index 1a0415d4226..3bb683938a2 100644 --- a/sonar-core/src/main/java/org/sonar/core/language/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/language/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java b/sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java index d85ce1b1779..191829848d9 100644 --- a/sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java +++ b/sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/metric/SoftwareQualitiesMetrics.java b/sonar-core/src/main/java/org/sonar/core/metric/SoftwareQualitiesMetrics.java index aaf2f7b0536..69bcb23a405 100644 --- a/sonar-core/src/main/java/org/sonar/core/metric/SoftwareQualitiesMetrics.java +++ b/sonar-core/src/main/java/org/sonar/core/metric/SoftwareQualitiesMetrics.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/metric/package-info.java b/sonar-core/src/main/java/org/sonar/core/metric/package-info.java index 30d617a86b5..c89bf183230 100644 --- a/sonar-core/src/main/java/org/sonar/core/metric/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/metric/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/ClassDerivedBeanDefinition.java b/sonar-core/src/main/java/org/sonar/core/platform/ClassDerivedBeanDefinition.java index aaad1c4ddf8..871b7a973e1 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/ClassDerivedBeanDefinition.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/ClassDerivedBeanDefinition.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/ComponentKeys.java b/sonar-core/src/main/java/org/sonar/core/platform/ComponentKeys.java index 63486420c65..554b2b26beb 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/ComponentKeys.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/ComponentKeys.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -22,9 +22,9 @@ package org.sonar.core.platform; import java.util.HashSet; import java.util.Set; import java.util.regex.Pattern; -import org.sonar.core.util.Uuids; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.sonar.core.util.Uuids; public class ComponentKeys { private static final Logger LOG = LoggerFactory.getLogger(ComponentKeys.class); @@ -54,7 +54,7 @@ public class ComponentKeys { String key = component.toString(); if (IDENTITY_HASH_PATTERN.matcher(key).matches()) { if (!objectsWithoutToString.add(component.getClass())) { - log.warn(String.format("Bad component key: %s. Please implement toString() method on class %s", key, component.getClass().getName())); + log.warn("Bad component key: {}. Please implement toString() method on class {}", key, component.getClass().getName()); } key += Uuids.create(); } diff --git a/sonar-core/src/main/java/org/sonar/core/platform/Container.java b/sonar-core/src/main/java/org/sonar/core/platform/Container.java index 995d3b6904d..f95d1059a68 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/Container.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/Container.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/ContainerPopulator.java b/sonar-core/src/main/java/org/sonar/core/platform/ContainerPopulator.java index 0e99a9ad71f..2fb6add3857 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/ContainerPopulator.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/ContainerPopulator.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/EditionProvider.java b/sonar-core/src/main/java/org/sonar/core/platform/EditionProvider.java index 66a23212207..c508a05336b 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/EditionProvider.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/EditionProvider.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/ExplodedPlugin.java b/sonar-core/src/main/java/org/sonar/core/platform/ExplodedPlugin.java index 4124f8991e9..5c94ef5ad39 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/ExplodedPlugin.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/ExplodedPlugin.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/ExtensionContainer.java b/sonar-core/src/main/java/org/sonar/core/platform/ExtensionContainer.java index 4bd28cfab38..e7490d1a19d 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/ExtensionContainer.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/ExtensionContainer.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/LazyStrategy.java b/sonar-core/src/main/java/org/sonar/core/platform/LazyStrategy.java index 441a5c9da0a..b62cc39c420 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/LazyStrategy.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/LazyStrategy.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/LazyUnlessStartableStrategy.java b/sonar-core/src/main/java/org/sonar/core/platform/LazyUnlessStartableStrategy.java index d1a16536c06..74d429ba093 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/LazyUnlessStartableStrategy.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/LazyUnlessStartableStrategy.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/ListContainer.java b/sonar-core/src/main/java/org/sonar/core/platform/ListContainer.java index a7c5ddc6cbd..8c373ad95b0 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/ListContainer.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/ListContainer.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/Module.java b/sonar-core/src/main/java/org/sonar/core/platform/Module.java index 9b85c05b14e..a3e114842b1 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/Module.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/Module.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PlatformEditionProvider.java b/sonar-core/src/main/java/org/sonar/core/platform/PlatformEditionProvider.java index c11a63ebaec..31b5fa5bb4b 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PlatformEditionProvider.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PlatformEditionProvider.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PluginClassLoader.java b/sonar-core/src/main/java/org/sonar/core/platform/PluginClassLoader.java index fe59b63e287..45805c1591d 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PluginClassLoader.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PluginClassLoader.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PluginClassLoaderDef.java b/sonar-core/src/main/java/org/sonar/core/platform/PluginClassLoaderDef.java index 0b6dd51baf7..bf5eed54208 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PluginClassLoaderDef.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PluginClassLoaderDef.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PluginClassloaderFactory.java b/sonar-core/src/main/java/org/sonar/core/platform/PluginClassloaderFactory.java index cc2e2eba190..33da0883b0f 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PluginClassloaderFactory.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PluginClassloaderFactory.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java b/sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java index 636dc7e5edd..d90f896cdc8 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PluginJarExploder.java b/sonar-core/src/main/java/org/sonar/core/platform/PluginJarExploder.java index f75a0e0ae66..97ca45891bd 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PluginJarExploder.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PluginJarExploder.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PluginRepository.java b/sonar-core/src/main/java/org/sonar/core/platform/PluginRepository.java index cf8b7216ef0..a630dfa8af7 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PluginRepository.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PluginRepository.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PriorityBeanFactory.java b/sonar-core/src/main/java/org/sonar/core/platform/PriorityBeanFactory.java index dd39f88f7b0..dce8386b983 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PriorityBeanFactory.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PriorityBeanFactory.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/RemotePluginFile.java b/sonar-core/src/main/java/org/sonar/core/platform/RemotePluginFile.java index 3810d3c562f..36b010304d9 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/RemotePluginFile.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/RemotePluginFile.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/ServerId.java b/sonar-core/src/main/java/org/sonar/core/platform/ServerId.java index b6c6c213db9..3174285b9be 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/ServerId.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/ServerId.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/SonarQubeVersion.java b/sonar-core/src/main/java/org/sonar/core/platform/SonarQubeVersion.java index 4e5f71a5e5a..270d2f9df4c 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/SonarQubeVersion.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/SonarQubeVersion.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/SpringComponentContainer.java b/sonar-core/src/main/java/org/sonar/core/platform/SpringComponentContainer.java index 4d9332f3741..dea3850a81c 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/SpringComponentContainer.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/SpringComponentContainer.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -24,6 +24,7 @@ import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.function.Supplier; @@ -243,7 +244,7 @@ public class SpringComponentContainer implements StartableContainer { private void stopChildren() { // loop over a copy of list of children in reverse order - Lists.reverse(new ArrayList<>(this.children)).forEach(SpringComponentContainer::stopComponents); + Lists.reverse(new ArrayList<>(this.children)).stream().filter(Objects::nonNull).forEach(SpringComponentContainer::stopComponents); } public SpringComponentContainer createChild() { diff --git a/sonar-core/src/main/java/org/sonar/core/platform/SpringInitStrategy.java b/sonar-core/src/main/java/org/sonar/core/platform/SpringInitStrategy.java index 3414a77be6c..2fb250bb4b3 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/SpringInitStrategy.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/SpringInitStrategy.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/StartableBeanPostProcessor.java b/sonar-core/src/main/java/org/sonar/core/platform/StartableBeanPostProcessor.java index 97a111eed9c..1186cbb5a16 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/StartableBeanPostProcessor.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/StartableBeanPostProcessor.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/StartableContainer.java b/sonar-core/src/main/java/org/sonar/core/platform/StartableContainer.java index 75b9b4379ba..96dd6eed83f 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/StartableContainer.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/StartableContainer.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/platform/package-info.java b/sonar-core/src/main/java/org/sonar/core/platform/package-info.java index d29e3c54eaf..7ef0fab60cd 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/plugin/PluginType.java b/sonar-core/src/main/java/org/sonar/core/plugin/PluginType.java index a63a5d10311..8de607a93b8 100644 --- a/sonar-core/src/main/java/org/sonar/core/plugin/PluginType.java +++ b/sonar-core/src/main/java/org/sonar/core/plugin/PluginType.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/plugin/package-info.java b/sonar-core/src/main/java/org/sonar/core/plugin/package-info.java index c938441a135..ee1d3d5f341 100644 --- a/sonar-core/src/main/java/org/sonar/core/plugin/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/plugin/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/rule/ImpactFormatter.java b/sonar-core/src/main/java/org/sonar/core/rule/ImpactFormatter.java index 62cb1726e18..940abbcfde8 100644 --- a/sonar-core/src/main/java/org/sonar/core/rule/ImpactFormatter.java +++ b/sonar-core/src/main/java/org/sonar/core/rule/ImpactFormatter.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/rule/ImpactSeverityMapper.java b/sonar-core/src/main/java/org/sonar/core/rule/ImpactSeverityMapper.java index b68057cf429..603b3fc2bff 100644 --- a/sonar-core/src/main/java/org/sonar/core/rule/ImpactSeverityMapper.java +++ b/sonar-core/src/main/java/org/sonar/core/rule/ImpactSeverityMapper.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/rule/RuleType.java b/sonar-core/src/main/java/org/sonar/core/rule/RuleType.java new file mode 100644 index 00000000000..89fa04deab3 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/rule/RuleType.java @@ -0,0 +1,77 @@ +/* + * 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.core.rule; + +import java.util.LinkedHashSet; +import java.util.Set; +import javax.annotation.CheckForNull; + +import static java.lang.String.format; +import static java.util.Arrays.stream; +import static java.util.Collections.unmodifiableSet; + +public enum RuleType { + CODE_SMELL(1), BUG(2), VULNERABILITY(3), SECURITY_HOTSPOT(4); + + private static final Set<String> ALL_NAMES = unmodifiableSet(new LinkedHashSet<>(stream(values()) + .map(Enum::name) + .toList())); + + private final int dbConstant; + + RuleType(int dbConstant) { + this.dbConstant = dbConstant; + } + + public int getDbConstant() { + return dbConstant; + } + + public static Set<String> names() { + return ALL_NAMES; + } + + /** + * Returns the enum constant of the specified DB column value. + */ + public static RuleType fromDbConstant(int dbConstant) { + // iterating the array is fast-enough as size is small. No need for a map. + for (RuleType type : values()) { + if (type.getDbConstant() == dbConstant) { + return type; + } + } + throw new IllegalArgumentException(format("Unsupported type value : %d", dbConstant)); + } + + @CheckForNull + public static RuleType valueOfNullable(int dbConstant) { + // iterating the array is fast-enough as size is small. No need for a map. + for (RuleType type : values()) { + if (type.getDbConstant() == dbConstant) { + return type; + } + } + if (dbConstant == 0) { + return null; + } + throw new IllegalArgumentException(format("Unsupported type value : %d", dbConstant)); + } +} diff --git a/sonar-core/src/main/java/org/sonar/core/rule/RuleTypeMapper.java b/sonar-core/src/main/java/org/sonar/core/rule/RuleTypeMapper.java new file mode 100644 index 00000000000..06eca3785a5 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/rule/RuleTypeMapper.java @@ -0,0 +1,46 @@ +/* + * 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.core.rule; + +public class RuleTypeMapper { + + private RuleTypeMapper() { + throw new UnsupportedOperationException("Utility class"); + } + + public static org.sonar.api.rules.RuleType toApiRuleType(RuleType ruleType) { + return switch (ruleType) { + case BUG -> org.sonar.api.rules.RuleType.BUG; + case CODE_SMELL -> org.sonar.api.rules.RuleType.CODE_SMELL; + case SECURITY_HOTSPOT -> org.sonar.api.rules.RuleType.SECURITY_HOTSPOT; + case VULNERABILITY -> org.sonar.api.rules.RuleType.VULNERABILITY; + }; + } + + public static RuleType toRuleType(org.sonar.api.rules.RuleType ruleType) { + return switch (ruleType) { + case BUG -> RuleType.BUG; + case CODE_SMELL -> RuleType.CODE_SMELL; + case SECURITY_HOTSPOT -> RuleType.SECURITY_HOTSPOT; + case VULNERABILITY -> RuleType.VULNERABILITY; + }; + } + +} diff --git a/sonar-core/src/main/java/org/sonar/core/rule/package-info.java b/sonar-core/src/main/java/org/sonar/core/rule/package-info.java index 573a53047dd..8df7fbebc86 100644 --- a/sonar-core/src/main/java/org/sonar/core/rule/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/rule/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializer.java b/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializer.java index 9cca8cb59fd..d55b24b6b99 100644 --- a/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializer.java +++ b/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializer.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java b/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java index 1a06a8d7571..6c1afe28737 100644 --- a/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java +++ b/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/sarif/package-info.java b/sonar-core/src/main/java/org/sonar/core/sarif/package-info.java index 5d65caf5da7..8efbf235cf2 100644 --- a/sonar-core/src/main/java/org/sonar/core/sarif/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/sarif/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/scadata/DefaultScaDataSourceImpl.java b/sonar-core/src/main/java/org/sonar/core/scadata/DefaultScaDataSourceImpl.java new file mode 100644 index 00000000000..24276ae7a53 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/scadata/DefaultScaDataSourceImpl.java @@ -0,0 +1,41 @@ +/* + * 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.core.scadata; + +import jakarta.annotation.Priority; +import org.sonar.api.server.ServerSide; + +import java.util.OptionalInt; + +/** + * Default implementation of {@link ScaDataSource} that provides default, no-op values + * when SCA extension is not available. + */ +@ServerSide +@Priority(2) +public class DefaultScaDataSourceImpl implements ScaDataSource { + public int getVulnerabilityCount(String componentUuid) { + return 0; + } + + public OptionalInt getVulnerabilityRating(String componentUuid) { + return OptionalInt.empty(); + } +} diff --git a/sonar-core/src/main/java/org/sonar/core/scadata/ScaDataSource.java b/sonar-core/src/main/java/org/sonar/core/scadata/ScaDataSource.java new file mode 100644 index 00000000000..10b56d79b9c --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/scadata/ScaDataSource.java @@ -0,0 +1,33 @@ +/* + * 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.core.scadata; + +import java.util.OptionalInt; + +public interface ScaDataSource { + /** + * The component UUID could be a regular project, or it could be an application. + * It is not yet resolved to a list of real branches. + * @param componentUuid the component UUID + * @return count of how many vulnerabilities + */ + int getVulnerabilityCount(String componentUuid); + OptionalInt getVulnerabilityRating(String componentUuid); +} diff --git a/sonar-core/src/main/java/org/sonar/core/scadata/package-info.java b/sonar-core/src/main/java/org/sonar/core/scadata/package-info.java new file mode 100644 index 00000000000..f0dba2ec833 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/scadata/package-info.java @@ -0,0 +1,20 @@ +/* + * 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.core.scadata; diff --git a/sonar-core/src/main/java/org/sonar/core/telemetry/TelemetryExtension.java b/sonar-core/src/main/java/org/sonar/core/telemetry/TelemetryExtension.java index 06ac2b98f2d..c2ce25eefb6 100644 --- a/sonar-core/src/main/java/org/sonar/core/telemetry/TelemetryExtension.java +++ b/sonar-core/src/main/java/org/sonar/core/telemetry/TelemetryExtension.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/telemetry/package-info.java b/sonar-core/src/main/java/org/sonar/core/telemetry/package-info.java index 9e0f3d56382..f922fee05e0 100644 --- a/sonar-core/src/main/java/org/sonar/core/telemetry/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/telemetry/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/user/DefaultUser.java b/sonar-core/src/main/java/org/sonar/core/user/DefaultUser.java index cd7e19b22ff..5979b5b7d55 100644 --- a/sonar-core/src/main/java/org/sonar/core/user/DefaultUser.java +++ b/sonar-core/src/main/java/org/sonar/core/user/DefaultUser.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/user/package-info.java b/sonar-core/src/main/java/org/sonar/core/user/package-info.java index 26967b82622..be13a023748 100644 --- a/sonar-core/src/main/java/org/sonar/core/user/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/user/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/CloseableIterator.java b/sonar-core/src/main/java/org/sonar/core/util/CloseableIterator.java index 8acf3a9cc8f..9b195d8250d 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/CloseableIterator.java +++ b/sonar-core/src/main/java/org/sonar/core/util/CloseableIterator.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/ContextException.java b/sonar-core/src/main/java/org/sonar/core/util/ContextException.java index 7e7f7917c0c..b0e746dc763 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/ContextException.java +++ b/sonar-core/src/main/java/org/sonar/core/util/ContextException.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/DefaultHttpDownloader.java b/sonar-core/src/main/java/org/sonar/core/util/DefaultHttpDownloader.java index 9e9b32bc967..d423ae3524a 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/DefaultHttpDownloader.java +++ b/sonar-core/src/main/java/org/sonar/core/util/DefaultHttpDownloader.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/FileUtils.java b/sonar-core/src/main/java/org/sonar/core/util/FileUtils.java index 9cb0b7ca941..ca19df6a0dd 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/FileUtils.java +++ b/sonar-core/src/main/java/org/sonar/core/util/FileUtils.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/LineReaderIterator.java b/sonar-core/src/main/java/org/sonar/core/util/LineReaderIterator.java index 43472d32e6f..b85a3112e97 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/LineReaderIterator.java +++ b/sonar-core/src/main/java/org/sonar/core/util/LineReaderIterator.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/NonNullInputFunction.java b/sonar-core/src/main/java/org/sonar/core/util/NonNullInputFunction.java index 8b688a1783f..8c1fe79e2ca 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/NonNullInputFunction.java +++ b/sonar-core/src/main/java/org/sonar/core/util/NonNullInputFunction.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/ParamChange.java b/sonar-core/src/main/java/org/sonar/core/util/ParamChange.java index 52d4fbd26fa..812e012f608 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/ParamChange.java +++ b/sonar-core/src/main/java/org/sonar/core/util/ParamChange.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/ProcessWrapperFactory.java b/sonar-core/src/main/java/org/sonar/core/util/ProcessWrapperFactory.java new file mode 100644 index 00000000000..d68ebbc01f1 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/util/ProcessWrapperFactory.java @@ -0,0 +1,147 @@ +/* + * 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.core.util; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Consumer; +import javax.annotation.Nullable; +import org.apache.commons.exec.CommandLine; +import org.apache.commons.exec.DefaultExecuteResultHandler; +import org.apache.commons.exec.DefaultExecutor; +import org.apache.commons.exec.ExecuteWatchdog; +import org.apache.commons.exec.Executor; +import org.apache.commons.exec.LogOutputStream; +import org.apache.commons.exec.PumpStreamHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static java.lang.String.format; +import static java.lang.String.join; +import static org.apache.commons.exec.ExecuteWatchdog.INFINITE_TIMEOUT_DURATION; + +public class ProcessWrapperFactory { + private static final Logger LOG = LoggerFactory.getLogger(ProcessWrapperFactory.class); + + public ProcessWrapperFactory() { + // nothing to do + } + + public ProcessWrapper create(@Nullable Path baseDir, Consumer<String> stdOutLineConsumer, Consumer<String> stdErrLineConsumer, String... command) { + return new ProcessWrapper(baseDir, stdOutLineConsumer, stdErrLineConsumer, Map.of(), command); + } + + public ProcessWrapper create(@Nullable Path baseDir, Consumer<String> stdOutLineConsumer, Consumer<String> stdErrLineConsumer, Map<String, String> envVariablesOverrides, + String... command) { + return new ProcessWrapper(baseDir, stdOutLineConsumer, stdErrLineConsumer, envVariablesOverrides, command); + } + + public static class ProcessWrapper { + + private final Path baseDir; + private final Consumer<String> stdOutLineConsumer; + private final Consumer<String> stdErrLineConsumer; + private final String[] command; + private final Map<String, String> envVariables = new HashMap<>(); + private final AtomicReference<Exception> exceptionWhileProcessingStream = new AtomicReference<>(); + private ExecuteWatchdog watchdog = null; + + ProcessWrapper(@Nullable Path baseDir, Consumer<String> stdOutLineConsumer, Consumer<String> stdErrLineConsumer, Map<String, String> envVariablesOverrides, String... command) { + this.baseDir = baseDir; + this.stdOutLineConsumer = stdOutLineConsumer; + this.stdErrLineConsumer = stdErrLineConsumer; + this.envVariables.putAll(System.getenv()); + this.envVariables.putAll(envVariablesOverrides); + this.command = command; + } + + public void execute() throws IOException { + CommandLine cmdLine = new CommandLine(command[0]); + for (int i = 1; i < command.length; i++) { + cmdLine.addArgument(command[i], false); + } + + var executor = buildExecutor(); + + DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler(); + executor.execute(cmdLine, envVariables, resultHandler); + + try { + resultHandler.waitFor(); + int exitValue = resultHandler.getExitValue(); + if (exitValue == Executor.INVALID_EXITVALUE) { + throw resultHandler.getException(); + } + if (exitValue != 0 && !watchdog.killedProcess()) { + throw new IllegalStateException(format("Command execution exited with code: %d", exitValue), resultHandler.getException()); + } + if (exceptionWhileProcessingStream.get() != null) { + throw new IllegalStateException("Error while processing stream for command", exceptionWhileProcessingStream.get()); + } + } catch (InterruptedException e) { + LOG.warn("Command [{}] interrupted", join(" ", command), e); + Thread.currentThread().interrupt(); + } + } + + private DefaultExecutor buildExecutor() { + DefaultExecutor.Builder<?> builder = DefaultExecutor.builder(); + if (baseDir != null) { + builder.setWorkingDirectory(baseDir.toFile()); + } + + PumpStreamHandler psh = new PumpStreamHandler( + new ExceptionCatchingLogOutputStream(stdOutLineConsumer), + new ExceptionCatchingLogOutputStream(stdErrLineConsumer)); + builder.setExecuteStreamHandler(psh); + + var executor = builder.get(); + watchdog = ExecuteWatchdog.builder().setTimeout(INFINITE_TIMEOUT_DURATION).get(); + executor.setWatchdog(watchdog); + return executor; + } + + public void destroy() { + watchdog.destroyProcess(); + } + + private class ExceptionCatchingLogOutputStream extends LogOutputStream { + + private final Consumer<String> lineConsumer; + + public ExceptionCatchingLogOutputStream(Consumer<String> lineConsumer) { + this.lineConsumer = lineConsumer; + } + + @Override + protected void processLine(String line, int logLevel) { + try { + lineConsumer.accept(line); + } catch (Exception e) { + exceptionWhileProcessingStream.compareAndSet(null, e); + watchdog.destroyProcess(); + } + } + } + } +} diff --git a/sonar-core/src/main/java/org/sonar/core/util/ProgressLogger.java b/sonar-core/src/main/java/org/sonar/core/util/ProgressLogger.java index d52650435b0..01118e962c6 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/ProgressLogger.java +++ b/sonar-core/src/main/java/org/sonar/core/util/ProgressLogger.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -106,7 +106,11 @@ public class ProgressLogger { private void log() { long current = counter.get(); - logger.info(String.format("%d %s processed (%d items/sec)", current, pluralLabel, 1000 * (current - previousCounter) / periodMs)); + logger.atInfo() + .addArgument(current) + .addArgument(pluralLabel) + .addArgument(() -> 1000 * (current - previousCounter) / periodMs) + .log("{} {} processed ({} items/sec)"); previousCounter = current; } } diff --git a/sonar-core/src/main/java/org/sonar/core/util/Protobuf.java b/sonar-core/src/main/java/org/sonar/core/util/Protobuf.java index ad49c7a1114..1afacbeb118 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/Protobuf.java +++ b/sonar-core/src/main/java/org/sonar/core/util/Protobuf.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/ProtobufJsonFormat.java b/sonar-core/src/main/java/org/sonar/core/util/ProtobufJsonFormat.java index 522f4dd84f5..4fbdccc04e3 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/ProtobufJsonFormat.java +++ b/sonar-core/src/main/java/org/sonar/core/util/ProtobufJsonFormat.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/ResourceUtils.java b/sonar-core/src/main/java/org/sonar/core/util/ResourceUtils.java index 75f6fa9d199..37a711cecd0 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/ResourceUtils.java +++ b/sonar-core/src/main/java/org/sonar/core/util/ResourceUtils.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/SequenceUuidFactory.java b/sonar-core/src/main/java/org/sonar/core/util/SequenceUuidFactory.java index 51aa70811d5..1d949b10079 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/SequenceUuidFactory.java +++ b/sonar-core/src/main/java/org/sonar/core/util/SequenceUuidFactory.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/SettingFormatter.java b/sonar-core/src/main/java/org/sonar/core/util/SettingFormatter.java index bf966906733..45124695768 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/SettingFormatter.java +++ b/sonar-core/src/main/java/org/sonar/core/util/SettingFormatter.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/Slug.java b/sonar-core/src/main/java/org/sonar/core/util/Slug.java index b67badc266f..78541fdf190 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/Slug.java +++ b/sonar-core/src/main/java/org/sonar/core/util/Slug.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/UtcDateUtils.java b/sonar-core/src/main/java/org/sonar/core/util/UtcDateUtils.java index d71db837c71..17b7880c032 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/UtcDateUtils.java +++ b/sonar-core/src/main/java/org/sonar/core/util/UtcDateUtils.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/UuidFactory.java b/sonar-core/src/main/java/org/sonar/core/util/UuidFactory.java index 6ffa56326f5..6682aac57f3 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/UuidFactory.java +++ b/sonar-core/src/main/java/org/sonar/core/util/UuidFactory.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/UuidFactoryFast.java b/sonar-core/src/main/java/org/sonar/core/util/UuidFactoryFast.java index 3159b446684..61acd42ca5d 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/UuidFactoryFast.java +++ b/sonar-core/src/main/java/org/sonar/core/util/UuidFactoryFast.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/UuidFactoryImpl.java b/sonar-core/src/main/java/org/sonar/core/util/UuidFactoryImpl.java index 01d29a06563..addb877e836 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/UuidFactoryImpl.java +++ b/sonar-core/src/main/java/org/sonar/core/util/UuidFactoryImpl.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/Uuids.java b/sonar-core/src/main/java/org/sonar/core/util/Uuids.java index 42fe078671a..286410dbc89 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/Uuids.java +++ b/sonar-core/src/main/java/org/sonar/core/util/Uuids.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/issue/Issue.java b/sonar-core/src/main/java/org/sonar/core/util/issue/Issue.java index 68771066ac4..c2ce9281444 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/issue/Issue.java +++ b/sonar-core/src/main/java/org/sonar/core/util/issue/Issue.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/issue/IssueChangedEvent.java b/sonar-core/src/main/java/org/sonar/core/util/issue/IssueChangedEvent.java index d36d4f2f9c3..78acfc16771 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/issue/IssueChangedEvent.java +++ b/sonar-core/src/main/java/org/sonar/core/util/issue/IssueChangedEvent.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/issue/package-info.java b/sonar-core/src/main/java/org/sonar/core/util/issue/package-info.java index f4b0321728c..fe52aded1bc 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/issue/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/util/issue/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/logs/DefaultProfiler.java b/sonar-core/src/main/java/org/sonar/core/util/logs/DefaultProfiler.java index 5ab3dceefdc..c277a17a041 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/logs/DefaultProfiler.java +++ b/sonar-core/src/main/java/org/sonar/core/util/logs/DefaultProfiler.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/logs/NullProfiler.java b/sonar-core/src/main/java/org/sonar/core/util/logs/NullProfiler.java index 4b74fbade7d..1420fb37583 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/logs/NullProfiler.java +++ b/sonar-core/src/main/java/org/sonar/core/util/logs/NullProfiler.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/logs/Profiler.java b/sonar-core/src/main/java/org/sonar/core/util/logs/Profiler.java index dc4a0e67241..060a1bd2dbf 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/logs/Profiler.java +++ b/sonar-core/src/main/java/org/sonar/core/util/logs/Profiler.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/logs/package-info.java b/sonar-core/src/main/java/org/sonar/core/util/logs/package-info.java index fd14c7082d2..3476a829285 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/logs/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/util/logs/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/package-info.java b/sonar-core/src/main/java/org/sonar/core/util/package-info.java index ccd6d64d506..71df1b3326d 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/util/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/rule/RuleChange.java b/sonar-core/src/main/java/org/sonar/core/util/rule/RuleChange.java index c3b99a2834c..2cedd012db5 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/rule/RuleChange.java +++ b/sonar-core/src/main/java/org/sonar/core/util/rule/RuleChange.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/rule/RuleSetChangedEvent.java b/sonar-core/src/main/java/org/sonar/core/util/rule/RuleSetChangedEvent.java index 7767d89a908..5670e87c111 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/rule/RuleSetChangedEvent.java +++ b/sonar-core/src/main/java/org/sonar/core/util/rule/RuleSetChangedEvent.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/rule/package-info.java b/sonar-core/src/main/java/org/sonar/core/util/rule/package-info.java index 330111bfb1a..3a7a3657112 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/rule/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/util/rule/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/stream/MoreCollectors.java b/sonar-core/src/main/java/org/sonar/core/util/stream/MoreCollectors.java index 9fd1574c16e..a2803210916 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/stream/MoreCollectors.java +++ b/sonar-core/src/main/java/org/sonar/core/util/stream/MoreCollectors.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/java/org/sonar/core/util/stream/package-info.java b/sonar-core/src/main/java/org/sonar/core/util/stream/package-info.java index 2468b969943..8fe2209fe1e 100644 --- a/sonar-core/src/main/java/org/sonar/core/util/stream/package-info.java +++ b/sonar-core/src/main/java/org/sonar/core/util/stream/package-info.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties index 2cfe84e30ba..752dc05b214 100644 --- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties +++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties @@ -2921,13 +2921,6 @@ rule.clean_code_attribute.TESTED.title=This is an adaptability rule, the code sh rule.clean_code_attribute.TRUSTWORTHY=Trustworthy rule.clean_code_attribute.TRUSTWORTHY.title=This is a responsibility rule, the code should be trustworthy. -rule.cve_details=CVE details -rule.cve_details.cwes=CWEs -rule.cve_details.epss_score=EPSS Score -rule.cve_details.epss_score.value={0}% ({1}th) -rule.cve_details.cvss_score=CVSS Score -rule.cve_details.published_date=Published Date - #------------------------------------------------------------------------------ # # EMAIL NOTIFICATION CONFIGURATION diff --git a/sonar-core/src/test/java/com/sonarsource/plugins/license/api/FooBar.java b/sonar-core/src/test/java/com/sonarsource/plugins/license/api/FooBar.java index ac4ae13d0f6..2c37958ddd6 100644 --- a/sonar-core/src/test/java/com/sonarsource/plugins/license/api/FooBar.java +++ b/sonar-core/src/test/java/com/sonarsource/plugins/license/api/FooBar.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/component/ComponentKeysSanitizationTest.java b/sonar-core/src/test/java/org/sonar/core/component/ComponentKeysSanitizationTest.java index 6d2251bbe72..dc587b04a47 100644 --- a/sonar-core/src/test/java/org/sonar/core/component/ComponentKeysSanitizationTest.java +++ b/sonar-core/src/test/java/org/sonar/core/component/ComponentKeysSanitizationTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/component/ComponentKeysTest.java b/sonar-core/src/test/java/org/sonar/core/component/ComponentKeysTest.java index 655daf8173a..5cd9410f08d 100644 --- a/sonar-core/src/test/java/org/sonar/core/component/ComponentKeysTest.java +++ b/sonar-core/src/test/java/org/sonar/core/component/ComponentKeysTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/config/CorePropertyDefinitionsTest.java b/sonar-core/src/test/java/org/sonar/core/config/CorePropertyDefinitionsTest.java index 9a683d236a7..1aa5d6f3cbe 100644 --- a/sonar-core/src/test/java/org/sonar/core/config/CorePropertyDefinitionsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/config/CorePropertyDefinitionsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/config/MQRModePropertiesTest.java b/sonar-core/src/test/java/org/sonar/core/config/MQRModePropertiesTest.java index 78435aeccf4..9ae78a641ff 100644 --- a/sonar-core/src/test/java/org/sonar/core/config/MQRModePropertiesTest.java +++ b/sonar-core/src/test/java/org/sonar/core/config/MQRModePropertiesTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/config/MaxTokenLifetimeOptionTest.java b/sonar-core/src/test/java/org/sonar/core/config/MaxTokenLifetimeOptionTest.java index 4239006ae34..b7f1e2d561a 100644 --- a/sonar-core/src/test/java/org/sonar/core/config/MaxTokenLifetimeOptionTest.java +++ b/sonar-core/src/test/java/org/sonar/core/config/MaxTokenLifetimeOptionTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/config/PurgePropertiesTest.java b/sonar-core/src/test/java/org/sonar/core/config/PurgePropertiesTest.java index a2a2b354e5d..4c52061d9c5 100644 --- a/sonar-core/src/test/java/org/sonar/core/config/PurgePropertiesTest.java +++ b/sonar-core/src/test/java/org/sonar/core/config/PurgePropertiesTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/config/SecurityPropertiesTest.java b/sonar-core/src/test/java/org/sonar/core/config/SecurityPropertiesTest.java index 11ada54339a..89886278b74 100644 --- a/sonar-core/src/test/java/org/sonar/core/config/SecurityPropertiesTest.java +++ b/sonar-core/src/test/java/org/sonar/core/config/SecurityPropertiesTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/documentation/DefaultDocumentationLinkGeneratorTest.java b/sonar-core/src/test/java/org/sonar/core/documentation/DefaultDocumentationLinkGeneratorTest.java index 852e4ac0cd2..50cda8362b7 100644 --- a/sonar-core/src/test/java/org/sonar/core/documentation/DefaultDocumentationLinkGeneratorTest.java +++ b/sonar-core/src/test/java/org/sonar/core/documentation/DefaultDocumentationLinkGeneratorTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/documentation/VersionedDocumentationBaseLinkProviderTest.java b/sonar-core/src/test/java/org/sonar/core/documentation/VersionedDocumentationBaseLinkProviderTest.java index 228cd1fc8e1..f742ad6781a 100644 --- a/sonar-core/src/test/java/org/sonar/core/documentation/VersionedDocumentationBaseLinkProviderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/documentation/VersionedDocumentationBaseLinkProviderTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionRepositoryImplTest.java b/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionRepositoryImplTest.java index fb9ca6f058f..46d92dcc51b 100644 --- a/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionRepositoryImplTest.java +++ b/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionRepositoryImplTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionTest.java b/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionTest.java index 9b43b045e02..7fa9c23949f 100644 --- a/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionTest.java +++ b/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionsInstallerTest.java b/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionsInstallerTest.java index 1321f642887..ce282bf8172 100644 --- a/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionsInstallerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionsInstallerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionsLoaderTest.java b/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionsLoaderTest.java index 55f853c3911..3ed673728f0 100644 --- a/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionsLoaderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/extension/CoreExtensionsLoaderTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/fips/FipsDetectorTest.java b/sonar-core/src/test/java/org/sonar/core/fips/FipsDetectorTest.java index e8f8a75d983..31e97a5d66a 100644 --- a/sonar-core/src/test/java/org/sonar/core/fips/FipsDetectorTest.java +++ b/sonar-core/src/test/java/org/sonar/core/fips/FipsDetectorTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/hash/LineRangeTest.java b/sonar-core/src/test/java/org/sonar/core/hash/LineRangeTest.java index 6644225cf82..a1ee37f02a0 100644 --- a/sonar-core/src/test/java/org/sonar/core/hash/LineRangeTest.java +++ b/sonar-core/src/test/java/org/sonar/core/hash/LineRangeTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/hash/SourceHashComputerTest.java b/sonar-core/src/test/java/org/sonar/core/hash/SourceHashComputerTest.java index c2858802d2f..1c69e15210e 100644 --- a/sonar-core/src/test/java/org/sonar/core/hash/SourceHashComputerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/hash/SourceHashComputerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/hash/SourceLinesHashesComputerTest.java b/sonar-core/src/test/java/org/sonar/core/hash/SourceLinesHashesComputerTest.java index 7acf183ad7f..66b7526d7d4 100644 --- a/sonar-core/src/test/java/org/sonar/core/hash/SourceLinesHashesComputerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/hash/SourceLinesHashesComputerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/i18n/DefaultI18nTest.java b/sonar-core/src/test/java/org/sonar/core/i18n/DefaultI18nTest.java index ea4856cd583..86c0ff9d62a 100644 --- a/sonar-core/src/test/java/org/sonar/core/i18n/DefaultI18nTest.java +++ b/sonar-core/src/test/java/org/sonar/core/i18n/DefaultI18nTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/i18n/DurationLabelTest.java b/sonar-core/src/test/java/org/sonar/core/i18n/DurationLabelTest.java index e569321a222..ff8bbba9d71 100644 --- a/sonar-core/src/test/java/org/sonar/core/i18n/DurationLabelTest.java +++ b/sonar-core/src/test/java/org/sonar/core/i18n/DurationLabelTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/i18n/I18nClassloaderTest.java b/sonar-core/src/test/java/org/sonar/core/i18n/I18nClassloaderTest.java index c23346cf3fc..b0ccaa8dbc7 100644 --- a/sonar-core/src/test/java/org/sonar/core/i18n/I18nClassloaderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/i18n/I18nClassloaderTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/AnticipatedTransitionTest.java b/sonar-core/src/test/java/org/sonar/core/issue/AnticipatedTransitionTest.java index 019ab386253..a0d365fb3b9 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/AnticipatedTransitionTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/AnticipatedTransitionTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueTest.java b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueTest.java index ad935a1f7ad..2c490448f04 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/FieldDiffsTest.java b/sonar-core/src/test/java/org/sonar/core/issue/FieldDiffsTest.java index 18f2d916f3e..bf8c7a53380 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/FieldDiffsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/FieldDiffsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/IssueChangeContextTest.java b/sonar-core/src/test/java/org/sonar/core/issue/IssueChangeContextTest.java index 253011f9986..c391c7eca43 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/IssueChangeContextTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/IssueChangeContextTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/tracking/AbstractTrackerTest.java b/sonar-core/src/test/java/org/sonar/core/issue/tracking/AbstractTrackerTest.java index 113462733e5..abe2abcc3bc 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/tracking/AbstractTrackerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/tracking/AbstractTrackerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/tracking/AnticipatedTransitionTrackerTest.java b/sonar-core/src/test/java/org/sonar/core/issue/tracking/AnticipatedTransitionTrackerTest.java index ffd39f76048..1c91edbde87 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/tracking/AnticipatedTransitionTrackerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/tracking/AnticipatedTransitionTrackerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/tracking/BlockHashSequenceTest.java b/sonar-core/src/test/java/org/sonar/core/issue/tracking/BlockHashSequenceTest.java index 56ffe4428f0..bd71684740d 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/tracking/BlockHashSequenceTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/tracking/BlockHashSequenceTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/tracking/BlockRecognizerTest.java b/sonar-core/src/test/java/org/sonar/core/issue/tracking/BlockRecognizerTest.java index 2e172fbd089..cfc090c8532 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/tracking/BlockRecognizerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/tracking/BlockRecognizerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/issue/tracking/TrackerTest.java b/sonar-core/src/test/java/org/sonar/core/issue/tracking/TrackerTest.java index 675eef1cc26..37feb51e49b 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/tracking/TrackerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/tracking/TrackerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -459,56 +459,20 @@ public class TrackerTest { assertThat(tracking.baseFor(raw2)).isEqualTo(base1); } - @Test - public void match_issues_with_same_cve_id() { - FakeInput baseInput = new FakeInput(); - Issue base = new Issue(null, "", RuleKey.of("sca", "use-of-vulnerable-dependency"), "Vulnerable", org.sonar.api.issue.Issue.STATUS_OPEN, new Date(), "CVE-1"); - baseInput.addIssue(base); - FakeInput rawInput = new FakeInput(); - Issue raw = new Issue(null, "", RuleKey.of("sca", "use-of-vulnerable-dependency"), "Vulnerable", org.sonar.api.issue.Issue.STATUS_OPEN, new Date(), "CVE-1"); - rawInput.addIssue(raw); - - Tracking<Issue, Issue> tracking = tracker.trackNonClosed(rawInput, baseInput); - - assertThat(tracking.getUnmatchedBases()).isEmpty(); - assertThat(tracking.baseFor(raw)).isEqualTo(base); - } - - @Test - public void do_not_match_issues_with_different_cve_id() { - FakeInput baseInput = new FakeInput(); - Issue base = new Issue(null, "", RuleKey.of("sca", "use-of-vulnerable-dependency"), "Vulnerable", org.sonar.api.issue.Issue.STATUS_OPEN, new Date(), "CVE-1"); - baseInput.addIssue(base); - FakeInput rawInput = new FakeInput(); - Issue raw = new Issue(null, "", RuleKey.of("sca", "use-of-vulnerable-dependency"), "Vulnerable", org.sonar.api.issue.Issue.STATUS_OPEN, new Date(), "CVE-2"); - rawInput.addIssue(raw); - - Tracking<Issue, Issue> tracking = tracker.trackNonClosed(rawInput, baseInput); - - assertThat(tracking.getUnmatchedBases()).contains(base); - assertThat(tracking.baseFor(raw)).isNull(); - } - private static class Issue implements Trackable { private final RuleKey ruleKey; private final Integer line; private final String message, lineHash; private final String status; private final Date updateDate; - private final String cveId; Issue(@Nullable Integer line, String lineHash, RuleKey ruleKey, @Nullable String message, String status, Date updateDate) { - this(line, lineHash, ruleKey, message, status, updateDate, null); - } - - Issue(@Nullable Integer line, String lineHash, RuleKey ruleKey, @Nullable String message, String status, Date updateDate, @Nullable String cveId) { this.line = line; this.lineHash = lineHash; this.ruleKey = ruleKey; this.status = status; this.updateDate = updateDate; this.message = trim(message); - this.cveId = cveId; } @Override @@ -541,12 +505,6 @@ public class TrackerTest { public Date getUpdateDate() { return updateDate; } - - @CheckForNull - @Override - public String getCveId() { - return cveId; - } } private static class FakeInput implements Input<Issue> { diff --git a/sonar-core/src/test/java/org/sonar/core/language/LanguagesProviderTest.java b/sonar-core/src/test/java/org/sonar/core/language/LanguagesProviderTest.java index 19635174bef..6022fc26919 100644 --- a/sonar-core/src/test/java/org/sonar/core/language/LanguagesProviderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/language/LanguagesProviderTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/language/UnanalyzedLanguagesTest.java b/sonar-core/src/test/java/org/sonar/core/language/UnanalyzedLanguagesTest.java index c539f81cdfa..0a4fcdef0fa 100644 --- a/sonar-core/src/test/java/org/sonar/core/language/UnanalyzedLanguagesTest.java +++ b/sonar-core/src/test/java/org/sonar/core/language/UnanalyzedLanguagesTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/metric/ScannerMetricsTest.java b/sonar-core/src/test/java/org/sonar/core/metric/ScannerMetricsTest.java index 573872d9e36..7c502988a69 100644 --- a/sonar-core/src/test/java/org/sonar/core/metric/ScannerMetricsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/metric/ScannerMetricsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/metric/SoftwareQualitiesMetricsTest.java b/sonar-core/src/test/java/org/sonar/core/metric/SoftwareQualitiesMetricsTest.java index a6a821b59de..34a363dafc5 100644 --- a/sonar-core/src/test/java/org/sonar/core/metric/SoftwareQualitiesMetricsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/metric/SoftwareQualitiesMetricsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/ComponentKeysTest.java b/sonar-core/src/test/java/org/sonar/core/platform/ComponentKeysTest.java index 9e847841d09..f88e3c76c1d 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/ComponentKeysTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/ComponentKeysTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or @@ -23,10 +23,12 @@ import org.junit.Test; import org.slf4j.Logger; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.startsWith; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; +import static org.mockito.Mockito.when; public class ComponentKeysTest { @@ -50,12 +52,13 @@ public class ComponentKeysTest { @Test public void should_log_warning_if_toString_is_not_overridden() { Logger log = mock(Logger.class); + when(log.isWarnEnabled()).thenReturn(true); keys.of(new Object(), log); verifyNoInteractions(log); // only on non-first runs, to avoid false-positives on singletons keys.of(new Object(), log); - verify(log).warn(startsWith("Bad component key")); + verify(log).warn(startsWith("Bad component key"), any(), any()); } @Test diff --git a/sonar-core/src/test/java/org/sonar/core/platform/LazyUnlessStartableStrategyTest.java b/sonar-core/src/test/java/org/sonar/core/platform/LazyUnlessStartableStrategyTest.java index 28fc7df03b0..5535efe2b7f 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/LazyUnlessStartableStrategyTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/LazyUnlessStartableStrategyTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/ListContainerTest.java b/sonar-core/src/test/java/org/sonar/core/platform/ListContainerTest.java index f15d9319161..25be1387a43 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/ListContainerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/ListContainerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/ModuleTest.java b/sonar-core/src/test/java/org/sonar/core/platform/ModuleTest.java index 10c8ccca45c..ca99fc7767d 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/ModuleTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/ModuleTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/PlatformEditionProviderTest.java b/sonar-core/src/test/java/org/sonar/core/platform/PlatformEditionProviderTest.java index f32214054bf..8f318300b1e 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/PlatformEditionProviderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/PlatformEditionProviderTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/PluginClassLoaderDefTest.java b/sonar-core/src/test/java/org/sonar/core/platform/PluginClassLoaderDefTest.java index 037bdf4f95c..af8e4415fe2 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/PluginClassLoaderDefTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/PluginClassLoaderDefTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/PluginClassLoaderTest.java b/sonar-core/src/test/java/org/sonar/core/platform/PluginClassLoaderTest.java index afefc2e3e40..82610363d2a 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/PluginClassLoaderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/PluginClassLoaderTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/PluginClassloaderFactoryTest.java b/sonar-core/src/test/java/org/sonar/core/platform/PluginClassloaderFactoryTest.java index cec48fb6a7f..5c553f848af 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/PluginClassloaderFactoryTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/PluginClassloaderFactoryTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java b/sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java index 287b729f4e5..59f2aaf4a22 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/PluginJarExploderTest.java b/sonar-core/src/test/java/org/sonar/core/platform/PluginJarExploderTest.java index 01d48d78494..f77194313e4 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/PluginJarExploderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/PluginJarExploderTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/PriorityBeanFactoryTest.java b/sonar-core/src/test/java/org/sonar/core/platform/PriorityBeanFactoryTest.java index 6e4e973f51f..3ea01c44cb5 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/PriorityBeanFactoryTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/PriorityBeanFactoryTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/ServerIdTest.java b/sonar-core/src/test/java/org/sonar/core/platform/ServerIdTest.java index f7f9466feb2..05213591da3 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/ServerIdTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/ServerIdTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/SonarQubeVersionTest.java b/sonar-core/src/test/java/org/sonar/core/platform/SonarQubeVersionTest.java index d82be87403d..d9fda894dd6 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/SonarQubeVersionTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/SonarQubeVersionTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/SpringComponentContainerTest.java b/sonar-core/src/test/java/org/sonar/core/platform/SpringComponentContainerTest.java index b1ff7ba83be..fac3b6818f7 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/SpringComponentContainerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/SpringComponentContainerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/platform/StartableBeanPostProcessorTest.java b/sonar-core/src/test/java/org/sonar/core/platform/StartableBeanPostProcessorTest.java index 5b51b365e6d..8bcd39ff1ed 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/StartableBeanPostProcessorTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/StartableBeanPostProcessorTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/rule/ImpactFormatterTest.java b/sonar-core/src/test/java/org/sonar/core/rule/ImpactFormatterTest.java index 6883ef15ae2..e8feea74760 100644 --- a/sonar-core/src/test/java/org/sonar/core/rule/ImpactFormatterTest.java +++ b/sonar-core/src/test/java/org/sonar/core/rule/ImpactFormatterTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/rule/ImpactSeverityMapperTest.java b/sonar-core/src/test/java/org/sonar/core/rule/ImpactSeverityMapperTest.java index 300c3376196..e788eba52dd 100644 --- a/sonar-core/src/test/java/org/sonar/core/rule/ImpactSeverityMapperTest.java +++ b/sonar-core/src/test/java/org/sonar/core/rule/ImpactSeverityMapperTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/rule/RuleTypeMapperTest.java b/sonar-core/src/test/java/org/sonar/core/rule/RuleTypeMapperTest.java new file mode 100644 index 00000000000..7c05d0033f8 --- /dev/null +++ b/sonar-core/src/test/java/org/sonar/core/rule/RuleTypeMapperTest.java @@ -0,0 +1,44 @@ +/* + * 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.core.rule; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class RuleTypeMapperTest { + + @Test + void toApiRuleType_shouldMapToApiRuleType() { + assertThat(RuleTypeMapper.toApiRuleType(org.sonar.core.rule.RuleType.BUG)).isEqualTo(org.sonar.api.rules.RuleType.BUG); + assertThat(RuleTypeMapper.toApiRuleType(org.sonar.core.rule.RuleType.CODE_SMELL)).isEqualTo(org.sonar.api.rules.RuleType.CODE_SMELL); + assertThat(RuleTypeMapper.toApiRuleType(org.sonar.core.rule.RuleType.SECURITY_HOTSPOT)).isEqualTo(org.sonar.api.rules.RuleType.SECURITY_HOTSPOT); + assertThat(RuleTypeMapper.toApiRuleType(org.sonar.core.rule.RuleType.VULNERABILITY)).isEqualTo(org.sonar.api.rules.RuleType.VULNERABILITY); + } + + @Test + void toRuleType_shouldMapToCoreRuleType() { + assertThat(RuleTypeMapper.toRuleType(org.sonar.api.rules.RuleType.BUG)).isEqualTo(org.sonar.core.rule.RuleType.BUG); + assertThat(RuleTypeMapper.toRuleType(org.sonar.api.rules.RuleType.CODE_SMELL)).isEqualTo(org.sonar.core.rule.RuleType.CODE_SMELL); + assertThat(RuleTypeMapper.toRuleType(org.sonar.api.rules.RuleType.SECURITY_HOTSPOT)).isEqualTo(org.sonar.core.rule.RuleType.SECURITY_HOTSPOT); + assertThat(RuleTypeMapper.toRuleType(org.sonar.api.rules.RuleType.VULNERABILITY)).isEqualTo(org.sonar.core.rule.RuleType.VULNERABILITY); + } + +} diff --git a/sonar-core/src/test/java/org/sonar/core/rule/RuleTypeTest.java b/sonar-core/src/test/java/org/sonar/core/rule/RuleTypeTest.java new file mode 100644 index 00000000000..dd156073c9f --- /dev/null +++ b/sonar-core/src/test/java/org/sonar/core/rule/RuleTypeTest.java @@ -0,0 +1,70 @@ +/* + * 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.core.rule; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + + +class RuleTypeTest { + + @Test + void fromDbConstant_shouldReturnCorrectEnum() { + assertThat(RuleType.fromDbConstant(1)).isEqualTo(RuleType.CODE_SMELL); + assertThat(RuleType.fromDbConstant(2)).isEqualTo(RuleType.BUG); + assertThat(RuleType.fromDbConstant(3)).isEqualTo(RuleType.VULNERABILITY); + assertThat(RuleType.fromDbConstant(4)).isEqualTo(RuleType.SECURITY_HOTSPOT); + } + + @Test + void fromDbConstant_shouldThrowExceptionForInvalidValue() { + assertThatThrownBy(() -> RuleType.fromDbConstant(99)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Unsupported type value : 99"); + } + + @Test + void valueOfNullable_shouldReturnCorrectEnumOrNull() { + assertThat(RuleType.valueOfNullable(1)).isEqualTo(RuleType.CODE_SMELL); + assertThat(RuleType.valueOfNullable(0)).isNull(); + } + + @Test + void valueOfNullable_shouldThrowExceptionForInvalidValue() { + assertThatThrownBy(() -> RuleType.valueOfNullable(99)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Unsupported type value : 99"); + } + + @Test + void names_shouldReturnAllEnumNames() { + assertThat(RuleType.names()).containsExactly("CODE_SMELL", "BUG", "VULNERABILITY", "SECURITY_HOTSPOT"); + } + + @Test + void getDbConstant_shouldReturnCorrectDbConstant() { + assertThat(RuleType.CODE_SMELL.getDbConstant()).isEqualTo(1); + assertThat(RuleType.BUG.getDbConstant()).isEqualTo(2); + assertThat(RuleType.VULNERABILITY.getDbConstant()).isEqualTo(3); + assertThat(RuleType.SECURITY_HOTSPOT.getDbConstant()).isEqualTo(4); + } +} diff --git a/sonar-core/src/test/java/org/sonar/core/sarif/Sarif210SerializationDeserializationTest.java b/sonar-core/src/test/java/org/sonar/core/sarif/Sarif210SerializationDeserializationTest.java index 58941980d87..1a010d2bb92 100644 --- a/sonar-core/src/test/java/org/sonar/core/sarif/Sarif210SerializationDeserializationTest.java +++ b/sonar-core/src/test/java/org/sonar/core/sarif/Sarif210SerializationDeserializationTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerImplTest.java b/sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerImplTest.java index ed8e78ef1ef..59e05cf53bf 100644 --- a/sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerImplTest.java +++ b/sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerImplTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/scadata/DefaultScaDataSourceImplTest.java b/sonar-core/src/test/java/org/sonar/core/scadata/DefaultScaDataSourceImplTest.java new file mode 100644 index 00000000000..08c6a38f324 --- /dev/null +++ b/sonar-core/src/test/java/org/sonar/core/scadata/DefaultScaDataSourceImplTest.java @@ -0,0 +1,48 @@ +/* + * 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.core.scadata; + +import org.junit.Test; +import java.util.OptionalInt; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.mock; + +public class DefaultScaDataSourceImplTest { + private final DefaultScaDataSourceImpl dataSource = mock(DefaultScaDataSourceImpl.class); + + @Test + public void getVulnerabilityCount_defaultsToZero() { + String componentUuid = "component-uuid"; + + int vulnerabilityCount = dataSource.getVulnerabilityCount(componentUuid); + + assertEquals(0, vulnerabilityCount); + } + + @Test + public void getVulnerabilityRating_defaultsToEmpty() { + String componentUuid = "component-uuid"; + + OptionalInt vulnerabilityRating = dataSource.getVulnerabilityRating(componentUuid); + + assertEquals(OptionalInt.empty(), vulnerabilityRating); + } +} diff --git a/sonar-core/src/test/java/org/sonar/core/util/CloseableIteratorTest.java b/sonar-core/src/test/java/org/sonar/core/util/CloseableIteratorTest.java index a8841c4d309..fab931a3a5a 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/CloseableIteratorTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/CloseableIteratorTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/ContextExceptionTest.java b/sonar-core/src/test/java/org/sonar/core/util/ContextExceptionTest.java index f0c3c80de39..55bde45e022 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/ContextExceptionTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/ContextExceptionTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/FileUtilsTest.java b/sonar-core/src/test/java/org/sonar/core/util/FileUtilsTest.java index e6ad1e12fc4..75250e1e445 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/FileUtilsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/FileUtilsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/LineReaderIteratorTest.java b/sonar-core/src/test/java/org/sonar/core/util/LineReaderIteratorTest.java index 33817abd3ff..79c02fd61fc 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/LineReaderIteratorTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/LineReaderIteratorTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/NonNullInputFunctionTest.java b/sonar-core/src/test/java/org/sonar/core/util/NonNullInputFunctionTest.java index 1e16ab504a2..9719ff5c7a2 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/NonNullInputFunctionTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/NonNullInputFunctionTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/ProcessWrapperFactoryTest.java b/sonar-core/src/test/java/org/sonar/core/util/ProcessWrapperFactoryTest.java new file mode 100644 index 00000000000..04627cd808c --- /dev/null +++ b/sonar-core/src/test/java/org/sonar/core/util/ProcessWrapperFactoryTest.java @@ -0,0 +1,139 @@ +/* + * 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.core.util; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.Map; +import java.util.concurrent.ConcurrentLinkedDeque; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Consumer; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.SystemUtils; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.api.io.TempDir; +import org.slf4j.LoggerFactory; +import org.slf4j.event.Level; +import org.sonar.api.testfixtures.log.LogTesterJUnit5; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +class ProcessWrapperFactoryTest { + + @RegisterExtension + private final LogTesterJUnit5 logTester = new LogTesterJUnit5(); + private final ProcessWrapperFactory underTest = new ProcessWrapperFactory(); + + @Test + void should_log_error_output_in_debug_mode(@TempDir Path root) { + logTester.setLevel(Level.DEBUG); + + Consumer<String> stdoutConsumer = s -> { + }; + Consumer<String> stderrConsumer = LoggerFactory.getLogger(ProcessWrapperFactoryTest.class)::debug; + var processWrapper = underTest.create(root, stdoutConsumer, stderrConsumer, Map.of("LANG", "en_US"), "git", "blame"); + assertThatThrownBy(processWrapper::execute) + .isInstanceOf(IllegalStateException.class); + + assertThat(logTester.logs(Level.DEBUG).get(0)).startsWith("fatal:"); + } + + // SONAR-24376 + @Test + void should_not_freeze_when_destroying_in_the_middle_of_big_stdout_stdin(@TempDir Path temp) throws IOException { + var bigFile = temp.resolve("stdout.txt"); + for (int i = 0; i < 1024; i++) { + Files.writeString(bigFile, StringUtils.repeat("a", 1024), StandardCharsets.UTF_8, StandardOpenOption.APPEND, StandardOpenOption.CREATE); + Files.writeString(bigFile, "\n", StandardCharsets.UTF_8, StandardOpenOption.APPEND); + } + + var stdoutHandler = new DestroyProcessAfter10Lines(); + var stderrHandler = new DestroyProcessAfter10Lines(); + + var processWrapper = underTest.create(temp, stdoutHandler::process, stderrHandler::process, + SystemUtils.IS_OS_WINDOWS ? new String[] {"cmd.exe", "/c", "type stdout.txt"} : new String[] {"cat", "stdout.txt"}); + stdoutHandler.wrapper = processWrapper; + + assertThatCode(processWrapper::execute).doesNotThrowAnyException(); + // A few lines might be processed before the process is destroyed + assertThat(stdoutHandler.lineCounter.get()).isGreaterThanOrEqualTo(10); + } + + @Test + void should_not_deadlock_when_stream_handler_throw_exception(@TempDir Path temp) throws IOException { + var bigFile = temp.resolve("stdout.txt"); + for (int i = 0; i < 1024; i++) { + Files.writeString(bigFile, StringUtils.repeat("a", 1024), StandardCharsets.UTF_8, StandardOpenOption.APPEND, StandardOpenOption.CREATE); + Files.writeString(bigFile, "\n", StandardCharsets.UTF_8, StandardOpenOption.APPEND); + } + + var stdoutHandler = new ThrowExceptionForEveryLine(); + + var processWrapper = underTest.create(temp, stdoutHandler::process, l -> { + }, + SystemUtils.IS_OS_WINDOWS ? new String[] {"cmd.exe", "/c", "type stdout.txt"} : new String[] {"cat", "stdout.txt"}); + + assertThatThrownBy(processWrapper::execute) + .hasMessage("Error while processing stream for command") + .hasCauseInstanceOf(IllegalStateException.class) + .hasStackTraceContaining("Some error"); + } + + @Test + void should_apply_env_overrides_on_top_of_parent_env(@TempDir Path temp) throws IOException { + ConcurrentLinkedDeque<String> logs = new ConcurrentLinkedDeque<>(); + + Consumer<String> stdoutHandler = logs::add; + Consumer<String> stderrHandler = logs::add; + + var processWrapper = underTest.create(temp, stdoutHandler, stderrHandler, Map.of("FOO", "BAR"), + SystemUtils.IS_OS_WINDOWS ? new String[] {"cmd.exe", "/c", "echo %PATH% & echo %FOO%"} : new String[] {"/bin/bash", "-c", "echo $PATH; echo $FOO;"}); + processWrapper.execute(); + + // Trim all output lines to avoid issues with trailing spaces on Windows environment variables + var trimmedLogs = logs.stream().map(String::trim).toList(); + assertThat(trimmedLogs).containsExactly(System.getenv("PATH").trim(), "BAR"); + } + + private static class DestroyProcessAfter10Lines { + private final AtomicInteger lineCounter = new AtomicInteger(); + private ProcessWrapperFactory.ProcessWrapper wrapper; + + void process(String line) { + if (lineCounter.incrementAndGet() == 10) { + wrapper.destroy(); + } + } + } + + private static class ThrowExceptionForEveryLine { + + void process(String line) { + throw new IllegalStateException("Some error"); + } + } + +} diff --git a/sonar-core/src/test/java/org/sonar/core/util/ProgressLoggerTest.java b/sonar-core/src/test/java/org/sonar/core/util/ProgressLoggerTest.java index b5e74079625..9a09ab7db0a 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/ProgressLoggerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/ProgressLoggerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/ProtobufJsonFormatTest.java b/sonar-core/src/test/java/org/sonar/core/util/ProtobufJsonFormatTest.java index d5721ebdcb5..97cc97910ed 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/ProtobufJsonFormatTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/ProtobufJsonFormatTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/ProtobufTest.java b/sonar-core/src/test/java/org/sonar/core/util/ProtobufTest.java index 724afc7bf50..ad23eacba23 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/ProtobufTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/ProtobufTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/ResourceUtilsTest.java b/sonar-core/src/test/java/org/sonar/core/util/ResourceUtilsTest.java index 86dafbc9da4..82d4919a17c 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/ResourceUtilsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/ResourceUtilsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/SequenceUuidFactoryTest.java b/sonar-core/src/test/java/org/sonar/core/util/SequenceUuidFactoryTest.java index ae42c493859..614351f419a 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/SequenceUuidFactoryTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/SequenceUuidFactoryTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/SettingFormatterTest.java b/sonar-core/src/test/java/org/sonar/core/util/SettingFormatterTest.java index 222e2c8e7fa..f7e3ad187c2 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/SettingFormatterTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/SettingFormatterTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/SlugTest.java b/sonar-core/src/test/java/org/sonar/core/util/SlugTest.java index e2dddc36a12..1d8edfb6805 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/SlugTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/SlugTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/UtcDateUtilsTest.java b/sonar-core/src/test/java/org/sonar/core/util/UtcDateUtilsTest.java index 0a89f6cc4a9..f633fa1d068 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/UtcDateUtilsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/UtcDateUtilsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/UuidFactoryFastTest.java b/sonar-core/src/test/java/org/sonar/core/util/UuidFactoryFastTest.java index f9650b1fd56..44323414661 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/UuidFactoryFastTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/UuidFactoryFastTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/UuidFactoryImplTest.java b/sonar-core/src/test/java/org/sonar/core/util/UuidFactoryImplTest.java index c27262886d4..1c347205f5a 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/UuidFactoryImplTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/UuidFactoryImplTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/UuidsTest.java b/sonar-core/src/test/java/org/sonar/core/util/UuidsTest.java index 5cc8cb65642..b38d013c624 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/UuidsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/UuidsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/issue/IssueChangedEventTest.java b/sonar-core/src/test/java/org/sonar/core/util/issue/IssueChangedEventTest.java index 87881193597..1ee9b5e95e2 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/issue/IssueChangedEventTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/issue/IssueChangedEventTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/issue/IssueTest.java b/sonar-core/src/test/java/org/sonar/core/util/issue/IssueTest.java index 8300ad03f52..41c17ff0045 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/issue/IssueTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/issue/IssueTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/logs/DefaultProfilerTest.java b/sonar-core/src/test/java/org/sonar/core/util/logs/DefaultProfilerTest.java index 8b04598badd..7102631e2e1 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/logs/DefaultProfilerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/logs/DefaultProfilerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/logs/NullProfilerTest.java b/sonar-core/src/test/java/org/sonar/core/util/logs/NullProfilerTest.java index 57adf365ac8..ed5ee5176af 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/logs/NullProfilerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/logs/NullProfilerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/logs/ProfilerTest.java b/sonar-core/src/test/java/org/sonar/core/util/logs/ProfilerTest.java index df32b5ae49a..0ff1789e619 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/logs/ProfilerTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/logs/ProfilerTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/rule/RuleChangeTest.java b/sonar-core/src/test/java/org/sonar/core/util/rule/RuleChangeTest.java index a1f5c8119bc..a50794fd392 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/rule/RuleChangeTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/rule/RuleChangeTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/rule/RuleSetChangedEventTest.java b/sonar-core/src/test/java/org/sonar/core/util/rule/RuleSetChangedEventTest.java index 6836e2a8849..adddebb4aa6 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/rule/RuleSetChangedEventTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/rule/RuleSetChangedEventTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or diff --git a/sonar-core/src/test/java/org/sonar/core/util/stream/MoreCollectorsTest.java b/sonar-core/src/test/java/org/sonar/core/util/stream/MoreCollectorsTest.java index 06f8acc2fd4..1cbdb48c8f8 100644 --- a/sonar-core/src/test/java/org/sonar/core/util/stream/MoreCollectorsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/util/stream/MoreCollectorsTest.java @@ -1,6 +1,6 @@ /* * SonarQube - * Copyright (C) 2009-2024 SonarSource SA + * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or |