private void registerObserver(Observable observable, Executor executor) { backgroundObserver = new BackgroundObserver(this, executor, 5); observerRegistration = observable.addObserver(backgroundObserver); }
@Override public void close() { backgroundObserver.close(); }
public BackgroundObserverMBean getMBean(){ return checkNotNull(backgroundObserver).getMBean(); }
private void registerObserver(BundleContext bundleContext, Map<String, ?> config) { boolean enableAsyncIndexOpen = PropertiesUtil.toBoolean(config.get(PROP_ASYNC_INDEX_OPEN), true); Observer observer = indexProvider; if (enableAsyncIndexOpen) { backgroundObserver = new BackgroundObserver(indexProvider, getExecutorService(), 5); observer = backgroundObserver; oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, backgroundObserver.getMBean(), BackgroundObserverMBean.TYPE, "LuceneIndexConfigObserver queue stats")); log.info("Registering the LuceneIndexProvider as a BackgroundObserver"); } regs.add(bundleContext.registerService(Observer.class.getName(), observer, null)); }
@Override public final void contentChanged(@NotNull NodeState root, @NotNull CommitInfo info) { if (filter.excludes(root, info)) { lastNoop = root; return; } // current change is not an noop if (lastNoop != null) { // report up to previous noop backgroundObserver.contentChanged(lastNoop, NOOP_CHANGE); lastNoop = null; } backgroundObserver.contentChanged(root, info); }
@Override public int getMaxQueueSize() { return getMaxQueueLength(); }
added(queue.size());
private void registerObserver(BundleContext bundleContext, Map<String, ?> config) { boolean enableAsyncIndexOpen = PropertiesUtil.toBoolean(config.get(PROP_ASYNC_INDEX_OPEN), true); Observer observer = indexProvider; if (enableAsyncIndexOpen) { backgroundObserver = new BackgroundObserver(indexProvider, getExecutorService(), 5); observer = backgroundObserver; oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, backgroundObserver.getMBean(), BackgroundObserverMBean.TYPE, "LuceneIndexConfigObserver queue stats")); log.info("Registering the LuceneIndexProvider as a BackgroundObserver"); } regs.add(bundleContext.registerService(Observer.class.getName(), observer, null)); }
@Override public final void contentChanged(@NotNull NodeState root, @NotNull CommitInfo info) { if (filter.excludes(root, info)) { lastNoop = root; return; } // current change is not an noop if (lastNoop != null) { // report up to previous noop backgroundObserver.contentChanged(lastNoop, NOOP_CHANGE); lastNoop = null; } backgroundObserver.contentChanged(root, info); }
@Override public int getMaxQueueSize() { return getMaxQueueLength(); }
private void registerObserver(Observer observer, Configuration config) { boolean enableAsyncObserver = config.enableAsyncObserver(); int queueSize = config.observerQueueSize(); if (enableAsyncObserver){ BackgroundObserver bgObserver = new BackgroundObserver(observer, executor, queueSize); oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, bgObserver.getMBean(), BackgroundObserverMBean.TYPE, "Secondary NodeStore observer stats")); observer = bgObserver; log.info("Configuring the observer for secondary NodeStore as " + "Background Observer with queue size {}", queueSize); } //Ensure that our observer comes first in processing Hashtable<String, Object> props = new Hashtable<>(); props.put(Constants.SERVICE_RANKING, 10000); regs.add(bundleContext.registerService(Observer.class.getName(), observer, props)); }
private void registerObserver(Observable observable, Executor executor) { backgroundObserver = new BackgroundObserver(this, executor, 5); observerRegistration = observable.addObserver(backgroundObserver); }
@Override public void close() { backgroundObserver.close(); }
public BackgroundObserverMBean getMBean(){ return checkNotNull(backgroundObserver).getMBean(); }
@Override public final void contentChanged(@Nonnull NodeState root, @Nonnull CommitInfo info) { if (filter.excludes(root, info)) { lastNoop = root; return; } // current change is not an noop if (lastNoop != null) { // report up to previous noop backgroundObserver.contentChanged(lastNoop, NOOP_CHANGE); lastNoop = null; } backgroundObserver.contentChanged(root, info); }
private void registerObserver(Observer observer, Configuration config) { boolean enableAsyncObserver = config.enableAsyncObserver(); int queueSize = config.observerQueueSize(); if (enableAsyncObserver){ BackgroundObserver bgObserver = new BackgroundObserver(observer, executor, queueSize); oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, bgObserver.getMBean(), BackgroundObserverMBean.TYPE, "Secondary NodeStore observer stats")); observer = bgObserver; log.info("Configuring the observer for secondary NodeStore as " + "Background Observer with queue size {}", queueSize); } //Ensure that our observer comes first in processing Hashtable<String, Object> props = new Hashtable<>(); props.put(Constants.SERVICE_RANKING, 10000); regs.add(bundleContext.registerService(Observer.class.getName(), observer, props)); }
/** * Default constructor which creates a BackgroundObserver automatically, including * creating a FilteringDispatcher. * @param executor the executor that should be used for the BackgroundObserver * @param queueLength the queue length of the BackgroundObserver * @param filter the Filter to be used for filtering * @param observer the FilteringAwareObserver to which content changes ultimately * are delivered after going through a chain of * FilteringObserver->BackgroundObserver->FilteringDispatcher. */ public FilteringObserver(@NotNull Executor executor, int queueLength, @NotNull Filter filter, @NotNull FilteringAwareObserver observer) { this(new BackgroundObserver(new FilteringDispatcher(checkNotNull(observer)), checkNotNull(executor), queueLength), filter); }
@Override public void close() { backgroundObserver.close(); }