use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class ArchivaRepositoryScanningTaskExecutorPhase1Test method testExecutor.
// Split of ArchivaRepositoryScanningTaskExecutorTest should be executed first
// to avoid testConsumer in unknown state if member of Phase2 all ready executed
@Test
public void testExecutor() throws Exception {
RepositoryTask repoTask = new RepositoryTask();
repoTask.setRepositoryId(TEST_REPO_ID);
taskExecutor.executeTask(repoTask);
Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
assertNotNull(unprocessedResultList);
assertEquals("Incorrect number of unprocessed artifacts detected.", 8, unprocessedResultList.size());
}
use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class DefaultManagedRepositoryAdmin method scanRepository.
public Boolean scanRepository(String repositoryId, boolean fullScan) {
if (getRepositoryTaskScheduler().isProcessingRepositoryTask(repositoryId)) {
log.info("scanning of repository with id {} already scheduled", repositoryId);
}
RepositoryTask task = new RepositoryTask();
task.setRepositoryId(repositoryId);
task.setScanAll(fullScan);
try {
getRepositoryTaskScheduler().queueTask(task);
} catch (TaskQueueException e) {
log.error("failed to schedule scanning of repo with id {}", repositoryId, e);
return false;
}
return true;
}
use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class RepositoryTaskJob method execute.
/**
* Execute the discoverer and the indexer.
*
* @param context
* @throws org.quartz.JobExecutionException
*/
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
setJobDataMap(dataMap);
TaskQueue taskQueue = (TaskQueue) dataMap.get(DefaultRepositoryArchivaTaskScheduler.TASK_QUEUE);
String repositoryId = (String) dataMap.get(DefaultRepositoryArchivaTaskScheduler.TASK_REPOSITORY);
RepositoryTask task = new RepositoryTask();
task.setRepositoryId(repositoryId);
try {
taskQueue.put(task);
} catch (TaskQueueException e) {
throw new JobExecutionException(e);
}
}
use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class ArchivaRepositoryScanningTaskExecutorPhase2Test method testExecutorScanOnlyNewArtifactsMidScan.
@Test
public void testExecutorScanOnlyNewArtifactsMidScan() throws Exception {
RepositoryTask repoTask = new RepositoryTask();
repoTask.setRepositoryId(TEST_REPO_ID);
repoTask.setScanAll(false);
createAndSaveTestStats();
Path newArtifactGroup = repoDir.resolve("org/apache/archiva");
assertFalse("newArtifactGroup should not exist.", Files.exists(newArtifactGroup));
FileUtils.copyDirectoryStructure(Paths.get("target/test-classes/test-repo/org/apache/archiva").toFile(), newArtifactGroup.toFile());
// update last modified date, placing in middle of last scan
Files.setLastModifiedTime(newArtifactGroup.resolve("archiva-index-methods-jar-test/1.0/pom.xml"), FileTime.fromMillis(Calendar.getInstance().getTimeInMillis() - 50000));
Files.setLastModifiedTime(newArtifactGroup.resolve("archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar"), FileTime.fromMillis(Calendar.getInstance().getTimeInMillis() - 50000));
assertTrue(Files.exists(newArtifactGroup));
// scan using the really long previous duration
taskExecutor.executeTask(repoTask);
// check no artifacts processed
Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
assertNotNull(unprocessedResultList);
assertEquals("Incorrect number of unprocessed artifacts detected. One new artifact should have been found.", 1, unprocessedResultList.size());
// check correctness of new stats
RepositoryStatistics newStats = repositoryStatisticsManager.getLastStatistics(metadataRepository, TEST_REPO_ID);
assertEquals(2, newStats.getNewFileCount());
assertEquals(33, newStats.getTotalFileCount());
// FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation
// assertEquals( 8, newStats.getTotalArtifactCount() );
// assertEquals( 3, newStats.getTotalGroupCount() );
// assertEquals( 5, newStats.getTotalProjectCount() );
// assertEquals( 19301, newStats.getTotalArtifactFileSize() );
}
use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class ArchivaRepositoryScanningTaskExecutorPhase2Test method testExecutorForceScanAll.
@Test
public void testExecutorForceScanAll() throws Exception {
RepositoryTask repoTask = new RepositoryTask();
repoTask.setRepositoryId(TEST_REPO_ID);
repoTask.setScanAll(true);
Date date = Calendar.getInstance().getTime();
//
repositoryStatisticsManager.addStatisticsAfterScan(//
metadataRepository, //
TEST_REPO_ID, //
new Date(date.getTime() - 1234567), date, 8, //
8);
taskExecutor.executeTask(repoTask);
Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
assertNotNull(unprocessedResultList);
assertEquals("Incorrect number of unprocessed artifacts detected.", 8, unprocessedResultList.size());
}
Aggregations