@Override public void removeRepository(final String alias) { final ConfigGroup thisRepositoryConfig = findRepositoryConfig(alias); try { configurationService.startBatch(); if (thisRepositoryConfig != null) { configurationService.removeConfiguration(thisRepositoryConfig); } final Repository repo = configuredRepositories.remove(alias); if (repo != null) { repositoryRemovedEvent.fire(new RepositoryRemovedEvent(repo)); ioService.delete(convert(repo.getRoot()).getFileSystem().getPath(null)); } // Remove reference to Repository from Organizational Units final Collection<OrganizationalUnit> organizationalUnits = organizationalUnitService.getOrganizationalUnits(); for (OrganizationalUnit ou : organizationalUnits) { for (Repository repository : ou.getRepositories()) { if (repository.getAlias().equals(alias)) { organizationalUnitService.removeRepository(ou, repository); } } } } catch (final Exception e) { logger.error("Error during remove repository", e); throw new RuntimeException(e); } finally { configurationService.endBatch(); } }
@SuppressWarnings({"unchecked", "rawtypes"}) @Override public void removeGroup(Repository repository, String group) { final ConfigGroup thisRepositoryConfig = findRepositoryConfig(repository.getAlias()); if (thisRepositoryConfig != null) { final ConfigItem<List> groups = backward.compat(thisRepositoryConfig).getConfigItem("security:groups"); groups.getValue().remove(group); configurationService.updateConfiguration(thisRepositoryConfig); configuredRepositories.update(repositoryFactory.newRepository(thisRepositoryConfig)); } else { throw new IllegalArgumentException("Repository " + repository.getAlias() + " not found"); } }
@Override public Repository updateRepositoryConfiguration( final Repository repository, final RepositoryEnvironmentConfigurations repositoryEnvironmentConfigurations) { final ConfigGroup thisRepositoryConfig = findRepositoryConfig(repository.getAlias()); if (thisRepositoryConfig != null && repositoryEnvironmentConfigurations != null) { try { configurationService.startBatch(); for (final Map.Entry<String, Object> entry : repositoryEnvironmentConfigurations.getConfigurationMap().entrySet()) { ConfigItem configItem = thisRepositoryConfig.getConfigItem(entry.getKey()); if (configItem == null) { thisRepositoryConfig.addConfigItem( configurationFactory.newConfigItem(entry.getKey(), entry.getValue())); } else { configItem.setValue(entry.getValue()); } } configurationService.updateConfiguration(thisRepositoryConfig); final Repository updatedRepo = repositoryFactory.newRepository(thisRepositoryConfig); configuredRepositories.update(updatedRepo); return updatedRepo; } catch (final Exception e) { logger.error("Error during remove repository", e); throw new RuntimeException(e); } finally { configurationService.endBatch(); } } else { throw new IllegalArgumentException("Repository " + repository.getAlias() + " not found"); } }
@Override public Repository createRepository( final String scheme, final String alias, final RepositoryEnvironmentConfigurations repositoryEnvironmentConfigurations) { if (configuredRepositories.containsAlias(alias)) { throw new RepositoryAlreadyExistsException(alias); } Repository repo = null; try { configurationService.startBatch(); final ConfigGroup repositoryConfig = configurationFactory.newConfigGroup(REPOSITORY, alias, ""); repositoryConfig.addConfigItem( configurationFactory.newConfigItem("security:groups", new ArrayList<String>())); if (!repositoryEnvironmentConfigurations.containsConfiguration(SCHEME)) { repositoryConfig.addConfigItem(configurationFactory.newConfigItem(SCHEME, scheme)); } for (final RepositoryEnvironmentConfiguration configuration : repositoryEnvironmentConfigurations.getConfigurationList()) { repositoryConfig.addConfigItem(getRepositoryConfigItem(configuration)); } repo = createRepository(repositoryConfig); return repo; } catch (final Exception e) { logger.error("Error during create repository", e); throw new RuntimeException(e); } finally { configurationService.endBatch(); if (repo != null) { event.fire(new NewRepositoryEvent(repo)); } } }
private Repository createRepository(final ConfigGroup repositoryConfig) { final Repository repository = repositoryFactory.newRepository(repositoryConfig); configurationService.addConfiguration(repositoryConfig); configuredRepositories.add(repository); return repository; }
@Override public Collection<Repository> getRepositories() { return configuredRepositories.getAllConfiguredRepositories(); }
@Override public Repository getRepository(final Path root) { return configuredRepositories.getRepositoryByRootPath(root); }
@Override public Repository getRepository(final String alias) { return configuredRepositories.getRepositoryByRepositoryAlias(alias); }