3434import java .util .List ;
3535import java .util .Set ;
3636import javax .tools .JavaCompiler ;
37- import javax .tools .JavaFileManager .Location ;
3837import javax .tools .JavaFileObject ;
3938import javax .tools .JavaFileObject .Kind ;
4039import javax .tools .StandardLocation ;
@@ -110,19 +109,38 @@ private JctCompilation createCheckedCompilation(
110109 task .setProcessors (processors );
111110 }
112111
113- LOGGER .info ("Starting compilation" );
112+ LOGGER
113+ .atInfo ()
114+ .setMessage (
115+ "Starting compilation with {} (found {} compilation units, {} user-provided class names)"
116+ )
117+ .addArgument (compiler ::getName )
118+ .addArgument (compilationUnits ::size )
119+ .addArgument (classNames == null
120+ ? () -> "no"
121+ : classNames ::size
122+ )
123+ .log ();
114124
115125 var start = System .nanoTime ();
116126 var success = requireNonNull (
117- task .call (), "Compiler task .call() method returned null unexpectedly!"
127+ task .call (),
128+ () -> "Compiler " + compiler .getName () + " task .call() method returned null unexpectedly!"
118129 );
119130 var delta = (System .nanoTime () - start ) / 1_000_000L ;
120131
121132 LOGGER
122133 .atInfo ()
123- .setMessage ("Compilation {} after approximately {}ms" )
134+ .setMessage ("Compilation with {} {} after approximately {}ms (roughly {} classes/sec)" )
135+ .addArgument (compiler ::getName )
124136 .addArgument (() -> success ? "completed successfully" : "failed" )
125137 .addArgument (delta )
138+ .addArgument (() -> String .format (
139+ "%.2f" ,
140+ classNames == null
141+ ? 1000.0 * compilationUnits .size () / delta
142+ : 1000.0 * classNames .size () / delta
143+ ))
126144 .log ();
127145
128146 return JctCompilationImpl
@@ -137,7 +155,7 @@ private JctCompilation createCheckedCompilation(
137155 }
138156
139157 private Set <JavaFileObject > findCompilationUnits (JctFileManager fileManager ) throws IOException {
140- Collection < Location > locations = IterableUtils
158+ var locations = IterableUtils
141159 .flatten (fileManager .listLocationsForModules (StandardLocation .MODULE_SOURCE_PATH ));
142160
143161 if (locations .isEmpty ()) {
0 commit comments