Skip to content

Commit a3cf264

Browse files
SONARJAVA-5633 Expose Configuration inside ModuleScannerContext (#5201)
1 parent ea63196 commit a3cf264

5 files changed

Lines changed: 50 additions & 0 deletions

File tree

java-frontend/src/main/java/org/sonar/java/SonarComponents.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,4 +683,9 @@ public SensorContext context() {
683683
public SonarLintCache sonarLintCache() {
684684
return sonarLintCache;
685685
}
686+
687+
public Configuration getConfiguration() {
688+
return context.config();
689+
}
690+
686691
}

java-frontend/src/main/java/org/sonar/java/model/DefaultModuleScannerContext.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import javax.annotation.Nullable;
2222
import org.sonar.api.SonarProduct;
2323
import org.sonar.api.batch.fs.InputComponent;
24+
import org.sonar.api.config.Configuration;
2425
import org.sonar.java.SonarComponents;
2526
import org.sonar.java.caching.CacheContextImpl;
2627
import org.sonar.java.reporting.AnalyzerMessage;
@@ -102,4 +103,11 @@ public SonarProduct sonarProduct() {
102103

103104
return context.runtime().getProduct();
104105
}
106+
107+
@Override
108+
public Configuration getConfiguration() {
109+
return sonarComponents.getConfiguration();
110+
}
111+
112+
105113
}

java-frontend/src/main/java/org/sonar/plugins/java/api/ModuleScannerContext.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.sonar.api.SonarProduct;
2222
import org.sonar.api.SonarRuntime;
2323
import org.sonar.api.batch.fs.InputComponent;
24+
import org.sonar.api.config.Configuration;
2425
import org.sonar.plugins.java.api.caching.CacheContext;
2526

2627
public interface ModuleScannerContext {
@@ -88,4 +89,10 @@ public interface ModuleScannerContext {
8889
*/
8990
@CheckForNull
9091
SonarProduct sonarProduct();
92+
93+
/**
94+
* @return The configuration used for the analysis.
95+
*/
96+
Configuration getConfiguration();
97+
9198
}

java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1372,4 +1372,17 @@ void should_return_sonarlint_cache_if_initialized_with_a_sonarlint_cache() {
13721372

13731373
assertThat(sonarComponentsWithSonarLintCache02.sonarLintCache()).isSameAs(sonarLintCache);
13741374
}
1375+
1376+
@Test
1377+
void test_getConfiguration() {
1378+
var settings = new MapSettings();
1379+
var sonarComponents = new SonarComponents(null, null, null, null, null, null);
1380+
sonarComponents.setSensorContext(SensorContextTester.create(new File("")).setSettings(settings));
1381+
1382+
var configuration = sonarComponents.getConfiguration();
1383+
assertThat(configuration)
1384+
.isNotNull()
1385+
.isInstanceOf(Configuration.class);
1386+
}
1387+
13751388
}

java-frontend/src/test/java/org/sonar/java/model/DefaultModuleScannerContextTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.sonar.api.SonarRuntime;
2525
import org.sonar.api.batch.fs.InputComponent;
2626
import org.sonar.api.batch.sensor.SensorContext;
27+
import org.sonar.api.config.Configuration;
2728
import org.sonar.java.SonarComponents;
2829
import org.sonar.java.caching.DummyCache;
2930
import org.sonar.plugins.java.api.JavaCheck;
@@ -249,4 +250,20 @@ void should_not_report_product_if_no_sensor_context_is_available() {
249250
assertThat(context.sonarProduct())
250251
.isNull();
251252
}
253+
254+
@Test
255+
void test_getConfiguration() {
256+
var sonarComponents = mock(SonarComponents.class);
257+
var configuration = mock(Configuration.class);
258+
doReturn(configuration).when(sonarComponents).getConfiguration();
259+
260+
var context = new DefaultModuleScannerContext(
261+
sonarComponents,
262+
JParserConfig.MAXIMUM_SUPPORTED_JAVA_VERSION,
263+
false,
264+
null
265+
);
266+
267+
assertThat(context.getConfiguration()).isSameAs(configuration);
268+
}
252269
}

0 commit comments

Comments
 (0)