public LuceneBackendTaskStreamer(LuceneBackendResources resources) { this.workspace = resources.getWorkspace(); this.modificationLock = resources.getParallelModificationLock(); this.resources = resources; }
public void close() { //The order is important! The work processor uses the resources. workProcessor.shutdown(); resources.shutdown(); }
/** * Creates a replacement for this same LuceneBackendResources: * reuses the existing locks and executors (which can't be reconfigured on the fly), * reuses the same Workspace and ErrorHandler, but will use a new LuceneWorkVisitor. * The LuceneWorkVisitor contains the strategies we use to apply update operations on the index, * and we might need to change them after the backend is started. * * @return the new LuceneBackendResources to replace this one. */ public LuceneBackendResources onTheFlyRebuild() { return new LuceneBackendResources( this ); }
AbstractWorkspaceImpl workspace = resources.getWorkspace(); errorContextBuilder.indexManager( resources.getIndexManager() ); errorContextBuilder.allWorkToBeDone( workList ); errorContextBuilder.errorThatOccurred( re ).indexManager( resources.getIndexManager() ); if ( currentOperation != null ) { errorContextBuilder.addWorkThatFailed( currentOperation ); resources.getErrorHandler().handle( errorContextBuilder.createErrorContext() );
public AbstractWorkspaceImpl extractWorkspace(IndexedTypeIdentifier indexedType) { DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) extractIndexManager( indexedType ); WorkspaceHolder backend = indexManager.getWorkspaceHolder(); return backend.getIndexResources().getWorkspace(); }
static void performWork(final LuceneWork work, final LuceneBackendResources resources, final IndexWriterDelegate delegate, final IndexingMonitor monitor) { work.acceptIndexWorkVisitor( resources.getWorkVisitor(), null ).performWork( work, delegate, monitor ); }
private void handleException(Exception e) { ErrorContextBuilder builder = new ErrorContextBuilder(); builder.allWorkToBeDone( workList ); builder.errorThatOccurred( e ).indexManager( resources.getIndexManager() ); resources.getErrorHandler().handle( builder.createErrorContext() ); }
LuceneBackendQueueTask(Iterable<LuceneWork> workList, LuceneBackendResources resources, IndexingMonitor monitor) { this.workList = workList; this.resources = resources; this.monitor = monitor; this.modificationLock = resources.getParallelModificationLock(); }
public void flushAndReleaseResources() { LuceneBackendResources backendResources = resources; if ( backendResources != null ) { backendResources.flushAndReleaseResources(); } }
public void indexMappingChanged() { resources = resources.onTheFlyRebuild(); workProcessor.updateResources( resources ); }
public Lock getExclusiveWriteLock() { return resources.getExclusiveModificationLock(); }
AbstractWorkspaceImpl workspace = resources.getWorkspace(); errorContextBuilder.indexManager( resources.getIndexManager() ); errorContextBuilder.allWorkToBeDone( workList ); errorContextBuilder.errorThatOccurred( re ).indexManager( resources.getIndexManager() ); if ( currentOperation != null ) { errorContextBuilder.addWorkThatFailed( currentOperation ); resources.getErrorHandler().handle( errorContextBuilder.createErrorContext() );
private void assertExclusiveIsEnabled(IndexManagerHolder allIndexesManager, String indexName, boolean expectExclusive) { DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) allIndexesManager.getIndexManager( indexName ); WorkspaceHolder workspaceHolder = indexManager.getWorkspaceHolder(); AbstractWorkspaceImpl workspace = workspaceHolder.getIndexResources().getWorkspace(); if ( expectExclusive ) { assertEquals( ExclusiveIndexWorkspaceImpl.class, workspace.getClass() ); } else { assertEquals( SharedIndexWorkspaceImpl.class, workspace.getClass() ); } }
static void performWork(final LuceneWork work, final LuceneBackendResources resources, final IndexWriterDelegate delegate, final IndexingMonitor monitor) { work.acceptIndexWorkVisitor( resources.getWorkVisitor(), null ).performWork( work, delegate, monitor ); }
private void handleException(Exception e) { ErrorContextBuilder builder = new ErrorContextBuilder(); builder.allWorkToBeDone( workList ); builder.errorThatOccurred( e ).indexManager( resources.getIndexManager() ); resources.getErrorHandler().handle( builder.createErrorContext() ); }
LuceneBackendQueueTask(Iterable<LuceneWork> workList, LuceneBackendResources resources, IndexingMonitor monitor) { this.workList = workList; this.resources = resources; this.monitor = monitor; this.modificationLock = resources.getParallelModificationLock(); }
public void flushAndReleaseResources() { LuceneBackendResources backendResources = resources; if ( backendResources != null ) { backendResources.flushAndReleaseResources(); } }
public void indexMappingChanged() { resources = resources.onTheFlyRebuild(); workProcessor.updateResources( resources ); }
public Lock getExclusiveWriteLock() { return resources.getExclusiveModificationLock(); }
protected static AbstractWorkspaceImpl extractWorkspace(MutableSearchFactory sf, Class<?> type) { EntityIndexBinding indexBindingForEntity = sf.getIndexBindings().get( type ); DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) indexBindingForEntity.getIndexManagerSelector().all().iterator().next(); WorkspaceHolder backend = (WorkspaceHolder) indexManager.getWorkspaceHolder(); return backend.getIndexResources().getWorkspace(); }