public void executeTask( Task task )
throws TaskExecutionException
{
ArtifactIndexingTask indexingTask = (ArtifactIndexingTask) task;
ManagedRepository repository = indexingTask.getRepository();
IndexingContext context = indexingTask.getContext();
if ( ArtifactIndexingTask.Action.FINISH.equals( indexingTask.getAction() )
&& indexingTask.isExecuteOnEntireRepo() )
{
try
{
nexusIndexer.scan( context, null, indexingTask.isOnlyUpdate() );
}
catch ( IOException e )
{
throw new TaskExecutionException( "Error scan repository " + repository, e );
}
log.debug( "Finishing indexing task on repo: {}", repository.getId() );
finishIndexingTask( indexingTask, repository, context );
}
else
{
// create context if not a repo scan request