@Override public void close() { if (stopped.compareAndSet(false, true)) { // make sure we only stop once try { worker.close(); } catch (Exception e) { log.workerException(e); } this.allIndexesManager.stop(); this.timingSource.stop(); serviceManager.releaseAllServices(); for (Analyzer an : this.analyzers.values()) { an.close(); } for (AbstractDocumentBuilder documentBuilder : this.documentBuildersContainedEntities.values()) { documentBuilder.close(); } for (EntityIndexBinding entityIndexBinding : this.indexBindingForEntities.values()) { entityIndexBinding.getDocumentBuilder().close(); } // unregister statistic mbean if (statisticsMBeanName != null) { JMXRegistrar.unRegisterMBean(statisticsMBeanName); } } }
private void performSearchWorks(Collection<Work> works, TransactionContext transactionContext) { Worker worker = searchFactory.getWorker(); for (Work work : works) { worker.performWork(work, transactionContext); } }