org.hibernate.search.backend.impl.lucene
Class LuceneBackendQueueProcessor

java.lang.Object
  extended by org.hibernate.search.backend.impl.lucene.LuceneBackendQueueProcessor
All Implemented Interfaces:
BackendQueueProcessor

public class LuceneBackendQueueProcessor
extends Object
implements BackendQueueProcessor

This will actually contain the Workspace and LuceneWork visitor implementation, reused per-DirectoryProvider. Both Workspace(s) and LuceneWorkVisitor(s) lifecycle are linked to the backend lifecycle (reused and shared by all transactions). The LuceneWorkVisitor(s) are stateless, the Workspace(s) are threadsafe.

Author:
Emmanuel Bernard, Sanne Grinovero

Constructor Summary
LuceneBackendQueueProcessor()
           
 
Method Summary
 void applyStreamWork(LuceneWork singleOperation, IndexingMonitor monitor)
          Applies a single operation on the index, and different operations can be applied in parallel, even in parallel to a workList instance being processed by BackendQueueProcessor.applyWork(List, IndexingMonitor)
 void applyWork(List<LuceneWork> workList, IndexingMonitor monitor)
          Applies a list of operations to the index.
 void close()
          Used to shutdown and eventually release resources.
 Lock getExclusiveWriteLock()
           
 LuceneBackendResources getIndexResources()
           
 void indexMappingChanged()
          Used to notify the backend that the number or type of indexed entities being indexed in this backend changed.
 void initialize(Properties props, WorkerBuildContext context, DirectoryBasedIndexManager indexManager)
          Used at startup, called once as first method.
 void setCustomWorkspace(AbstractWorkspaceImpl workspace)
          If invoked before initialize(Properties, WorkerBuildContext, DirectoryBasedIndexManager) it can set a customized Workspace instance to be used by this backend.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LuceneBackendQueueProcessor

public LuceneBackendQueueProcessor()
Method Detail

initialize

public void initialize(Properties props,
                       WorkerBuildContext context,
                       DirectoryBasedIndexManager indexManager)
Description copied from interface: BackendQueueProcessor
Used at startup, called once as first method.

Specified by:
initialize in interface BackendQueueProcessor
Parameters:
props - all configuration properties
context - context giving access to required meta data
indexManager - the index it is related to.

close

public void close()
Description copied from interface: BackendQueueProcessor
Used to shutdown and eventually release resources. No other method should be used after this one.

Specified by:
close in interface BackendQueueProcessor

applyStreamWork

public void applyStreamWork(LuceneWork singleOperation,
                            IndexingMonitor monitor)
Description copied from interface: BackendQueueProcessor
Applies a single operation on the index, and different operations can be applied in parallel, even in parallel to a workList instance being processed by BackendQueueProcessor.applyWork(List, IndexingMonitor)

Specified by:
applyStreamWork in interface BackendQueueProcessor
Parameters:
singleOperation - single Lucene work instance to be applied to the index

applyWork

public void applyWork(List<LuceneWork> workList,
                      IndexingMonitor monitor)
Description copied from interface: BackendQueueProcessor
Applies a list of operations to the index. A single list might be processed by applying elements in parallel threads, but no work should be started on a new workList until the previous one was fully processed. Work could be applied asynchronously according to capabilities and configuration of implementor. A null parameter is not acceptable, implementations should throw an IllegalArgumentException.

Specified by:
applyWork in interface BackendQueueProcessor
Parameters:
workList - list of Lucene work instance which need to be applied to the index

getExclusiveWriteLock

public Lock getExclusiveWriteLock()
Specified by:
getExclusiveWriteLock in interface BackendQueueProcessor
Returns:
a Lock instance which will block index modifications when acquired

getIndexResources

public LuceneBackendResources getIndexResources()

setCustomWorkspace

public void setCustomWorkspace(AbstractWorkspaceImpl workspace)
If invoked before initialize(Properties, WorkerBuildContext, DirectoryBasedIndexManager) it can set a customized Workspace instance to be used by this backend.

Parameters:
workspace - the new workspace

indexMappingChanged

public void indexMappingChanged()
Description copied from interface: BackendQueueProcessor
Used to notify the backend that the number or type of indexed entities being indexed in this backend changed. This could trigger some needed reconfiguration.

Specified by:
indexMappingChanged in interface BackendQueueProcessor


Copyright © 2006-2012 Red Hat Middleware, LLC. All Rights Reserved