use of org.apache.archiva.configuration.IndeterminateConfigurationException in project archiva by apache.
the class DefaultRedbackRuntimeConfigurationAdmin method updateRedbackRuntimeConfiguration.
@Override
public void updateRedbackRuntimeConfiguration(RedbackRuntimeConfiguration redbackRuntimeConfiguration) throws RepositoryAdminException {
org.apache.archiva.configuration.RedbackRuntimeConfiguration runtimeConfiguration = build(redbackRuntimeConfiguration);
Configuration configuration = archivaConfiguration.getConfiguration();
configuration.setRedbackRuntimeConfiguration(runtimeConfiguration);
try {
archivaConfiguration.save(configuration);
} catch (RegistryException e) {
throw new RepositoryAdminException(e.getMessage(), e);
} catch (IndeterminateConfigurationException e) {
throw new RepositoryAdminException(e.getMessage(), e);
}
}
use of org.apache.archiva.configuration.IndeterminateConfigurationException in project archiva by apache.
the class RepositoryRegistry method putRepository.
/**
* Adds a new repository or updates the repository with the same id, if it exists already.
* The configuration is saved immediately.
*
* @param managedRepositoryConfiguration the repository configuration
* @return the updated or created repository
* @throws RepositoryException if an error occurs, or the configuration is not valid.
*/
public ManagedRepository putRepository(ManagedRepositoryConfiguration managedRepositoryConfiguration) throws RepositoryException {
rwLock.writeLock().lock();
try {
final String id = managedRepositoryConfiguration.getId();
final RepositoryType repositoryType = RepositoryType.valueOf(managedRepositoryConfiguration.getType());
Configuration configuration = getArchivaConfiguration().getConfiguration();
ManagedRepository repo = managedRepositories.get(id);
ManagedRepositoryConfiguration oldCfg = repo != null ? getProvider(repositoryType).getManagedConfiguration(repo) : null;
repo = putRepository(managedRepositoryConfiguration, configuration);
try {
getArchivaConfiguration().save(configuration);
} catch (IndeterminateConfigurationException | RegistryException e) {
if (oldCfg != null) {
getProvider(repositoryType).updateManagedInstance((EditableManagedRepository) repo, oldCfg);
}
log.error("Could not save the configuration for repository {}: {}", id, e.getMessage(), e);
throw new RepositoryException("Could not save the configuration for repository " + id + ": " + e.getMessage());
}
return repo;
} finally {
rwLock.writeLock().unlock();
}
}
use of org.apache.archiva.configuration.IndeterminateConfigurationException in project archiva by apache.
the class RepositoryRegistry method putRepository.
/**
* Adds a new repository or updates the repository with the same id, if it exists already.
* The configuration is saved immediately.
*
* @param remoteRepositoryConfiguration the repository configuration
* @return the updated or created repository
* @throws RepositoryException if an error occurs, or the configuration is not valid.
*/
public RemoteRepository putRepository(RemoteRepositoryConfiguration remoteRepositoryConfiguration) throws RepositoryException {
rwLock.writeLock().lock();
try {
final String id = remoteRepositoryConfiguration.getId();
final RepositoryType repositoryType = RepositoryType.valueOf(remoteRepositoryConfiguration.getType());
Configuration configuration = getArchivaConfiguration().getConfiguration();
RemoteRepository repo = remoteRepositories.get(id);
RemoteRepositoryConfiguration oldCfg = repo != null ? getProvider(repositoryType).getRemoteConfiguration(repo) : null;
repo = putRepository(remoteRepositoryConfiguration, configuration);
try {
getArchivaConfiguration().save(configuration);
} catch (IndeterminateConfigurationException | RegistryException e) {
if (oldCfg != null) {
getProvider(repositoryType).updateRemoteInstance((EditableRemoteRepository) repo, oldCfg);
}
log.error("Could not save the configuration for repository {}: {}", id, e.getMessage(), e);
throw new RepositoryException("Could not save the configuration for repository " + id + ": " + e.getMessage());
}
return repo;
} finally {
rwLock.writeLock().unlock();
}
}
use of org.apache.archiva.configuration.IndeterminateConfigurationException in project archiva by apache.
the class RepositoryRegistry method removeRepository.
/**
* Removes the remote repository from the registry and configuration.
* The change is saved to the configuration immediately.
*
* @param remoteRepository the remote repository to remove
* @throws RepositoryException if a error occurs during configuration save
*/
public void removeRepository(RemoteRepository remoteRepository) throws RepositoryException {
final String id = remoteRepository.getId();
RemoteRepository repo = getRemoteRepository(id);
if (repo != null) {
rwLock.writeLock().lock();
try {
repo = remoteRepositories.remove(id);
if (repo != null) {
Configuration configuration = getArchivaConfiguration().getConfiguration();
doRemoveRepo(repo, configuration);
getArchivaConfiguration().save(configuration);
}
} catch (RegistryException | IndeterminateConfigurationException e) {
// Rollback
log.error("Could not save config after repository removal: {}", e.getMessage(), e);
remoteRepositories.put(repo.getId(), repo);
throw new RepositoryException("Could not save configuration after repository removal: " + e.getMessage());
} finally {
rwLock.writeLock().unlock();
}
}
}
use of org.apache.archiva.configuration.IndeterminateConfigurationException 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();
}
}
}
Aggregations