public void addRepositoryIndexContext(String repositoryId) throws IOException, NoSuchRepositoryException { final Repository repository = repositoryRegistry.getRepository(repositoryId); addRepositoryIndexContext(repository); }
public IteratorSearchResponse searchArtifactClassIterator(String term, String repositoryId, Integer from, Integer count, Integer hitLimit, SearchType searchType, List<ArtifactInfoFilter> filters) throws NoSuchRepositoryException { if (term.endsWith(".class")) { term = term.substring(0, term.length() - 6); } Query q = constructQuery(MAVEN.CLASSNAMES, term, searchType); IteratorSearchRequest req = createRequest(q, from, count, hitLimit, false, filters); req.getMatchHighlightRequests().add(new MatchHighlightRequest(MAVEN.CLASSNAMES, q, MatchHighlightMode.HTML)); return searchIterator(repositoryId, req); }
public void downloadRepositoryIndex( String repositoryId ) throws IOException, NoSuchRepositoryException { ProxyRepository repository = repositoryRegistry.getRepositoryWithFacet( repositoryId, ProxyRepository.class ); if ( repository.isIndexable() && downloadRepositoryIndex( repository ) ) { mergeRepositoryGroupIndexWithMember( repository ); } }
public IteratorSearchResponse searchQueryIterator(Query query, String repositoryId, Integer from, Integer count, Integer hitLimit, boolean uniqueRGA, List<ArtifactInfoFilter> filters) throws NoSuchRepositoryException { IteratorSearchRequest req = createRequest(query, from, count, hitLimit, uniqueRGA, filters); return searchIterator(repositoryId, req); }
private File getRepositoryIndexDirectory(final Repository repository) throws IOException { File indexDirectory = new File(getWorkingDirectory(), getContextId(repository.getId())); DirSupport.mkdir(indexDirectory.toPath()); return indexDirectory; }
lock = getLock( repositoryId ).readLock(); lock.lock(); localContext = getRepositoryLocalIndexContext( repositoryId ); remoteContext = getRepositoryRemoteIndexContext( repositoryId ); Query q = createQuery( MAVEN.CLASSNAMES, term, searchType ); IteratorSearchRequest req = createRequest( q, from, count, hitLimit, false, filters ); if ( getLogger().isDebugEnabled() ) getLogger().debug( "Too many clauses exception caught:", e ); getLogger().error( "Got I/O exception while searching for query \"" + q.toString() + "\"", e );
Lock lock = getLock( repository ).writeLock(); lock.lock(); if ( !isIndexingSupported( repository ) ) logSkippingRepositoryMessage( repository ); File repoRoot = getRepositoryLocalStorageAsFile( repository ); IndexingContext ctx = getRepositoryLocalIndexContext( repository ); removeRepositoryIndexContext( repositoryId, false ); addRepositoryIndexContext( repositoryId ); setRepositoryIndexContextSearchable( repositoryId, repository.isSearchable() );
if ( !isIndexingSupported( repository ) ) if ( getLogger().isDebugEnabled() ) getLogger().debug( "Can't publish index on repository \"" + repository.getName() + "\" (ID=\"" + repository.getId() + "\") since indexing is not supported on it!" ); if ( isAlreadyBeingIndexed( repository.getId() ) ) Lock lock = getLock( repository.getId() ).readLock(); lock.lock(); getLogger().info( "Publishing best index for repository " + repository.getId() ); IndexingContext context = getRepositoryLocalIndexContext( repository ); IndexingContext remoteContext = getRepositoryRemoteIndexContext( repository ); mergedContext = mergeContexts( context, remoteContext ); targetDir = new File( getTempDirectory(), "nx-index-" + Long.toHexString( System.nanoTime() ) ); copyIndexPropertiesToTempDir( repository, targetDir ); storeItem( repository, file, mergedContext ); getLogger().warn( "Could not close temporary indexing context!", e ); if ( getLogger().isDebugEnabled() )
protected void reindexRepository( Repository repository, boolean fullReindex ) throws IOException if ( !isIndexingSupported( repository ) || repository.getRepositoryKind().isFacetAvailable( GroupRepository.class ) ) if ( isAlreadyBeingIndexed( repository ) ) Lock lock = getLock( repository.getId() ).writeLock(); lock.lock(); IndexingContext context = getRepositoryLocalIndexContext( repository ); purgeCurrentIndex( context ); downloadRepositoryIndex( repository.adaptToFacet( ProxyRepository.class ) ); IndexingContext remoteContext = getRepositoryRemoteIndexContext( repository ); mergeRepositoryGroupIndexWithMember( repository );
Lock lock = getLock( repository ).writeLock(); lock.lock(); if ( !isIndexingSupported( repository ) || !repository.isIndexable() ) logSkippingRepositoryMessage( repository ); File repoRoot = getRepositoryLocalStorageAsFile( repository ); nexusIndexer.addIndexingContextForced( getLocalContextId( repository.getId() ), repository.getId(), repoRoot, new File( getWorkingDirectory(), getLocalContextId( repository.getId() ) ), null, null, indexCreators ); ctxLocal.setSearchable( repository.isSearchable() ); nexusIndexer.addIndexingContextForced( getRemoteContextId( repository.getId() ), repository.getId(), repoRoot, new File( getWorkingDirectory(), getRemoteContextId( repository.getId() ) ), null, null, indexCreators ); ctxRemote.setSearchable( repository.isSearchable() );
if ( !isIndexingSupported( repository ) ) logSkippingRepositoryMessage( repository ); logSkippingRepositoryMessage( repository ); if ( getLogger().isDebugEnabled() ) getLogger().debug( "Repository '" + repository.getId() + "' is already processed in recursive calls, will not process it." ); getLogger().debug( "Will not index hidden file path: " + item.getPath() ); IndexingContext context = getRepositoryLocalIndexContext( repository ); if ( getLogger().isDebugEnabled() ) getLogger().debug( "The ArtifactContext created from file is fine, continuing." ); getNexusIndexer().addArtifactToIndex( ac, context ); addItemToIndex( group, item, processedRepositories, ac ); getLogger().error( "Got IO exception during index processing, continuing to do the best...", e );
if ( !isIndexingSupported( repository ) || !MavenRepository.class.isAssignableFrom( repository.getClass() ) ) logSkippingRepositoryMessage( repository ); logSkippingRepositoryMessage( repository ); if ( getLogger().isDebugEnabled() ) getLogger().debug( "Repository '" + repository.getId() + "' is already processed in recursive calls, will not process it." ); IndexingContext context = getRepositoryLocalIndexContext( repository ); if ( getLogger().isDebugEnabled() ) getLogger().debug( "Deleting artifact " + ai.groupId + ":" + ai.artifactId + ":" + ai.version + " from index (DELETE)." ); getNexusIndexer().deleteArtifactFromIndex( ac, context ); if ( getLogger().isDebugEnabled() ) getLogger().debug( "NOT deleting artifact " + ac.getArtifactInfo().groupId + ":" + ac.getArtifactInfo().artifactId + ":" + ac.getArtifactInfo().version removeItemFromIndex( group, item, processedRepositories, ac );
File repoRoot = getRepositoryLocalStorageAsFile(repository); context.isSearchable() != repository.isSearchable())) { removeRepositoryIndexContext(repository, false); context = null; addRepositoryIndexContext(repository);
File location = File.createTempFile(indexId, null, getTempDirectory()); getRepositoryLocalStorageAsFile(repository), // repository local storage openFSDirectory(location), // exclusiveSingle(repository, new Runnable()
File indexDirectory = getRepositoryIndexDirectory(repository); final File repoRoot = getRepositoryLocalStorageAsFile(repository); mavenIndexer.addMergedIndexingContext(getContextId(repository.getId()), repository.getId(), repoRoot, indexDirectory, repository.isSearchable(), Collections.<IndexingContext>emptyList()); ctx = new NexusIndexingContext(getContextId(repository.getId()), // id openFSDirectory(indexDirectory), // indexDirectory ISPROXY(repository)); mavenIndexer.addIndexingContext(ctx);
protected void optimizeIndex( Repository repo ) throws CorruptIndexException, IOException { if ( repo.getRepositoryKind().isFacetAvailable( GroupRepository.class ) ) { GroupRepository group = repo.adaptToFacet( GroupRepository.class ); for ( Repository member : group.getMemberRepositories() ) { optimizeIndex( member ); } } // local IndexingContext context = getRepositoryLocalIndexContext( repo ); if ( context != null ) { getLogger().debug( "Optimizing local index context for repository: " + repo.getId() ); context.optimize(); } // remote context = getRepositoryRemoteIndexContext( repo ); if ( context != null ) { getLogger().debug( "Optimizing remote index context for repository: " + repo.getId() ); context.optimize(); } } }
protected void downloadRepositoryGroupIndex( GroupRepository group ) throws IOException { List<Repository> members = group.getMemberRepositories(); for ( Repository repository : members ) { if ( !repository.isIndexable() ) { continue; } if ( repository.getRepositoryKind().isFacetAvailable( GroupRepository.class ) ) { downloadRepositoryGroupIndex( repository.adaptToFacet( GroupRepository.class ) ); } if ( repository.getRepositoryKind().isFacetAvailable( ProxyRepository.class ) ) { if ( downloadRepositoryIndex( repository.adaptToFacet( ProxyRepository.class ) ) ) { mergeRepositoryGroupIndexWithMember( repository ); } } } }
public void optimizeRepositoryIndex( String repositoryId ) throws IOException { try { optimizeIndex( repositoryRegistry.getRepository( repositoryId ) ); } catch ( NoSuchRepositoryException e ) { // should never happen getLogger().error( e.getMessage(), e ); } }
if (!INDEXABLE(repository) || !ISPROXY(repository)) { return; MavenRepository mrepository = (MavenRepository) repository; updateRequest.setDocumentFilter(getFilterFor(mrepository.getRepositoryPolicy()));
@Override protected void perform(Repository member) throws IOException { optimizeIndex(member, processedRepositoryIds); } }.perform();