File tree 1 file changed +27
-0
lines changed
src/main/java/org/scoverage/plugin 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 23
23
import java .io .File ;
24
24
import java .io .FileInputStream ;
25
25
import java .util .ArrayList ;
26
+ import java .util .ArrayDeque ;
26
27
import java .util .Arrays ;
27
28
import java .util .List ;
28
29
import java .util .Locale ;
30
+ import java .util .Queue ;
29
31
import java .util .ResourceBundle ;
30
32
31
33
import org .apache .maven .doxia .module .xhtml .decoration .render .RenderingContext ;
@@ -503,6 +505,31 @@ else if ( !module.getPackaging().equals( "pom" ) )
503
505
scoverageDataDirs .size () ) );
504
506
}
505
507
508
+ /* traverse up the module tree until a module isExecutionRoot */
509
+ if ( topLevelModule == null )
510
+ {
511
+ Queue <MavenProject > candidateForTopLevelModules = new ArrayDeque <>(reactorProjects );
512
+ while ( !candidateForTopLevelModules .isEmpty () )
513
+ {
514
+ MavenProject module = candidateForTopLevelModules .poll ();
515
+ if ( module .isExecutionRoot () )
516
+ {
517
+ topLevelModule = module ;
518
+ break ;
519
+ }
520
+ if ( module .hasParent () )
521
+ {
522
+ candidateForTopLevelModules .add (module .getParent ());
523
+ }
524
+ }
525
+ }
526
+ if ( topLevelModule == null )
527
+ {
528
+ // This exception should never be thrown.
529
+ throw new IllegalStateException ("Cannot find the top level module to write the " +
530
+ "aggregated reports." );
531
+ }
532
+
506
533
File topLevelModuleOutputDirectory = rebase ( outputDirectory , topLevelModule );
507
534
File topLevelModuleXmlOutputDirectory = rebase ( xmlOutputDirectory , topLevelModule );
508
535
You can’t perform that action at this time.
0 commit comments