Search in sources :

Example 11 with Repository

use of org.apache.archiva.repository.Repository in project archiva by apache.

the class MavenRepositorySearch method addIndexingContexts.

/**
 * @param selectedRepos
 * @return indexing contextId used
 */
private List<String> addIndexingContexts(List<String> selectedRepos) {
    Set<String> indexingContextIds = new HashSet<>();
    for (String repo : selectedRepos) {
        try {
            Repository rRepo = repositoryRegistry.getRepository(repo);
            if (rRepo != null) {
                if (rRepo.getType().equals(RepositoryType.MAVEN)) {
                    assert rRepo.getIndexingContext() != null;
                    IndexingContext context = rRepo.getIndexingContext().getBaseContext(IndexingContext.class);
                    if (context.isSearchable()) {
                        indexingContextIds.addAll(getRemoteIndexingContextIds(repo));
                        indexingContextIds.add(context.getId());
                    } else {
                        log.warn("indexingContext with id {} not searchable", rRepo.getId());
                    }
                }
            } else {
                log.warn("Repository '{}' not found in configuration.", repo);
            }
        } catch (RepositorySearchException e) {
            log.warn("RepositorySearchException occured while accessing index of repository '{}' : {}", repo, e.getMessage());
            continue;
        } catch (UnsupportedBaseContextException e) {
            log.error("Fatal situation: Maven repository without IndexingContext found.");
            continue;
        }
    }
    return new ArrayList<>(indexingContextIds);
}
Also used : UnsupportedBaseContextException(org.apache.archiva.indexer.UnsupportedBaseContextException) Repository(org.apache.archiva.repository.Repository) RemoteRepository(org.apache.archiva.repository.RemoteRepository) ArrayList(java.util.ArrayList) IndexingContext(org.apache.maven.index.context.IndexingContext) RepositorySearchException(org.apache.archiva.indexer.search.RepositorySearchException) HashSet(java.util.HashSet)

Example 12 with Repository

use of org.apache.archiva.repository.Repository in project archiva by apache.

the class ArchivaIndexManagerMock method reset.

@Override
public ArchivaIndexingContext reset(ArchivaIndexingContext context) throws IndexUpdateFailedException {
    ArchivaIndexingContext ctx;
    executeUpdateFunction(context, indexingContext -> {
        try {
            indexingContext.close(true);
        } catch (IOException e) {
            log.warn("Index close failed");
        }
        try {
            FileUtils.deleteDirectory(Paths.get(context.getPath()));
        } catch (IOException e) {
            throw new IndexUpdateFailedException("Could not delete index files");
        }
    });
    try {
        Repository repo = context.getRepository();
        ctx = createContext(context.getRepository());
        if (repo instanceof EditableRepository) {
            ((EditableRepository) repo).setIndexingContext(ctx);
        }
    } catch (IndexCreationFailedException e) {
        throw new IndexUpdateFailedException("Could not create index");
    }
    return ctx;
}
Also used : ManagedRepository(org.apache.archiva.repository.ManagedRepository) EditableRepository(org.apache.archiva.repository.EditableRepository) Repository(org.apache.archiva.repository.Repository) RemoteRepository(org.apache.archiva.repository.RemoteRepository) IndexCreationFailedException(org.apache.archiva.indexer.IndexCreationFailedException) IOException(java.io.IOException) IndexUpdateFailedException(org.apache.archiva.indexer.IndexUpdateFailedException) ArchivaIndexingContext(org.apache.archiva.indexer.ArchivaIndexingContext) EditableRepository(org.apache.archiva.repository.EditableRepository)

Example 13 with Repository

use of org.apache.archiva.repository.Repository in project archiva by apache.

the class RepositoryGroupAdminTest method addAndDeleteGroup.

@Test
public void addAndDeleteGroup() throws Exception {
    try {
        Repository repo = repositoryRegistry.getRepository("test-new-one");
        if (repo != null) {
            repositoryRegistry.removeRepository(repo);
        }
        repo = repositoryRegistry.getRepository("test-new-two");
        if (repo != null) {
            repositoryRegistry.removeRepository(repo);
        }
        ManagedRepository managedRepositoryOne = getTestManagedRepository("test-new-one", Paths.get(APPSERVER_BASE_PATH, "test-new-one").toString());
        ManagedRepository managedRepositoryTwo = getTestManagedRepository("test-new-two", Paths.get(APPSERVER_BASE_PATH, "test-new-two").toString());
        managedRepositoryAdmin.addManagedRepository(managedRepositoryOne, false, getFakeAuditInformation());
        managedRepositoryAdmin.addManagedRepository(managedRepositoryTwo, false, getFakeAuditInformation());
        RepositoryGroup repositoryGroup = new RepositoryGroup("repo-group-one", Arrays.asList("test-new-one", "test-new-two"));
        // repositoryGroupAdmin.deleteRepositoryGroup("repo-group-one", null);
        mockAuditListener.clearEvents();
        repositoryGroupAdmin.addRepositoryGroup(repositoryGroup, getFakeAuditInformation());
        assertEquals(1, repositoryGroupAdmin.getRepositoriesGroups().size());
        assertEquals("repo-group-one", repositoryGroupAdmin.getRepositoriesGroups().get(0).getId());
        assertEquals(2, repositoryGroupAdmin.getRepositoriesGroups().get(0).getRepositories().size());
        assertEquals(Arrays.asList("test-new-one", "test-new-two"), repositoryGroupAdmin.getRepositoriesGroups().get(0).getRepositories());
        // verify if default values were saved
        assertEquals(30, repositoryGroupAdmin.getRepositoriesGroups().get(0).getMergedIndexTtl());
        assertEquals(".indexer", repositoryGroupAdmin.getRepositoriesGroups().get(0).getMergedIndexPath());
        repositoryGroupAdmin.deleteRepositoryGroup("repo-group-one", getFakeAuditInformation());
        assertEquals(0, repositoryGroupAdmin.getRepositoriesGroups().size());
        assertEquals(2, mockAuditListener.getAuditEvents().size());
        assertEquals(AuditEvent.ADD_REPO_GROUP, mockAuditListener.getAuditEvents().get(0).getAction());
        assertEquals(AuditEvent.DELETE_REPO_GROUP, mockAuditListener.getAuditEvents().get(1).getAction());
    } finally {
        mockAuditListener.clearEvents();
        repositoryRegistry.removeRepository(repositoryRegistry.getManagedRepository("test-new-one"));
        repositoryRegistry.removeRepository(repositoryRegistry.getManagedRepository("test-new-two"));
    }
}
Also used : Repository(org.apache.archiva.repository.Repository) ManagedRepository(org.apache.archiva.admin.model.beans.ManagedRepository) ManagedRepository(org.apache.archiva.admin.model.beans.ManagedRepository) RepositoryGroup(org.apache.archiva.admin.model.beans.RepositoryGroup) AbstractRepositoryAdminTest(org.apache.archiva.admin.repository.AbstractRepositoryAdminTest) Test(org.junit.Test)

Example 14 with Repository

use of org.apache.archiva.repository.Repository in project archiva by apache.

the class ArchivaRepositoryRegistryTest method validateRepository.

@Test
void validateRepository() {
    Repository repo = repositoryRegistry.getRepository("internal");
    assertNotNull(repo);
    assertTrue(repositoryRegistry.validateRepository(repo).isValid());
}
Also used : Repository(org.apache.archiva.repository.Repository) RemoteRepository(org.apache.archiva.repository.RemoteRepository) ManagedRepository(org.apache.archiva.repository.ManagedRepository) BasicRemoteRepository(org.apache.archiva.repository.base.remote.BasicRemoteRepository) BasicManagedRepository(org.apache.archiva.repository.base.managed.BasicManagedRepository) Test(org.junit.jupiter.api.Test)

Example 15 with Repository

use of org.apache.archiva.repository.Repository in project archiva by apache.

the class ArchivaIndexManagerMock method reset.

@Override
public ArchivaIndexingContext reset(ArchivaIndexingContext context) throws IndexUpdateFailedException {
    ArchivaIndexingContext ctx;
    executeUpdateFunction(context, indexingContext -> {
        try {
            indexingContext.close(true);
        } catch (IOException e) {
            log.warn("Index close failed");
        }
        try {
            FileUtils.deleteDirectory(context.getPath().getFilePath());
        } catch (IOException e) {
            throw new IndexUpdateFailedException("Could not delete index files");
        }
    });
    try {
        Repository repo = context.getRepository();
        ctx = createContext(context.getRepository());
        if (repo instanceof EditableRepository) {
            ((EditableRepository) repo).setIndexingContext(ctx);
        }
    } catch (IndexCreationFailedException e) {
        throw new IndexUpdateFailedException("Could not create index");
    }
    return ctx;
}
Also used : ManagedRepository(org.apache.archiva.repository.ManagedRepository) EditableRepository(org.apache.archiva.repository.EditableRepository) Repository(org.apache.archiva.repository.Repository) RemoteRepository(org.apache.archiva.repository.RemoteRepository) IndexCreationFailedException(org.apache.archiva.indexer.IndexCreationFailedException) IOException(java.io.IOException) IndexUpdateFailedException(org.apache.archiva.indexer.IndexUpdateFailedException) ArchivaIndexingContext(org.apache.archiva.indexer.ArchivaIndexingContext) EditableRepository(org.apache.archiva.repository.EditableRepository)

Aggregations

Repository (org.apache.archiva.repository.Repository)25 RemoteRepository (org.apache.archiva.repository.RemoteRepository)15 ManagedRepository (org.apache.archiva.repository.ManagedRepository)12 IOException (java.io.IOException)10 ArchivaIndexingContext (org.apache.archiva.indexer.ArchivaIndexingContext)9 IndexCreationFailedException (org.apache.archiva.indexer.IndexCreationFailedException)8 EditableRepository (org.apache.archiva.repository.EditableRepository)8 IndexUpdateFailedException (org.apache.archiva.indexer.IndexUpdateFailedException)7 Path (java.nio.file.Path)5 ArrayList (java.util.ArrayList)5 UnsupportedBaseContextException (org.apache.archiva.indexer.UnsupportedBaseContextException)5 BasicManagedRepository (org.apache.archiva.repository.base.managed.BasicManagedRepository)5 IndexCreationFeature (org.apache.archiva.repository.features.IndexCreationFeature)5 IndexingContext (org.apache.maven.index.context.IndexingContext)5 List (java.util.List)4 Inject (javax.inject.Inject)4 ArchivaConfiguration (org.apache.archiva.configuration.provider.ArchivaConfiguration)4 RepositoryException (org.apache.archiva.repository.RepositoryException)4 RepositoryType (org.apache.archiva.repository.RepositoryType)4 Files (java.nio.file.Files)3