private void registerIndexEditor(BundleContext bundleContext, IndexTracker tracker, LuceneIndexMBean mBean, Map<String, ?> config) throws IOException { boolean enableCopyOnWrite = PropertiesUtil.toBoolean(config.get(PROP_COPY_ON_WRITE), PROP_COPY_ON_WRITE_DEFAULT); if (enableCopyOnWrite){ initializeIndexCopier(bundleContext, config); editorProvider = new LuceneIndexEditorProvider(indexCopier, tracker, extractedTextCache, augmentorFactory, mountInfoProvider, activeDeletedBlobCollector, mBean, statisticsProvider); log.info("Enabling CopyOnWrite support. Index files would be copied under {}", indexDir.getAbsolutePath()); } else { editorProvider = new LuceneIndexEditorProvider(null, tracker, extractedTextCache, augmentorFactory, mountInfoProvider, activeDeletedBlobCollector, mBean, statisticsProvider); } editorProvider.setBlobStore(blobStore); if (hybridIndex){ editorProvider.setIndexingQueue(checkNotNull(documentQueue)); } Dictionary<String, Object> props = new Hashtable<String, Object>(); props.put("type", TYPE_LUCENE); regs.add(bundleContext.registerService(IndexEditorProvider.class.getName(), editorProvider, props)); oakRegs.add(registerMBean(whiteboard, TextExtractionStatsMBean.class, editorProvider.getExtractedTextCache().getStatsMBean(), TextExtractionStatsMBean.TYPE, "TextExtraction statistics")); }
private void registerIndexEditor(BundleContext bundleContext, IndexTracker tracker, LuceneIndexMBean mBean, Map<String, ?> config) throws IOException { boolean enableCopyOnWrite = PropertiesUtil.toBoolean(config.get(PROP_COPY_ON_WRITE), PROP_COPY_ON_WRITE_DEFAULT); if (enableCopyOnWrite){ initializeIndexCopier(bundleContext, config); editorProvider = new LuceneIndexEditorProvider(indexCopier, tracker, extractedTextCache, augmentorFactory, mountInfoProvider, activeDeletedBlobCollector, mBean, statisticsProvider); log.info("Enabling CopyOnWrite support. Index files would be copied under {}", indexDir.getAbsolutePath()); } else { editorProvider = new LuceneIndexEditorProvider(null, tracker, extractedTextCache, augmentorFactory, mountInfoProvider, activeDeletedBlobCollector, mBean, statisticsProvider); } editorProvider.setBlobStore(blobStore); if (hybridIndex){ editorProvider.setIndexingQueue(checkNotNull(documentQueue)); } Dictionary<String, Object> props = new Hashtable<String, Object>(); props.put("type", TYPE_LUCENE); regs.add(bundleContext.registerService(IndexEditorProvider.class.getName(), editorProvider, props)); oakRegs.add(registerMBean(whiteboard, TextExtractionStatsMBean.class, editorProvider.getExtractedTextCache().getStatsMBean(), TextExtractionStatsMBean.TYPE, "TextExtraction statistics")); }
assertEquals(0, cache.getStatsMBean().getTimeoutCount()); cache.setExtractionTimeoutMillis(10); long time = System.currentTimeMillis(); assertEquals(1, cache.getStatsMBean().getTimeoutCount());