@Override public void completeScan() { ArtifactIndexingTask task = new ArtifactIndexingTask( repository, null, ArtifactIndexingTask.Action.FINISH, repository.getIndexingContext()); try { log.debug( "Queueing indexing task '{}' to finish indexing.", task ); scheduler.queueTask( task ); } catch ( TaskQueueException e ) { log.error( "Error queueing task: {}: {}", task, e.getMessage(), e ); } }
@Override public void processFile( String path ) throws ConsumerException { Path artifactFile = managedRepository.resolve(path); ArtifactIndexingTask task = new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD, repository.getIndexingContext() ); try { log.debug( "Queueing indexing task '{}' to add or update the artifact in the index.", task ); scheduler.queueTask( task ); } catch ( TaskQueueException e ) { throw new ConsumerException( e.getMessage(), e ); } }
private IndexingContext getIndexingContext() throws ConsumerException { if ( this.indexingContext == null ) { try { indexingContext = repository.getIndexingContext().getBaseContext(IndexingContext.class); } catch (UnsupportedBaseContextException e) { log.error("Bad repository type. Not nexus indexer compatible. "+repository.getType()); throw new ConsumerException("Bad repository type "+repository.getType()); } } return indexingContext; } }
@Override public void beginScan( ManagedRepository repository, Date whenGathered ) throws ConsumerException { this.repository = repository; managedRepository = PathUtil.getPathFromUri( repository.getLocation() ); try { log.info( "Creating indexing context for repo : {}", repository.getId() ); if (repository.getType()== RepositoryType.MAVEN) { indexingContext = repository.getIndexingContext().getBaseContext(IndexingContext.class); } else { indexingContext= null; } } catch (UnsupportedBaseContextException e) { log.error("Bad repository type. Not nexus indexer compatible."); throw new ConsumerException("Bad repository type "+repository.getType()); } }
@Override public Boolean scanRepositoryNow( String repositoryId, boolean fullScan ) throws ArchivaRestServiceException { try { org.apache.archiva.repository.ManagedRepository repository = repositoryRegistry.getManagedRepository( repositoryId ); ArtifactIndexingTask task = new ArtifactIndexingTask( repository, null, ArtifactIndexingTask.Action.FINISH, repository.getIndexingContext() ); task.setExecuteOnEntireRepo( true ); task.setOnlyUpdate( !fullScan ); archivaIndexingTaskExecutor.executeTask( task ); scheduler.queueTask( new RepositoryTask( repositoryId, fullScan ) ); return Boolean.TRUE; } catch ( Exception e ) { log.error( e.getMessage(), e ); throw new ArchivaRestServiceException( e.getMessage(), e ); } }
@Override public void processFile( String path, boolean executeOnEntireRepo ) throws Exception { if ( executeOnEntireRepo ) { processFile( path ); } else { Path artifactFile = managedRepository.resolve(path); // specify in indexing task that this is not a repo scan request! ArtifactIndexingTask task = new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD, repository.getIndexingContext(), false ); // only update index we don't need to scan the full repo here task.setOnlyUpdate( true ); try { log.debug( "Queueing indexing task '{}' to add or update the artifact in the index.", task ); scheduler.queueTask( task ); } catch ( TaskQueueException e ) { throw new ConsumerException( e.getMessage(), e ); } } }
@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); } } }
? "none" : indexingTask.getResourceFile( ) ) ); archivaContext = repository.getIndexingContext( ); context = archivaContext.getBaseContext( IndexingContext.class );