Search in sources :

Example 11 with RepositoryTask

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());
}
Also used : RepositoryTask(org.apache.archiva.scheduler.repository.model.RepositoryTask) ArtifactReference(org.apache.archiva.model.ArtifactReference) Test(org.junit.Test)

Example 12 with RepositoryTask

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;
}
Also used : RepositoryTask(org.apache.archiva.scheduler.repository.model.RepositoryTask) TaskQueueException(org.apache.archiva.redback.components.taskqueue.TaskQueueException)

Example 13 with RepositoryTask

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);
    }
}
Also used : JobDataMap(org.quartz.JobDataMap) JobExecutionException(org.quartz.JobExecutionException) TaskQueue(org.apache.archiva.redback.components.taskqueue.TaskQueue) RepositoryTask(org.apache.archiva.scheduler.repository.model.RepositoryTask) TaskQueueException(org.apache.archiva.redback.components.taskqueue.TaskQueueException)

Example 14 with RepositoryTask

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() );
}
Also used : Path(java.nio.file.Path) RepositoryTask(org.apache.archiva.scheduler.repository.model.RepositoryTask) ArtifactReference(org.apache.archiva.model.ArtifactReference) RepositoryStatistics(org.apache.archiva.metadata.repository.stats.model.RepositoryStatistics) DefaultRepositoryStatistics(org.apache.archiva.metadata.repository.stats.model.DefaultRepositoryStatistics) Test(org.junit.Test)

Example 15 with RepositoryTask

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());
}
Also used : RepositoryTask(org.apache.archiva.scheduler.repository.model.RepositoryTask) ArtifactReference(org.apache.archiva.model.ArtifactReference) Date(java.util.Date) Test(org.junit.Test)

Aggregations

RepositoryTask (org.apache.archiva.scheduler.repository.model.RepositoryTask)15 TaskQueueException (org.apache.archiva.redback.components.taskqueue.TaskQueueException)10 ArtifactReference (org.apache.archiva.model.ArtifactReference)5 Test (org.junit.Test)5 Path (java.nio.file.Path)3 DefaultRepositoryStatistics (org.apache.archiva.metadata.repository.stats.model.DefaultRepositoryStatistics)3 RepositoryStatistics (org.apache.archiva.metadata.repository.stats.model.RepositoryStatistics)3 IOException (java.io.IOException)1 Date (java.util.Date)1 RepositoryAdminException (org.apache.archiva.admin.model.RepositoryAdminException)1 MetadataRepositoryException (org.apache.archiva.metadata.repository.MetadataRepositoryException)1 MetadataResolutionException (org.apache.archiva.metadata.repository.MetadataResolutionException)1 AuthorizationException (org.apache.archiva.redback.authorization.AuthorizationException)1 TaskQueue (org.apache.archiva.redback.components.taskqueue.TaskQueue)1 UserManagerException (org.apache.archiva.redback.users.UserManagerException)1 UserNotFoundException (org.apache.archiva.redback.users.UserNotFoundException)1 ContentNotFoundException (org.apache.archiva.repository.ContentNotFoundException)1 RepositoryException (org.apache.archiva.repository.RepositoryException)1 RepositoryNotFoundException (org.apache.archiva.repository.RepositoryNotFoundException)1 RepositoryMetadataException (org.apache.archiva.repository.metadata.RepositoryMetadataException)1