Search in sources :

Example 16 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");
        }
        org.apache.archiva.repository.storage.util.StorageUtil.deleteRecursively(context.getPath());
    });
    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 17 with Repository

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

the class RepositoryGroup method of.

public static RepositoryGroup of(org.apache.archiva.repository.RepositoryGroup modelObj) {
    RepositoryGroup result = new RepositoryGroup();
    MergeConfiguration mergeConfig = new MergeConfiguration();
    result.setMergeConfiguration(mergeConfig);
    result.setId(modelObj.getId());
    result.setName(modelObj.getName());
    result.setLocation(modelObj.getLocation().toString());
    result.setRepositories(modelObj.getRepositories().stream().map(Repository::getId).collect(Collectors.toList()));
    if (modelObj.supportsFeature(IndexCreationFeature.class)) {
        IndexCreationFeature icf = modelObj.getFeature(IndexCreationFeature.class);
        mergeConfig.setMergedIndexPath(icf.getIndexPath().toString());
        mergeConfig.setMergedIndexTtlMinutes(modelObj.getMergedIndexTTL());
        mergeConfig.setIndexMergeSchedule(modelObj.getSchedulingDefinition());
    }
    return result;
}
Also used : Repository(org.apache.archiva.repository.Repository) IndexCreationFeature(org.apache.archiva.repository.features.IndexCreationFeature)

Example 18 with Repository

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

the class DefaultMavenManagedRepositoryService method addManagedRepository.

@Override
public MavenManagedRepository addManagedRepository(MavenManagedRepository managedRepository) throws ArchivaRestServiceException {
    final String repoId = managedRepository.getId();
    if (StringUtils.isEmpty(repoId)) {
        throw new ArchivaRestServiceException(ErrorMessage.of(ErrorKeys.REPOSITORY_INVALID_ID, repoId), 422);
    }
    Repository repo = repositoryRegistry.getRepository(repoId);
    if (repo != null) {
        httpServletResponse.setHeader("Location", uriInfo.getAbsolutePathBuilder().path(repoId).build().toString());
        throw new ArchivaRestServiceException(ErrorMessage.of(ErrorKeys.REPOSITORY_ID_EXISTS, repoId), 303);
    }
    try {
        repositoryRegistry.putRepository(mapper.map(managedRepository));
        httpServletResponse.setStatus(201);
        return mapper.reverseMap(repositoryRegistry.getManagedRepository(repoId));
    } catch (RepositoryException e) {
        log.error("Could not create repository: {}", e.getMessage(), e);
        throw new ArchivaRestServiceException(ErrorMessage.of(ErrorKeys.REPOSITORY_ADD_FAILED, repoId));
    }
}
Also used : ManagedRepository(org.apache.archiva.repository.ManagedRepository) Repository(org.apache.archiva.repository.Repository) MavenManagedRepository(org.apache.archiva.rest.api.v2.model.MavenManagedRepository) ArchivaRestServiceException(org.apache.archiva.rest.api.v2.svc.ArchivaRestServiceException) RepositoryException(org.apache.archiva.repository.RepositoryException)

Example 19 with Repository

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

the class DefaultIndexMerger method buildMergedIndex.

@Override
public ArchivaIndexingContext buildMergedIndex(IndexMergerRequest indexMergerRequest) throws IndexMergerException {
    String groupId = indexMergerRequest.getGroupId();
    if (runningGroups.contains(groupId)) {
        log.info("skip build merge remote indexes for id: '{}' as already running", groupId);
        return null;
    }
    runningGroups.add(groupId);
    StopWatch stopWatch = new StopWatch();
    try {
        stopWatch.reset();
        stopWatch.start();
        StorageAsset mergedIndexDirectory = indexMergerRequest.getMergedIndexDirectory();
        Repository destinationRepository = repositoryRegistry.getRepository(indexMergerRequest.getGroupId());
        ArchivaIndexManager idxManager = repositoryRegistry.getIndexManager(destinationRepository.getType());
        List<ArchivaIndexingContext> sourceContexts = indexMergerRequest.getRepositoriesIds().stream().map(id -> repositoryRegistry.getRepository(id).getIndexingContext()).collect(Collectors.toList());
        try {
            ArchivaIndexingContext result = idxManager.mergeContexts(destinationRepository, sourceContexts, indexMergerRequest.isPackIndex());
            if (indexMergerRequest.isTemporary()) {
                String tempRepoId = destinationRepository.getId() + System.currentTimeMillis();
                temporaryGroupIndexes.add(new TemporaryGroupIndex(mergedIndexDirectory, tempRepoId, groupId, indexMergerRequest.getMergedIndexTtl()));
                temporaryContextes.add(result);
            }
            return result;
        } catch (IndexCreationFailedException e) {
            throw new IndexMergerException("Index merging failed " + e.getMessage(), e);
        }
    } finally {
        stopWatch.stop();
        log.info("merged index for repos {} in {} s", indexMergerRequest.getRepositoriesIds(), stopWatch.getTime());
        runningGroups.remove(groupId);
    }
}
Also used : ArchivaIndexingContext(org.apache.archiva.indexer.ArchivaIndexingContext) Async(org.springframework.scheduling.annotation.Async) Logger(org.slf4j.Logger) StorageAsset(org.apache.archiva.repository.storage.StorageAsset) Collection(java.util.Collection) RepositoryRegistry(org.apache.archiva.repository.RepositoryRegistry) LoggerFactory(org.slf4j.LoggerFactory) IOException(java.io.IOException) ArchivaIndexManager(org.apache.archiva.indexer.ArchivaIndexManager) StopWatch(org.apache.commons.lang3.time.StopWatch) TemporaryGroupIndex(org.apache.archiva.indexer.merger.TemporaryGroupIndex) Collectors(java.util.stream.Collectors) IndexMerger(org.apache.archiva.indexer.merger.IndexMerger) IndexMergerException(org.apache.archiva.indexer.merger.IndexMergerException) Inject(javax.inject.Inject) Repository(org.apache.archiva.repository.Repository) List(java.util.List) IndexMergerRequest(org.apache.archiva.indexer.merger.IndexMergerRequest) Service(org.springframework.stereotype.Service) IndexCreationFailedException(org.apache.archiva.indexer.IndexCreationFailedException) Optional(java.util.Optional) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) TemporaryGroupIndex(org.apache.archiva.indexer.merger.TemporaryGroupIndex) Repository(org.apache.archiva.repository.Repository) IndexCreationFailedException(org.apache.archiva.indexer.IndexCreationFailedException) StorageAsset(org.apache.archiva.repository.storage.StorageAsset) IndexMergerException(org.apache.archiva.indexer.merger.IndexMergerException) ArchivaIndexingContext(org.apache.archiva.indexer.ArchivaIndexingContext) ArchivaIndexManager(org.apache.archiva.indexer.ArchivaIndexManager) StopWatch(org.apache.commons.lang3.time.StopWatch)

Example 20 with Repository

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

the class ArchivaRepositoryRegistryTest method removeRepository.

@Test
public void removeRepository() throws Exception {
    assertEquals(5, repositoryRegistry.getRepositories().size());
    Repository repo = repositoryRegistry.getRepository("snapshots");
    repositoryRegistry.removeRepository(repo);
    assertEquals(4, repositoryRegistry.getRepositories().size());
    assertTrue(repositoryRegistry.getRepositories().stream().noneMatch(rep -> rep.getId().equals("snapshots")));
    archivaConfiguration.reload();
    repositoryRegistry.reload();
    assertEquals(4, repositoryRegistry.getRepositories().size());
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) ArchivaConfiguration(org.apache.archiva.configuration.provider.ArchivaConfiguration) ManagedRepositoryConfiguration(org.apache.archiva.configuration.model.ManagedRepositoryConfiguration) URL(java.net.URL) URISyntaxException(java.net.URISyntaxException) StandardCopyOption(java.nio.file.StandardCopyOption) AfterAll(org.junit.jupiter.api.AfterAll) Inject(javax.inject.Inject) ReleaseScheme(org.apache.archiva.repository.ReleaseScheme) Repository(org.apache.archiva.repository.Repository) RemoteRepository(org.apache.archiva.repository.RemoteRepository) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) ManagedRepositoryHandler(org.apache.archiva.repository.base.managed.ManagedRepositoryHandler) BeforeAll(org.junit.jupiter.api.BeforeAll) Path(java.nio.file.Path) Configuration(org.apache.archiva.configuration.model.Configuration) RemoteRepositoryConfiguration(org.apache.archiva.configuration.model.RemoteRepositoryConfiguration) SpringExtension(org.springframework.test.context.junit.jupiter.SpringExtension) Files(java.nio.file.Files) RepositoryException(org.apache.archiva.repository.RepositoryException) RemoteRepositoryHandler(org.apache.archiva.repository.base.remote.RemoteRepositoryHandler) Collection(java.util.Collection) RepositoryRegistry(org.apache.archiva.repository.RepositoryRegistry) IOException(java.io.IOException) RepositoryType(org.apache.archiva.repository.RepositoryType) ManagedRepository(org.apache.archiva.repository.ManagedRepository) BasicRemoteRepository(org.apache.archiva.repository.base.remote.BasicRemoteRepository) Test(org.junit.jupiter.api.Test) AfterEach(org.junit.jupiter.api.AfterEach) List(java.util.List) Paths(java.nio.file.Paths) ContextConfiguration(org.springframework.test.context.ContextConfiguration) Assertions(org.junit.jupiter.api.Assertions) RepositoryGroupHandler(org.apache.archiva.repository.base.group.RepositoryGroupHandler) BasicManagedRepository(org.apache.archiva.repository.base.managed.BasicManagedRepository) 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)

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