Search in sources :

Example 16 with ManagedRepositoryConfiguration

use of org.apache.archiva.configuration.ManagedRepositoryConfiguration in project archiva by apache.

the class RepositoryRegistry method removeRepository.

/**
 * Removes a managed repository from the registry and configuration, if it exists.
 * The change is saved to the configuration immediately.
 *
 * @param managedRepository the managed repository to remove
 * @throws RepositoryException if a error occurs during configuration save
 */
public void removeRepository(ManagedRepository managedRepository) throws RepositoryException {
    final String id = managedRepository.getId();
    ManagedRepository repo = getManagedRepository(id);
    if (repo != null) {
        rwLock.writeLock().lock();
        try {
            repo = managedRepositories.remove(id);
            if (repo != null) {
                repo.close();
                Configuration configuration = getArchivaConfiguration().getConfiguration();
                ManagedRepositoryConfiguration cfg = configuration.findManagedRepositoryById(id);
                if (cfg != null) {
                    configuration.removeManagedRepository(cfg);
                }
                getArchivaConfiguration().save(configuration);
            }
        } catch (RegistryException | IndeterminateConfigurationException e) {
            // Rollback
            log.error("Could not save config after repository removal: {}", e.getMessage(), e);
            managedRepositories.put(repo.getId(), repo);
            throw new RepositoryException("Could not save configuration after repository removal: " + e.getMessage());
        } finally {
            rwLock.writeLock().unlock();
        }
    }
}
Also used : ArchivaConfiguration(org.apache.archiva.configuration.ArchivaConfiguration) ProxyConnectorConfiguration(org.apache.archiva.configuration.ProxyConnectorConfiguration) ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration) RemoteRepositoryConfiguration(org.apache.archiva.configuration.RemoteRepositoryConfiguration) Configuration(org.apache.archiva.configuration.Configuration) ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration) IndeterminateConfigurationException(org.apache.archiva.configuration.IndeterminateConfigurationException) RegistryException(org.apache.archiva.redback.components.registry.RegistryException)

Example 17 with ManagedRepositoryConfiguration

use of org.apache.archiva.configuration.ManagedRepositoryConfiguration in project archiva by apache.

the class RepositoryRegistry method getStagingRepository.

private ManagedRepository getStagingRepository(RepositoryProvider provider, ManagedRepositoryConfiguration baseRepoCfg, Configuration configuration) throws RepositoryException {
    ManagedRepository stageRepo = getManagedRepository(baseRepoCfg.getId() + StagingRepositoryFeature.STAGING_REPO_POSTFIX);
    if (stageRepo == null) {
        stageRepo = provider.createStagingInstance(baseRepoCfg);
        if (stageRepo.supportsFeature(StagingRepositoryFeature.class)) {
            stageRepo.getFeature(StagingRepositoryFeature.class).get().setStageRepoNeeded(false);
        }
        ManagedRepositoryConfiguration stageCfg = provider.getManagedConfiguration(stageRepo);
        updateRepositoryReferences(provider, stageRepo, stageCfg, configuration);
    }
    return stageRepo;
}
Also used : ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration)

Example 18 with ManagedRepositoryConfiguration

use of org.apache.archiva.configuration.ManagedRepositoryConfiguration in project archiva by apache.

the class RepositoryRegistry method clone.

/**
 * Creates a new repository instance with the same settings as this one. The cloned repository is not
 * registered or saved to the configuration.
 *
 * @param repo The origin repository
 * @return The cloned repository.
 */
public ManagedRepository clone(ManagedRepository repo, String newId) throws RepositoryException {
    if (managedRepositories.containsKey(newId) || remoteRepositories.containsKey(newId)) {
        throw new RepositoryException("The given id exists already " + newId);
    }
    RepositoryProvider provider = getProvider(repo.getType());
    ManagedRepositoryConfiguration cfg = provider.getManagedConfiguration(repo);
    cfg.setId(newId);
    ManagedRepository cloned = provider.createManagedInstance(cfg);
    cloned.addListener(this);
    return cloned;
}
Also used : ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration)

Example 19 with ManagedRepositoryConfiguration

use of org.apache.archiva.configuration.ManagedRepositoryConfiguration in project archiva by apache.

the class MockManagedRepositoryAdmin method getManagedRepositories.

@Override
public List<ManagedRepository> getManagedRepositories() throws RepositoryAdminException {
    List<ManagedRepositoryConfiguration> managedRepoConfigs = getArchivaConfiguration().getConfiguration().getManagedRepositories();
    List<ManagedRepository> managedRepos = new ArrayList<>(managedRepoConfigs.size());
    for (ManagedRepositoryConfiguration repoConfig : managedRepoConfigs) {
        // TODO add staging repo information back too
        ManagedRepository repo = new ManagedRepository(Locale.getDefault(), repoConfig.getId(), repoConfig.getName(), repoConfig.getLocation(), repoConfig.getLayout(), repoConfig.isSnapshots(), repoConfig.isReleases(), repoConfig.isBlockRedeployments(), repoConfig.getRefreshCronExpression(), repoConfig.getIndexDir(), repoConfig.isScanned(), repoConfig.getRetentionPeriod(), repoConfig.getRetentionCount(), repoConfig.isDeleteReleasedSnapshots(), true);
        managedRepos.add(repo);
    }
    return managedRepos;
}
Also used : ManagedRepository(org.apache.archiva.admin.model.beans.ManagedRepository) ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration) ArrayList(java.util.ArrayList)

Example 20 with ManagedRepositoryConfiguration

use of org.apache.archiva.configuration.ManagedRepositoryConfiguration in project archiva by apache.

the class RepositoryRegistryTest method putManagedRepositoryFromConfigWithoutSave.

@Test
public void putManagedRepositoryFromConfigWithoutSave() throws Exception {
    Configuration configuration = archivaConfiguration.getConfiguration();
    ManagedRepositoryConfiguration cfg = new ManagedRepositoryConfiguration();
    cfg.setId("test002");
    cfg.setName("This is test 002");
    ManagedRepository repo = repositoryRegistry.putRepository(cfg, configuration);
    assertNotNull(repo);
    assertEquals("test002", repo.getId());
    assertEquals("This is test 002", repo.getName());
    assertNotNull(repo.getContent());
    archivaConfiguration.reload();
    assertEquals(3, archivaConfiguration.getConfiguration().getManagedRepositories().size());
    Collection<ManagedRepository> repos = repositoryRegistry.getManagedRepositories();
    assertEquals(5, repos.size());
    ManagedRepository internalRepo = repositoryRegistry.getManagedRepository("internal");
    cfg = new ManagedRepositoryConfiguration();
    cfg.setId("internal");
    cfg.setName("This is internal test 002");
    repo = repositoryRegistry.putRepository(cfg, configuration);
    assertTrue(internalRepo == repo);
    assertEquals("This is internal test 002", repo.getName());
    assertEquals(5, repositoryRegistry.getManagedRepositories().size());
    repositoryRegistry.reload();
    assertEquals(4, repositoryRegistry.getManagedRepositories().size());
}
Also used : ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration) ArchivaConfiguration(org.apache.archiva.configuration.ArchivaConfiguration) RemoteRepositoryConfiguration(org.apache.archiva.configuration.RemoteRepositoryConfiguration) ContextConfiguration(org.springframework.test.context.ContextConfiguration) Configuration(org.apache.archiva.configuration.Configuration) ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration) Test(org.junit.Test)

Aggregations

ManagedRepositoryConfiguration (org.apache.archiva.configuration.ManagedRepositoryConfiguration)46 Configuration (org.apache.archiva.configuration.Configuration)17 ArchivaConfiguration (org.apache.archiva.configuration.ArchivaConfiguration)14 Path (java.nio.file.Path)9 ProxyConnectorConfiguration (org.apache.archiva.configuration.ProxyConnectorConfiguration)9 Before (org.junit.Before)9 ContextConfiguration (org.springframework.test.context.ContextConfiguration)9 Test (org.junit.Test)8 IndeterminateConfigurationException (org.apache.archiva.configuration.IndeterminateConfigurationException)7 RemoteRepositoryConfiguration (org.apache.archiva.configuration.RemoteRepositoryConfiguration)7 RegistryException (org.apache.archiva.redback.components.registry.RegistryException)7 StagingRepositoryFeature (org.apache.archiva.repository.features.StagingRepositoryFeature)7 ArrayList (java.util.ArrayList)6 RepositoryGroupConfiguration (org.apache.archiva.configuration.RepositoryGroupConfiguration)5 IndexUpdateFailedException (org.apache.archiva.indexer.IndexUpdateFailedException)5 ArtifactCleanupFeature (org.apache.archiva.repository.features.ArtifactCleanupFeature)5 IndexCreationFeature (org.apache.archiva.repository.features.IndexCreationFeature)5 IOException (java.io.IOException)4 MetadataRepositoryException (org.apache.archiva.metadata.repository.MetadataRepositoryException)4 RepositoryException (org.apache.archiva.repository.RepositoryException)4