diff options
Diffstat (limited to 'sonar-core/src/main')
156 files changed, 599 insertions, 233 deletions
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 |