Class 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.
    • 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 all Indexers for which the underlying path is supported (see Indexer.supportsPath(Path)).
      • schedule

        public CompletableFuture<Void> schedule​(ExecutorService executor)
        Note that a CDI BatchIndexEvent is fired for each individual indexer job that finishes.
        Parameters:
        executor - The ExecutorService used for asynchronous scheduling.
        Returns:
        A CompletableFuture that completes when all indexing jobs have finished. If any job completes execptionally, this future completes exceptionally. Must not be null.
      • dispose

        public void dispose()