3030import datadog .trace .civisibility .events .BuildEventsHandlerImpl ;
3131import datadog .trace .civisibility .events .TestEventsHandlerImpl ;
3232import datadog .trace .civisibility .ipc .SignalServer ;
33+ import datadog .trace .civisibility .source .index .RepoIndex ;
3334import datadog .trace .civisibility .telemetry .CiVisibilityMetricCollectorImpl ;
3435import datadog .trace .civisibility .test .ExecutionStrategy ;
3536import datadog .trace .civisibility .utils .ConcurrentHashMapContextStore ;
@@ -90,7 +91,8 @@ public static void start(Instrumentation inst, SharedCommunicationObjects sco) {
9091 // so if lines are explicitly enabled,
9192 // we rely on Jacoco instrumentation rather than on our own coverage mechanism
9293 !config .isCiVisibilityCoverageLinesEnabled ()) {
93- Predicate <String > instrumentationFilter = createCoverageInstrumentationFilter (config );
94+ Predicate <String > instrumentationFilter =
95+ createCoverageInstrumentationFilter (services , repoServices );
9496 inst .addTransformer (new CoverageClassTransformer (instrumentationFilter ));
9597 }
9698
@@ -112,9 +114,15 @@ private static Path getCurrentPath() {
112114 }
113115 }
114116
115- private static Predicate <String > createCoverageInstrumentationFilter (Config config ) {
116- String [] includedPackages = config .getCiVisibilityCodeCoverageIncludedPackages ();
117- String [] excludedPackages = config .getCiVisibilityCodeCoverageExcludedPackages ();
117+ private static Predicate <String > createCoverageInstrumentationFilter (
118+ CiVisibilityServices services , CiVisibilityRepoServices repoServices ) {
119+ String [] includedPackages = services .config .getCiVisibilityCodeCoverageIncludedPackages ();
120+ if (includedPackages .length == 0 && services .processHierarchy .isHeadless ()) {
121+ RepoIndex repoIndex = repoServices .repoIndexProvider .getIndex ();
122+ includedPackages =
123+ Config .convertJacocoExclusionFormatToPackagePrefixes (repoIndex .getRootPackages ());
124+ }
125+ String [] excludedPackages = services .config .getCiVisibilityCodeCoverageExcludedPackages ();
118126 return new CoverageInstrumentationFilter (includedPackages , excludedPackages );
119127 }
120128
0 commit comments