From 36419612b881db4e528bf67b0ae01d24287396ba Mon Sep 17 00:00:00 2001 From: Anton Haubner Date: Mon, 27 May 2024 14:19:45 +0200 Subject: [PATCH] SONARJAVA-4988: Expose SonarProduct on ModuleScannerContext DBD custom rules need this information to turn off saving IR to the filesystem in a SonarLint context --- .../sonar/java/model/DefaultModuleScannerContext.java | 11 +++++++++++ .../plugins/java/api/InputFileScannerContext.java | 1 - .../sonar/plugins/java/api/ModuleScannerContext.java | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/java-frontend/src/main/java/org/sonar/java/model/DefaultModuleScannerContext.java b/java-frontend/src/main/java/org/sonar/java/model/DefaultModuleScannerContext.java index 0170f083412..dd661fb8aae 100644 --- a/java-frontend/src/main/java/org/sonar/java/model/DefaultModuleScannerContext.java +++ b/java-frontend/src/main/java/org/sonar/java/model/DefaultModuleScannerContext.java @@ -21,6 +21,7 @@ import java.io.File; import javax.annotation.Nullable; +import org.sonar.api.SonarProduct; import org.sonar.api.batch.fs.InputComponent; import org.sonar.java.SonarComponents; import org.sonar.java.caching.CacheContextImpl; @@ -85,4 +86,14 @@ public File getRootProjectWorkingDirectory() { public String getModuleKey() { return sonarComponents.getModuleKey(); } + + @Override + public SonarProduct sonarProduct() { + var context = sonarComponents.context(); + if (context == null) { + return null; + } + + return context.runtime().getProduct(); + } } diff --git a/java-frontend/src/main/java/org/sonar/plugins/java/api/InputFileScannerContext.java b/java-frontend/src/main/java/org/sonar/plugins/java/api/InputFileScannerContext.java index 4a27e50a322..7838b8f9149 100644 --- a/java-frontend/src/main/java/org/sonar/plugins/java/api/InputFileScannerContext.java +++ b/java-frontend/src/main/java/org/sonar/plugins/java/api/InputFileScannerContext.java @@ -57,5 +57,4 @@ public interface InputFileScannerContext extends ModuleScannerContext { * @since SonarJava 5.12: Dropping support of file-related methods */ InputFile getInputFile(); - } diff --git a/java-frontend/src/main/java/org/sonar/plugins/java/api/ModuleScannerContext.java b/java-frontend/src/main/java/org/sonar/plugins/java/api/ModuleScannerContext.java index 5872138b72b..41364c2fdb2 100644 --- a/java-frontend/src/main/java/org/sonar/plugins/java/api/ModuleScannerContext.java +++ b/java-frontend/src/main/java/org/sonar/plugins/java/api/ModuleScannerContext.java @@ -20,6 +20,8 @@ package org.sonar.plugins.java.api; import java.io.File; +import javax.annotation.CheckForNull; +import org.sonar.api.SonarProduct; import org.sonar.api.batch.fs.InputComponent; import org.sonar.plugins.java.api.caching.CacheContext; @@ -80,4 +82,7 @@ public interface ModuleScannerContext { * @return A key that uniquely identifies the current module, provided that this project consists of multiple modules. */ String getModuleKey(); + + @CheckForNull + SonarProduct sonarProduct(); }