Package org.uberfire.ext.metadata.io
Class IndexerDispatcher
- java.lang.Object
-
- org.uberfire.ext.metadata.io.IndexerDispatcher
-
public class IndexerDispatcher extends Object
Allows you to queue and then later asynchronously execute indexing for individual indexers. Fires CDI events when an indexer finishes processing a batch.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceIndexerDispatcher.IndexerDispatcherFactory
-
Constructor Summary
Constructors Constructor Description IndexerDispatcher(org.uberfire.ext.metadata.engine.MetaIndexEngine indexEngine, Collection<? extends org.uberfire.ext.metadata.engine.Indexer> indexers, org.uberfire.ext.metadata.model.KCluster cluster, org.uberfire.ext.metadata.engine.IndexerScheduler.Factory schedulerFactory, javax.enterprise.event.Event<org.uberfire.ext.metadata.event.BatchIndexEvent> batchIndexEvent, org.slf4j.Logger logger)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static IndexerDispatcher.IndexerDispatcherFactorycreateFactory(org.uberfire.ext.metadata.engine.MetaIndexEngine indexEngine, org.uberfire.ext.metadata.engine.IndexerScheduler.Factory schedulerFactory, javax.enterprise.event.Event<org.uberfire.ext.metadata.event.BatchIndexEvent> batchIndexEvent, org.slf4j.Logger logger)voiddispose()voidoffer(IndexableIOEvent event)CompletableFuture<Void>schedule(ExecutorService executor)Note that a CDIBatchIndexEventis fired for each individual indexer job that finishes.
-
-
-
Constructor Detail
-
IndexerDispatcher
public IndexerDispatcher(org.uberfire.ext.metadata.engine.MetaIndexEngine indexEngine, Collection<? extends org.uberfire.ext.metadata.engine.Indexer> indexers, org.uberfire.ext.metadata.model.KCluster cluster, org.uberfire.ext.metadata.engine.IndexerScheduler.Factory schedulerFactory, javax.enterprise.event.Event<org.uberfire.ext.metadata.event.BatchIndexEvent> batchIndexEvent, org.slf4j.Logger logger)
-
-
Method Detail
-
createFactory
public static IndexerDispatcher.IndexerDispatcherFactory createFactory(org.uberfire.ext.metadata.engine.MetaIndexEngine indexEngine, org.uberfire.ext.metadata.engine.IndexerScheduler.Factory schedulerFactory, javax.enterprise.event.Event<org.uberfire.ext.metadata.event.BatchIndexEvent> batchIndexEvent, org.slf4j.Logger logger)
-
offer
public void offer(IndexableIOEvent event)
- Parameters:
event- An indexing event to be queued. Must not be null. The event will be dispatched to allIndexersfor which the underlying path is supported (seeIndexer.supportsPath(Path)).
-
schedule
public CompletableFuture<Void> schedule(ExecutorService executor)
Note that a CDIBatchIndexEventis fired for each individual indexer job that finishes.- Parameters:
executor- TheExecutorServiceused for asynchronous scheduling.- Returns:
- A
CompletableFuturethat completes when all indexing jobs have finished. If any job completes execptionally, this future completes exceptionally. Must not be null.
-
dispose
public void dispose()
-
-