From 057577c5c422331e68e8965013d9b4e18ec25654 Mon Sep 17 00:00:00 2001 From: Claire Villard <60586848+claire-villard-sonarsource@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:03:15 +0100 Subject: SONAR-23972 Update scanner-related broken documentation links --- .../org/sonar/core/config/ScannerProperties.java | 2 +- .../scanner/bootstrap/RuntimeJavaVersion.java | 49 ---------- .../scanner/bootstrap/SpringGlobalContainer.java | 4 +- .../scanner/bootstrap/RuntimeJavaVersionTest.java | 107 --------------------- 4 files changed, 2 insertions(+), 160 deletions(-) delete mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/RuntimeJavaVersion.java delete mode 100644 sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/RuntimeJavaVersionTest.java 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 e024b91cfca..b1c68acb353 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 @@ -30,7 +30,7 @@ import static org.sonar.api.PropertyType.INTEGER; public class ScannerProperties { - public static final String BRANCHES_DOC_LINK_SUFFIX = "/analyzing-source-code/branches/branch-analysis/"; + public static final String BRANCHES_DOC_LINK_SUFFIX = "/analyzing-source-code/analysis-parameters/#multibranch"; public static final String BRANCH_NAME = "sonar.branch.name"; diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/RuntimeJavaVersion.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/RuntimeJavaVersion.java deleted file mode 100644 index 887f09a5f00..00000000000 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/RuntimeJavaVersion.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.bootstrap; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.sonar.api.notifications.AnalysisWarnings; -import org.sonar.core.documentation.DocumentationLinkGenerator; - -public class RuntimeJavaVersion { - private static final Logger LOG = LoggerFactory.getLogger(RuntimeJavaVersion.class); - public static final String LOG_MESSAGE = "SonarScanner will require Java 17 to run, starting in SonarQube 10.4"; - public static final String WARNING_MESSAGE_TEMPLATE = "SonarScanner will require Java 17 to run, starting in SonarQube 10.4. Please upgrade the" + - " version of Java that executes the scanner and refer to the documentation if needed."; - - private final DocumentationLinkGenerator documentationLinkGenerator; - private final AnalysisWarnings analysisWarnings; - - public RuntimeJavaVersion(DocumentationLinkGenerator documentationLinkGenerator, AnalysisWarnings analysisWarnings){ - this.documentationLinkGenerator = documentationLinkGenerator; - this.analysisWarnings = analysisWarnings; - } - - public void checkJavaVersion() { - Runtime.Version version = Runtime.version(); - if (version.compareTo(Runtime.Version.parse("17")) < 0) { - LOG.warn(LOG_MESSAGE); - String documentationLink = documentationLinkGenerator.getDocumentationLink("/analyzing-source-code/scanner-environment"); - analysisWarnings.addUnique(WARNING_MESSAGE_TEMPLATE.replace("{}", documentationLink)); - } - } -} diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringGlobalContainer.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringGlobalContainer.java index 9112b99c78b..55593f19704 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringGlobalContainer.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringGlobalContainer.java @@ -119,8 +119,7 @@ public class SpringGlobalContainer extends SpringComponentContainer { ScannerCoreExtensionsInstaller.class, DefaultGlobalSettingsLoader.class, DefaultNewCodePeriodLoader.class, - DefaultMetricsRepositoryLoader.class, - RuntimeJavaVersion.class); + DefaultMetricsRepositoryLoader.class); } @Override @@ -140,7 +139,6 @@ public class SpringGlobalContainer extends SpringComponentContainer { if (!analysisMode.equals("publish")) { throw MessageException.of("The preview mode, along with the 'sonar.analysis.mode' parameter, is no more supported. You should stop using this parameter."); } - getComponentByType(RuntimeJavaVersion.class).checkJavaVersion(); new SpringScannerContainer(this).execute(); LOG.info("Analysis total time: {}", formatTime(System.currentTimeMillis() - startTime)); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/RuntimeJavaVersionTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/RuntimeJavaVersionTest.java deleted file mode 100644 index 83b61a78e33..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/RuntimeJavaVersionTest.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.bootstrap; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.MockedStatic; -import org.mockito.Mockito; -import org.slf4j.event.Level; -import org.sonar.api.notifications.AnalysisWarnings; -import org.sonar.api.testfixtures.log.LogAndArguments; -import org.sonar.api.testfixtures.log.LogTester; -import org.sonar.core.documentation.DocumentationLinkGenerator; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoInteractions; -import static org.mockito.Mockito.when; -import static org.sonar.scanner.bootstrap.RuntimeJavaVersion.WARNING_MESSAGE_TEMPLATE; - -public class RuntimeJavaVersionTest { - - @Rule - public LogTester logTester = new LogTester(); - - private DocumentationLinkGenerator documentLinkGenerator = mock(DocumentationLinkGenerator.class); - private AnalysisWarnings analysisWarnings = spy(AnalysisWarnings.class); - private RuntimeJavaVersion underTest = new RuntimeJavaVersion(documentLinkGenerator, analysisWarnings); - - @Before - public void before(){ - when(documentLinkGenerator.getDocumentationLink(any())).thenReturn("{}"); - } - - @Test - public void given_runtime11_should_log_message() { - try (MockedStatic utilities = Mockito.mockStatic(Runtime.class)) { - Runtime.Version version = Runtime.Version.parse("11"); - utilities.when(Runtime::version).thenReturn(version); - - underTest.checkJavaVersion(); - - assertThat(logTester.getLogs(Level.WARN)).extracting(LogAndArguments::getRawMsg) - .anyMatch(s -> s.contains(RuntimeJavaVersion.LOG_MESSAGE)); - } - } - - @Test - public void given_runtime11_should_addAnalysisWarning() { - try (MockedStatic utilities = Mockito.mockStatic(Runtime.class)) { - Runtime.Version version = Runtime.Version.parse("11"); - utilities.when(Runtime::version).thenReturn(version); - - underTest.checkJavaVersion(); - - verify(analysisWarnings).addUnique(WARNING_MESSAGE_TEMPLATE); - } - } - - - @Test - public void given_runtime17_should_notLogOrAddWarning() { - try (MockedStatic utilities = Mockito.mockStatic(Runtime.class)) { - Runtime.Version version = Runtime.Version.parse("17"); - utilities.when(Runtime::version).thenReturn(version); - - underTest.checkJavaVersion(); - - verifyNoInteractions(analysisWarnings); - assertThat(logTester.logs()).isEmpty(); - } - } - @Test - - public void given_runtime20_should_notLogOrAddWarning() { - try (MockedStatic utilities = Mockito.mockStatic(Runtime.class)) { - Runtime.Version version = Runtime.Version.parse("20"); - utilities.when(Runtime::version).thenReturn(version); - - underTest.checkJavaVersion(); - - verifyNoInteractions(analysisWarnings); - assertThat(logTester.logs()).isEmpty(); - } - } -} -- cgit v1.2.3