use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class DefaultRepositoryProxyConnectors method queueRepositoryTask.
private void queueRepositoryTask(String repositoryId, Path localFile) {
RepositoryTask task = new RepositoryTask();
task.setRepositoryId(repositoryId);
task.setResourceFile(localFile);
task.setUpdateRelatedArtifacts(true);
task.setScanAll(true);
try {
scheduler.queueTask(task);
} catch (TaskQueueException e) {
log.error("Unable to queue repository task to execute consumers on resource file ['{}" + "'].", localFile.getFileName());
}
}
use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class DefaultRepositoriesService method scanRepositoryNow.
@Override
public Boolean scanRepositoryNow(String repositoryId, boolean fullScan) throws ArchivaRestServiceException {
try {
org.apache.archiva.repository.ManagedRepository repository = repositoryRegistry.getManagedRepository(repositoryId);
ArtifactIndexingTask task = new ArtifactIndexingTask(repository, null, ArtifactIndexingTask.Action.FINISH, repository.getIndexingContext());
task.setExecuteOnEntireRepo(true);
task.setOnlyUpdate(!fullScan);
archivaIndexingTaskExecutor.executeTask(task);
scheduler.queueTask(new RepositoryTask(repositoryId, fullScan));
return Boolean.TRUE;
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new ArchivaRestServiceException(e.getMessage(), e);
}
}
use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class ArchivaDavResource method queueRepositoryTask.
private void queueRepositoryTask(Path localFile) {
RepositoryTask task = new RepositoryTask();
task.setRepositoryId(repository.getId());
task.setResourceFile(localFile);
task.setUpdateRelatedArtifacts(false);
task.setScanAll(false);
try {
scheduler.queueTask(task);
} catch (TaskQueueException e) {
log.error("Unable to queue repository task to execute consumers on resource file ['{}" + "'].", localFile.getFileName());
}
}
use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class ArchivaRepositoryScanningTaskExecutorPhase2Test method testExecutorScanOnlyNewArtifacts.
@Test
public void testExecutorScanOnlyNewArtifacts() throws Exception {
RepositoryTask repoTask = new RepositoryTask();
repoTask.setRepositoryId(TEST_REPO_ID);
repoTask.setScanAll(false);
createAndSaveTestStats();
taskExecutor.executeTask(repoTask);
// check no artifacts processed
Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
assertNotNull(unprocessedResultList);
assertEquals("Incorrect number of unprocessed artifacts detected. No new artifacts should have been found.", 0, unprocessedResultList.size());
// check correctness of new stats
RepositoryStatistics newStats = repositoryStatisticsManager.getLastStatistics(metadataRepository, TEST_REPO_ID);
assertEquals(0, newStats.getNewFileCount());
assertEquals(31, 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( 14159, newStats.getTotalArtifactFileSize() );
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
Files.setLastModifiedTime(newArtifactGroup.resolve("archiva-index-methods-jar-test/1.0/pom.xml"), FileTime.fromMillis(Calendar.getInstance().getTimeInMillis() + 1000));
Files.setLastModifiedTime(newArtifactGroup.resolve("archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar"), FileTime.fromMillis(Calendar.getInstance().getTimeInMillis() + 1000));
assertTrue(Files.exists(newArtifactGroup));
taskExecutor.executeTask(repoTask);
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 updatedStats = repositoryStatisticsManager.getLastStatistics(metadataRepository, TEST_REPO_ID);
assertEquals(2, updatedStats.getNewFileCount());
assertEquals(33, updatedStats.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, updatedStats.getTotalArtifactFileSize() );
}
use of org.apache.archiva.scheduler.repository.model.RepositoryTask in project archiva by apache.
the class ArchivaRepositoryScanningTaskExecutorPhase2Test method testExecutorScanOnlyNewArtifactsChangeTimes.
@Test
public void testExecutorScanOnlyNewArtifactsChangeTimes() 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 shortly after last scan
Files.setLastModifiedTime(newArtifactGroup.resolve("archiva-index-methods-jar-test/1.0/pom.xml"), FileTime.fromMillis(Calendar.getInstance().getTimeInMillis() + 1000));
Files.setLastModifiedTime(newArtifactGroup.resolve("archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar"), FileTime.fromMillis(Calendar.getInstance().getTimeInMillis() + 1000));
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() );
}
Aggregations