@Override public void beginScan( ManagedRepository repo, Date whenGathered ) throws ConsumerException { repoId = repo.getId(); this.whenGathered = whenGathered; }
@Override public String getId() { return repository.getId(); }
private List<String> getAccessibleRepositoryIds( String principal, String operation ) throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException { List<ManagedRepository> managedRepositories = getAccessibleRepositories( principal, operation ); List<String> repoIds = new ArrayList<>( managedRepositories.size() ); for ( ManagedRepository managedRepository : managedRepositories ) { repoIds.add( managedRepository.getId() ); } return repoIds; }
@Override public Map<String, ManagedRepository> getManagedRepositoriesAsMap() throws RepositoryAdminException { List<ManagedRepository> managedRepositories = getManagedRepositories(); Map<String, ManagedRepository> repositoriesMap = new HashMap<>( managedRepositories.size() ); for ( ManagedRepository managedRepository : managedRepositories ) { repositoriesMap.put( managedRepository.getId(), managedRepository ); } return repositoriesMap; }
private List<String> getAccessibleRepositoryIds( String principal, String operation ) throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException { List<ManagedRepository> managedRepositories = getAccessibleRepositories( principal, operation ); List<String> repoIds = new ArrayList<>( managedRepositories.size() ); for ( ManagedRepository managedRepository : managedRepositories ) { repoIds.add( managedRepository.getId() ); } return repoIds; }
@Override public ManagedRepository getManagedRepository( String repositoryId ) throws ArchivaRestServiceException { List<ManagedRepository> repos = getManagedRepositories(); for ( ManagedRepository repo : repos ) { if ( StringUtils.equals( repo.getId(), repositoryId ) ) { return repo; } } return null; }
@Override public ManagedRepository getManagedRepository( String repositoryId ) throws ArchivaRestServiceException { List<ManagedRepository> repos = getManagedRepositories(); for ( ManagedRepository repo : repos ) { if ( StringUtils.equals( repo.getId(), repositoryId ) ) { return repo; } } return null; }
@Override public ManagedRepository getManagedRepository( String repositoryId ) throws RepositoryAdminException { List<ManagedRepository> repos = getManagedRepositories(); for ( ManagedRepository repo : repos ) { if ( StringUtils.equals( repo.getId(), repositoryId ) ) { return repo; } } return null; }
@Override public void directoryWalkStarting( File basedir ) { log.info( "Walk Started: [{}] {}", this.repository.getId(), this.repository.getLocation() ); stats.triggerStart(); }
@Override public void execute( Object input ) { if ( input instanceof RepositoryContentConsumer ) { RepositoryContentConsumer consumer = (RepositoryContentConsumer) input; consumer.completeScan( executeOnEntireRepo ); log.debug( "Consumer [{}] completed for repository [{}]", consumer.getId(), repository.getId() ); } } }
/** * <p> * This find support files for the artifactFile and deletes them. * </p> * <p> * Support Files are things like ".sha1", ".md5", ".asc", etc. * </p> * * @param artifactFile the file to base off of. */ private void purgeSupportFiles( File artifactFile ) { File parentDir = artifactFile.getParentFile(); if ( !parentDir.exists() ) { return; } FilenameFilter filter = new ArtifactFilenameFilter( artifactFile.getName() ); File[] files = parentDir.listFiles( filter ); for ( File file : files ) { if ( file.exists() && file.isFile() ) { String fileName = file.getName(); file.delete(); // TODO: log that it was deleted triggerAuditEvent( repository.getRepository().getId(), fileName, AuditEvent.PURGE_FILE ); } } }
@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 Boolean alreadyScanning( String repositoryId ) { // check queue first to make sure it doesn't get dequeued between calls if ( repositoryTaskScheduler.isProcessingRepositoryTask( repositoryId ) ) { return true; } for ( RepositoryScannerInstance scan : repoScanner.getInProgressScans() ) { if ( scan.getRepository().getId().equals( repositoryId ) ) { return true; } } return false; }
@PreDestroy public void shutdown() throws RepositoryAdminException { try { // close index on shutdown for ( ManagedRepository managedRepository : getManagedRepositories() ) { IndexingContext context = indexer.getIndexingContexts().get( managedRepository.getId() ); if ( context != null ) { indexer.removeIndexingContext( context, false ); } } } catch ( IOException e ) { throw new RepositoryAdminException( e.getMessage(), e ); } }
@Override public void beginScan( ManagedRepository repoConfig, Date whenGathered ) throws ConsumerException { try { this.repository = repositoryFactory.getManagedRepositoryContent( repoConfig.getId() ); this.repositoryDir = new File( repository.getRepoRoot() ); this.scanStartTimestamp = System.currentTimeMillis(); } catch ( RepositoryNotFoundException e ) { throw new ConsumerException( e.getMessage(), e ); } catch ( RepositoryException e ) { throw new ConsumerException( e.getMessage(), e ); } }
@Override public void directoryWalkFinished() { TriggerScanCompletedClosure scanCompletedClosure = new TriggerScanCompletedClosure( repository, true ); CollectionUtils.forAllDo( knownConsumers, scanCompletedClosure ); CollectionUtils.forAllDo( invalidConsumers, scanCompletedClosure ); stats.setConsumerTimings( consumerTimings ); stats.setConsumerCounts( consumerCounts ); log.info( "Walk Finished: [{}] {}", this.repository.getId(), this.repository.getLocation() ); stats.triggerFinished(); }
@PostConstruct public void initialize() throws RepositoryAdminException, RoleManagerException { try { indexCreators = mavenIndexerUtils.getAllIndexCreators(); indexer = plexusSisuBridge.lookup( NexusIndexer.class ); } catch ( PlexusSisuBridgeException e ) { throw new RepositoryAdminException( e.getMessage(), e ); } // initialize index context on start and check roles here for ( ManagedRepository managedRepository : getManagedRepositories() ) { createIndexContext( managedRepository ); addRepositoryRoles( managedRepository.getId() ); } }
@Override public ManagedRepository addManagedRepository( ManagedRepository managedRepository ) throws ArchivaRestServiceException { try { boolean res = managedRepositoryAdmin.addManagedRepository( managedRepository, managedRepository.isStageRepoNeeded(), getAuditInformation() ); if ( res ) { return getManagedRepository( managedRepository.getId() ); } throw new ArchivaRestServiceException( "fail to created managed Repository", null ); } catch ( RepositoryAdminException e ) { throw new ArchivaRestServiceException( e.getMessage(), e.getFieldName(), e ); } }
@Override public ManagedRepository addManagedRepository( ManagedRepository managedRepository ) throws ArchivaRestServiceException { try { boolean res = managedRepositoryAdmin.addManagedRepository( managedRepository, managedRepository.isStageRepoNeeded(), getAuditInformation() ); if ( res ) { return getManagedRepository( managedRepository.getId() ); } throw new ArchivaRestServiceException( "fail to created managed Repository", null ); } catch ( RepositoryAdminException e ) { throw new ArchivaRestServiceException( e.getMessage(), e.getFieldName(), e ); } }
@Override public Boolean addManagedRepository( ManagedRepository managedRepository, boolean needStageRepo, AuditInformation auditInformation ) throws RepositoryAdminException { getRepositoryCommonValidator().basicValidation( managedRepository, false ); getRepositoryCommonValidator().validateManagedRepository( managedRepository ); triggerAuditEvent( managedRepository.getId(), null, AuditEvent.ADD_MANAGED_REPO, auditInformation ); Boolean res = addManagedRepository( managedRepository.getId(), managedRepository.getLayout(), managedRepository.getName(), managedRepository.getLocation(), managedRepository.isBlockRedeployments(), managedRepository.isReleases(), managedRepository.isSnapshots(), needStageRepo, managedRepository.getCronExpression(), managedRepository.getIndexDirectory(), managedRepository.getDaysOlder(), managedRepository.getRetentionCount(), managedRepository.isDeleteReleasedSnapshots(), managedRepository.getDescription(), managedRepository.isSkipPackedIndexCreation(), managedRepository.isScanned(), auditInformation, getArchivaConfiguration().getConfiguration() ) != null; createIndexContext( managedRepository ); return res; }