// - store information so that it can restart upon failure (publish event on the server recovery
// queue, remove it on successful completion)
this.task = task;
RepositoryTask repoTask = (RepositoryTask) task;
String repoId = repoTask.getRepositoryId();
if ( StringUtils.isBlank( repoId ) )
{
throw new TaskExecutionException( "Unable to execute RepositoryTask with blank repository Id." );
}
ManagedRepository arepo = managedRepositoryAdmin.getManagedRepository( repoId );
// execute consumers on resource file if set
if ( repoTask.getResourceFile() != null )
{
log.debug( "Executing task from queue with job name: {}", repoTask );
consumers.executeConsumers( arepo, repoTask.getResourceFile(), repoTask.isUpdateRelatedArtifacts() );
}
else
{
log.info( "Executing task from queue with job name: {}", repoTask );
// otherwise, execute consumers on whole repository
if ( arepo == null )
{
throw new TaskExecutionException(
"Unable to execute RepositoryTask with invalid repository id: " + repoId );
}
long sinceWhen = RepositoryScanner.FRESH_SCAN;
long previousFileCount = 0;
RepositorySession repositorySession = repositorySessionFactory.createSession();
MetadataRepository metadataRepository = repositorySession.getRepository();
try
{
if ( !repoTask.isScanAll() )
{
RepositoryStatistics previousStats =
repositoryStatisticsManager.getLastStatistics( metadataRepository, repoId );
if ( previousStats != null )
{