/** * Method removeRepository. * * @param string */ public void removeRepository( String string ) { getRepositories().remove( string ); }
/** * Method addRepository. * * @param string */ public void addRepository( String string ) { getRepositories().add( string ); }
/** * Method removeRepository. * * @param string */ public void removeRepository( String string ) { getRepositories().remove( string ); }
/** * Method addRepository. * * @param string */ public void addRepository( String string ) { getRepositories().add( string ); }
@Override public Map<String, List<String>> getRepositoryToGroupMap() throws RepositoryAdminException { Map<String, List<String>> map = new HashMap<>(); for ( RepositoryGroup group : getRepositoriesGroups() ) { for ( String repositoryId : group.getRepositories() ) { List<String> groups = map.get( repositoryId ); if ( groups == null ) { groups = new ArrayList<>(); map.put( repositoryId, groups ); } groups.add( group.getId() ); } } return map; }
@Override public Map<String, List<String>> getGroupToRepositoryMap() throws RepositoryAdminException { Map<String, List<String>> map = new HashMap<>(); for ( ManagedRepository repo : getManagedRepositoryAdmin().getManagedRepositories() ) { for ( RepositoryGroup group : getRepositoriesGroups() ) { if ( !group.getRepositories().contains( repo.getId() ) ) { String groupId = group.getId(); List<String> repos = map.get( groupId ); if ( repos == null ) { repos = new ArrayList<>(); map.put( groupId, repos ); } repos.add( repo.getId() ); } } } return map; }
@Override public List<RepositoryGroup> getRepositoriesGroups() throws ArchivaRestServiceException { try { List<RepositoryGroup> repositoriesGroups = new ArrayList<>( repositoryGroupAdmin.getRepositoriesGroups().size() ); for ( org.apache.archiva.admin.model.beans.RepositoryGroup repoGroup : repositoryGroupAdmin.getRepositoriesGroups() ) { repositoriesGroups.add( new RepositoryGroup( repoGroup.getId(), new ArrayList<>( repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl( repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ) ); } return repositoriesGroups; } catch ( RepositoryAdminException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } }
@Override public List<RepositoryGroup> getRepositoriesGroups() throws ArchivaRestServiceException { try { List<RepositoryGroup> repositoriesGroups = new ArrayList<>( repositoryGroupAdmin.getRepositoriesGroups().size() ); for ( org.apache.archiva.admin.model.beans.RepositoryGroup repoGroup : repositoryGroupAdmin.getRepositoriesGroups() ) { repositoriesGroups.add( new RepositoryGroup( repoGroup.getId(), new ArrayList<>( repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl( repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ) ); } return repositoriesGroups; } catch ( RepositoryAdminException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } }
@Override public Boolean addRepositoryToGroup( String repositoryGroupId, String repositoryId, AuditInformation auditInformation ) throws RepositoryAdminException { RepositoryGroup repositoryGroup = getRepositoryGroup( repositoryGroupId ); if ( repositoryGroup == null ) { throw new RepositoryAdminException( "repositoryGroup with id " + repositoryGroupId + " doesn't not exists so cannot add repository to it" ); } if ( repositoryGroup.getRepositories().contains( repositoryId ) ) { throw new RepositoryAdminException( "repositoryGroup with id " + repositoryGroupId + " already contain repository with id" + repositoryId ); } validateManagedRepositoriesExists( Arrays.asList( repositoryId ) ); repositoryGroup.addRepository( repositoryId ); updateRepositoryGroup( repositoryGroup, auditInformation, false ); triggerAuditEvent( repositoryGroup.getId(), null, AuditEvent.ADD_REPO_TO_GROUP, auditInformation ); return Boolean.TRUE; }
@Override public Boolean deleteRepositoryFromGroup( String repositoryGroupId, String repositoryId, AuditInformation auditInformation ) throws RepositoryAdminException { RepositoryGroup repositoryGroup = getRepositoryGroup( repositoryGroupId ); if ( repositoryGroup == null ) { throw new RepositoryAdminException( "repositoryGroup with id " + repositoryGroupId + " doesn't not exists so cannot remove repository from it" ); } if ( !repositoryGroup.getRepositories().contains( repositoryId ) ) { throw new RepositoryAdminException( "repositoryGroup with id " + repositoryGroupId + " doesn't not contains repository with id" + repositoryId ); } repositoryGroup.removeRepository( repositoryId ); updateRepositoryGroup( repositoryGroup, auditInformation, false ); triggerAuditEvent( repositoryGroup.getId(), null, AuditEvent.DELETE_REPO_FROM_GROUP, auditInformation ); return Boolean.TRUE; }
@Override public Boolean updateRepositoryGroup( RepositoryGroup repoGroup ) throws ArchivaRestServiceException { try { return repositoryGroupAdmin.updateRepositoryGroup( new org.apache.archiva.admin.model.beans.RepositoryGroup( repoGroup.getId(), new ArrayList<>( repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl( repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ), getAuditInformation() ); } catch ( RepositoryAdminException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } }
@Override public Boolean addRepositoryGroup( RepositoryGroup repoGroup ) throws ArchivaRestServiceException { try { return repositoryGroupAdmin.addRepositoryGroup( new org.apache.archiva.admin.model.beans.RepositoryGroup( repoGroup.getId(), new ArrayList<>( repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl( repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ), getAuditInformation() ); } catch ( RepositoryAdminException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } }
@Override public Boolean updateRepositoryGroup( RepositoryGroup repoGroup ) throws ArchivaRestServiceException { try { return repositoryGroupAdmin.updateRepositoryGroup( new org.apache.archiva.admin.model.beans.RepositoryGroup( repoGroup.getId(), new ArrayList<>( repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl( repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ), getAuditInformation() ); } catch ( RepositoryAdminException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } }
@Override public Boolean addRepositoryGroup( RepositoryGroup repoGroup ) throws ArchivaRestServiceException { try { return repositoryGroupAdmin.addRepositoryGroup( new org.apache.archiva.admin.model.beans.RepositoryGroup( repoGroup.getId(), new ArrayList<>( repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl( repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ), getAuditInformation() ); } catch ( RepositoryAdminException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } }
@Override public void schedule( RepositoryGroup repositoryGroup, Path directory ) { if ( StringUtils.isEmpty( repositoryGroup.getCronExpression() ) ) { return; } CronTrigger cronTrigger = new CronTrigger( repositoryGroup.getCronExpression() ); List<String> repositories = repositoryGroup.getRepositories(); IndexMergerRequest indexMergerRequest = new IndexMergerRequest( repositories, true, repositoryGroup.getId(), repositoryGroup.getMergedIndexPath(), repositoryGroup.getMergedIndexTtl() ).mergedIndexDirectory( directory ); MergedRemoteIndexesTaskRequest taskRequest = new MergedRemoteIndexesTaskRequest( indexMergerRequest, indexMerger ); logger.info( "schedule merge remote index for group {} with cron {}", repositoryGroup.getId(), repositoryGroup.getCronExpression() ); ScheduledFuture scheduledFuture = taskScheduler.schedule( new MergedRemoteIndexesTask( taskRequest ), cronTrigger ); scheduledFutureMap.put( repositoryGroup.getId(), scheduledFuture ); }
@Override public void schedule( RepositoryGroup repositoryGroup, File directory ) { if ( StringUtils.isEmpty( repositoryGroup.getCronExpression() ) ) { return; } CronTrigger cronTrigger = new CronTrigger( repositoryGroup.getCronExpression() ); List<String> repositories = repositoryGroup.getRepositories(); IndexMergerRequest indexMergerRequest = new IndexMergerRequest( repositories, true, repositoryGroup.getId(), repositoryGroup.getMergedIndexPath(), repositoryGroup.getMergedIndexTtl() ).mergedIndexDirectory( directory ); MergedRemoteIndexesTaskRequest taskRequest = new MergedRemoteIndexesTaskRequest( indexMergerRequest, indexMerger ); logger.info( "schedule merge remote index for group {} with cron {}", repositoryGroup.getId(), repositoryGroup.getCronExpression() ); ScheduledFuture scheduledFuture = taskScheduler.schedule( new MergedRemoteIndexesTask( taskRequest ), cronTrigger ); scheduledFutureMap.put( repositoryGroup.getId(), scheduledFuture ); }
private Boolean updateRepositoryGroup( RepositoryGroup repositoryGroup, AuditInformation auditInformation, boolean triggerAuditEvent ) throws RepositoryAdminException { validateRepositoryGroup( repositoryGroup, true ); validateManagedRepositoriesExists( repositoryGroup.getRepositories() ); Configuration configuration = getArchivaConfiguration().getConfiguration(); RepositoryGroupConfiguration repositoryGroupConfiguration = configuration.getRepositoryGroupsAsMap().get( repositoryGroup.getId() ); configuration.removeRepositoryGroup( repositoryGroupConfiguration ); repositoryGroupConfiguration.setRepositories( repositoryGroup.getRepositories() ); repositoryGroupConfiguration.setMergedIndexPath( repositoryGroup.getMergedIndexPath() ); repositoryGroupConfiguration.setMergedIndexTtl( repositoryGroup.getMergedIndexTtl() ); repositoryGroupConfiguration.setCronExpression( repositoryGroup.getCronExpression() ); configuration.addRepositoryGroup( repositoryGroupConfiguration ); saveConfiguration( configuration ); if ( triggerAuditEvent ) { triggerAuditEvent( repositoryGroup.getId(), null, AuditEvent.MODIFY_REPO_GROUP, auditInformation ); } mergedRemoteIndexesScheduler.unschedule( repositoryGroup ); mergedRemoteIndexesScheduler.schedule( repositoryGroup, getMergedIndexDirectory( repositoryGroup.getId() ) ); return Boolean.TRUE; }
@Override public Boolean addRepositoryGroup( RepositoryGroup repositoryGroup, AuditInformation auditInformation ) throws RepositoryAdminException { validateRepositoryGroup( repositoryGroup, false ); validateManagedRepositoriesExists( repositoryGroup.getRepositories() ); RepositoryGroupConfiguration repositoryGroupConfiguration = new RepositoryGroupConfiguration(); repositoryGroupConfiguration.setId( repositoryGroup.getId() ); repositoryGroupConfiguration.setRepositories( repositoryGroup.getRepositories() ); repositoryGroupConfiguration.setMergedIndexPath( repositoryGroup.getMergedIndexPath() ); repositoryGroupConfiguration.setMergedIndexTtl( repositoryGroup.getMergedIndexTtl() ); repositoryGroupConfiguration.setCronExpression( repositoryGroup.getCronExpression() ); Configuration configuration = getArchivaConfiguration().getConfiguration(); configuration.addRepositoryGroup( repositoryGroupConfiguration ); saveConfiguration( configuration ); triggerAuditEvent( repositoryGroup.getId(), null, AuditEvent.ADD_REPO_GROUP, auditInformation ); mergedRemoteIndexesScheduler.schedule( repositoryGroup, getMergedIndexDirectory( repositoryGroup.getId() ) ); return Boolean.TRUE; }