/** * 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; }
/** * 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 RemoteRepository clone( RemoteRepository 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()); RemoteRepositoryConfiguration cfg = provider.getRemoteConfiguration(repo); cfg.setId(newId); RemoteRepository cloned = provider.createRemoteInstance(cfg); cloned.addListener(this); return cloned; }
private Map<RepositoryType, RepositoryProvider> createProviderMap( ) { Map<RepositoryType, RepositoryProvider> map = new HashMap<>( ); if ( repositoryProviders != null ) { for ( RepositoryProvider provider : repositoryProviders ) { for ( RepositoryType type : provider.provides( ) ) { map.put( type, provider ); } } } return map; }
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; }
Configuration configuration = getArchivaConfiguration().getConfiguration(); ManagedRepository repo = managedRepositories.get(id); ManagedRepositoryConfiguration oldCfg = repo!=null ? getProvider( repositoryType ).getManagedConfiguration( repo ) : null; repo = putRepository( managedRepositoryConfiguration, configuration ); try getProvider( repositoryType ).updateManagedInstance( (EditableManagedRepository)repo, oldCfg );
if (repo instanceof EditableManagedRepository) getProvider( repoType ).updateManagedInstance( (EditableManagedRepository) repo, managedRepositoryConfiguration ); } else { throw new RepositoryException( "The repository is not editable "+id ); repo = getProvider( repoType ).createManagedInstance( managedRepositoryConfiguration ); repo.addListener(this); managedRepositories.put(id, repo);
Configuration configuration = getArchivaConfiguration().getConfiguration(); RemoteRepository repo = remoteRepositories.get(id); RemoteRepositoryConfiguration oldCfg = repo!=null ? getProvider( repositoryType ).getRemoteConfiguration( repo ) : null; repo = putRepository( remoteRepositoryConfiguration, configuration ); try getProvider( repositoryType ).updateRemoteInstance( (EditableRemoteRepository)repo, oldCfg );
if (repo instanceof EditableRemoteRepository) getProvider( repoType ).updateRemoteInstance( (EditableRemoteRepository) repo, remoteRepositoryConfiguration ); } else { throw new RepositoryException( "The repository is not editable "+id ); repo = getProvider( repoType ).createRemoteInstance( remoteRepositoryConfiguration ); repo.addListener(this); remoteRepositories.put(id, repo);
ManagedRepositoryConfiguration newCfg = provider.getManagedConfiguration( managedRepository ); Configuration configuration = getArchivaConfiguration( ).getConfiguration( ); updateRepositoryReferences( provider, managedRepository, newCfg, configuration );
private RemoteRepository createNewRemoteRepository( RepositoryProvider provider, RemoteRepositoryConfiguration cfg ) throws RepositoryException { log.debug("Creating remote repo {}", cfg.getId()); RemoteRepository repo = provider.createRemoteInstance( cfg ); repo.addListener(this); updateRepositoryReferences( provider, repo, cfg , null); return repo; }
private ManagedRepository createNewManagedRepository( RepositoryProvider provider, ManagedRepositoryConfiguration cfg ) throws RepositoryException { log.debug("Creating repo {}", cfg.getId()); ManagedRepository repo = provider.createManagedInstance( cfg ); repo.addListener(this); updateRepositoryReferences( provider, repo, cfg , null); return repo; }
newCfg = provider.getRemoteConfiguration( remoteRepository ); updateRepositoryReferences( provider, remoteRepository, newCfg, configuration ); oldCfg = configuration.findRemoteRepositoryById( id );
@SuppressWarnings( "unchecked" ) private void updateRepositoryReferences(RepositoryProvider provider, ManagedRepository repo, ManagedRepositoryConfiguration cfg, Configuration configuration) throws RepositoryException { log.debug("Updating references of repo {}",repo.getId()); if ( repo.supportsFeature( StagingRepositoryFeature.class ) ) { StagingRepositoryFeature feature = repo.getFeature( StagingRepositoryFeature.class ).get( ); if ( feature.isStageRepoNeeded( ) && feature.getStagingRepository() == null) { ManagedRepository stageRepo = getStagingRepository( provider, cfg, configuration); managedRepositories.put(stageRepo.getId(), stageRepo); feature.setStagingRepository( stageRepo ); if (configuration!=null) { replaceOrAddRepositoryConfig( provider.getManagedConfiguration( stageRepo ), configuration ); } } } if ( repo instanceof EditableManagedRepository) { EditableManagedRepository editableRepo = (EditableManagedRepository) repo; if (repo.getContent()==null) { editableRepo.setContent(repositoryContentFactory.getManagedRepositoryContent(repo)); } log.debug("Index repo: "+repo.hasIndex()); if (repo.hasIndex() && repo.getIndexingContext()==null) { log.debug("Creating indexing context for {}", repo.getId()); createIndexingContext(editableRepo); } } }
private RepositoryProvider getProvider( RepositoryType type ) throws RepositoryException { return repositoryProviders.stream( ).filter( repositoryProvider -> repositoryProvider.provides( ).contains( type ) ).findFirst( ).orElseThrow( ( ) -> new RepositoryException( "Repository type cannot be handled: " + type ) ); }