checkClosed();
artifactDownloads = notNull( artifactDownloads );
metadataDownloads = notNull( metadataDownloads );
RunnableErrorForwarder errorForwarder = new RunnableErrorForwarder();
for ( ArtifactDownload artifactDownload : artifactDownloads )
{
FileRepositoryWorker worker = new FileRepositoryWorker( artifactDownload, repository, session );
worker.setLogger( logger );
worker.setFileProcessor( fileProcessor );
executor.execute( errorForwarder.wrap( worker ) );
}
for ( MetadataDownload metadataDownload : metadataDownloads )
{
FileRepositoryWorker worker = new FileRepositoryWorker( metadataDownload, repository, session );
worker.setLogger( logger );
worker.setFileProcessor( fileProcessor );
executor.execute( errorForwarder.wrap( worker ) );
}
errorForwarder.await();
}