getLog().info( "use parallelThreads " + parallelThreads );
ExecutorService executorService = Executors.newFixedThreadPool( parallelThreads );
for ( int i = 0; i < buildJobs.length; i++ )
{
final BuildJob project = buildJobs[i];
executorService.execute( new Runnable()
{
public void run()
{
try
{
runBuild( projectsDir, project, finalSettingsFile );
}
catch ( MojoExecutionException e )
{
throw new RuntimeException( e.getMessage(), e );
}
}
} );
}
try
{
executorService.shutdown();
// TODO add a configurable time out
executorService.awaitTermination( Long.MAX_VALUE, TimeUnit.MILLISECONDS );
}
catch ( InterruptedException e )
{
throw new MojoExecutionException( e.getMessage(), e );
}
}
else
{
for ( int i = 0; i < buildJobs.length; i++ )
{
BuildJob project = buildJobs[i];
runBuild( projectsDir, project, finalSettingsFile );
}
}
}
finally