test_class.declarator: context = new OsgiContext()
test_class.modifier: @Rule
      public final
test_class.original_string: @Rule
      public final OsgiContext context = new OsgiContext();
test_class.type: OsgiContext
test_class.var_name: context
test_class.declarator: builderProvider = new DocumentMKBuilderProvider()
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public DocumentMKBuilderProvider builderProvider = new DocumentMKBuilderProvider();
test_class.type: DocumentMKBuilderProvider
test_class.var_name: builderProvider
test_class.declarator: cacheService = new SecondaryStoreCacheService()
test_class.modifier: private
test_class.original_string: private SecondaryStoreCacheService cacheService = new SecondaryStoreCacheService();
test_class.type: SecondaryStoreCacheService
test_class.var_name: cacheService
test_class.declarator: secondaryStore = new MemoryNodeStore()
test_class.modifier: private
test_class.original_string: private NodeStore secondaryStore = new MemoryNodeStore();
test_class.type: NodeStore
test_class.var_name: secondaryStore
test_class.file: oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheServiceTest.java
test_class.identifier: SecondaryStoreCacheServiceTest
test_case.body: @Test
      public void disableBackground() throws Exception{
          Map<String, Object> config = new HashMap<>();
          config.put("enableAsyncObserver", "false");
          MockOsgi.activate(cacheService, context.bundleContext(), config);
  
          assertNotNull(context.getService(Observer.class));
          assertNull(context.getService(BackgroundObserverMBean.class));
          assertNotNull(context.getService(DocumentNodeStateCache.class));
      }
test_case.class_method_signature: SecondaryStoreCacheServiceTest.disableBackground()
test_case.full_signature: @Test public void disableBackground()
test_case.identifier: disableBackground
test_case.invocations: put activate bundleContext assertNotNull getService assertNull getService assertNotNull getService
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void disableBackground()
focal_class.declarator: log = LoggerFactory.getLogger(getClass())
focal_class.modifier: private final
focal_class.original_string: private final Logger log = LoggerFactory.getLogger(getClass());
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: blobStore
focal_class.modifier: @Reference
      private
focal_class.original_string: @Reference
      private BlobStore blobStore;
focal_class.type: BlobStore
focal_class.var_name: blobStore
focal_class.declarator: secondaryStoreProvider
focal_class.modifier: @Reference(target = "(role=secondary)")
      private
focal_class.original_string: @Reference(target = "(role=secondary)")
      private NodeStoreProvider secondaryStoreProvider;
focal_class.type: NodeStoreProvider
focal_class.var_name: secondaryStoreProvider
focal_class.declarator: executor
focal_class.modifier: @Reference
      private
focal_class.original_string: @Reference
      private Executor executor;
focal_class.type: Executor
focal_class.var_name: executor
focal_class.declarator: statisticsProvider
focal_class.modifier: @Reference
      private
focal_class.original_string: @Reference
      private StatisticsProvider statisticsProvider;
focal_class.type: StatisticsProvider
focal_class.var_name: statisticsProvider
focal_class.declarator: documentNodeStore
focal_class.modifier: @Reference(cardinality = ReferenceCardinality.OPTIONAL,
              policy = ReferencePolicy.DYNAMIC)
      private volatile
focal_class.original_string: @Reference(cardinality = ReferenceCardinality.OPTIONAL,
              policy = ReferencePolicy.DYNAMIC)
      private volatile DocumentNodeStore documentNodeStore;
focal_class.type: DocumentNodeStore
focal_class.var_name: documentNodeStore
focal_class.declarator: oakRegs = Lists.newArrayList()
focal_class.modifier: private final
focal_class.original_string: private final List<Registration> oakRegs = Lists.newArrayList();
focal_class.type: List<Registration>
focal_class.var_name: oakRegs
focal_class.declarator: regs = Lists.newArrayList()
focal_class.modifier: private final
focal_class.original_string: private final List<ServiceRegistration> regs = Lists.newArrayList();
focal_class.type: List<ServiceRegistration>
focal_class.var_name: regs
focal_class.declarator: whiteboard
focal_class.modifier: private
focal_class.original_string: private Whiteboard whiteboard;
focal_class.type: Whiteboard
focal_class.var_name: whiteboard
focal_class.declarator: bundleContext
focal_class.modifier: private
focal_class.original_string: private BundleContext bundleContext;
focal_class.type: BundleContext
focal_class.var_name: bundleContext
focal_class.declarator: pathFilter
focal_class.modifier: private
focal_class.original_string: private PathFilter pathFilter;
focal_class.type: PathFilter
focal_class.var_name: pathFilter
focal_class.declarator: differ = new MultiplexingNodeStateDiffer()
focal_class.modifier: private final
focal_class.original_string: private final MultiplexingNodeStateDiffer differ = new MultiplexingNodeStateDiffer();
focal_class.type: MultiplexingNodeStateDiffer
focal_class.var_name: differ
focal_class.file: oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheService.java
focal_class.identifier: SecondaryStoreCacheService
focal_class.class_method_signature: SecondaryStoreCacheService.activate(BundleContext context, Configuration config)
focal_class.full_signature: @Activate private void activate(BundleContext context, Configuration config)
focal_class.identifier: activate
focal_class.modifiers: @Activate private
focal_class.parameters: (BundleContext context, Configuration config)
focal_class.return: void
focal_class.signature: void activate(BundleContext context, Configuration config)
focal_class.class_method_signature: SecondaryStoreCacheService.deactivate()
focal_class.full_signature: @Deactivate private void deactivate()
focal_class.identifier: deactivate
focal_class.modifiers: @Deactivate private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void deactivate()
focal_class.class_method_signature: SecondaryStoreCacheService.getPathFilter()
focal_class.full_signature:  PathFilter getPathFilter()
focal_class.identifier: getPathFilter
focal_class.parameters: ()
focal_class.return: PathFilter
focal_class.signature: PathFilter getPathFilter()
focal_class.class_method_signature: SecondaryStoreCacheService.bindDocumentNodeStore(DocumentNodeStore documentNodeStore)
focal_class.full_signature: protected void bindDocumentNodeStore(DocumentNodeStore documentNodeStore)
focal_class.identifier: bindDocumentNodeStore
focal_class.modifiers: protected
focal_class.parameters: (DocumentNodeStore documentNodeStore)
focal_class.return: void
focal_class.signature: void bindDocumentNodeStore(DocumentNodeStore documentNodeStore)
focal_class.class_method_signature: SecondaryStoreCacheService.unbindDocumentNodeStore(DocumentNodeStore documentNodeStore)
focal_class.full_signature: protected void unbindDocumentNodeStore(DocumentNodeStore documentNodeStore)
focal_class.identifier: unbindDocumentNodeStore
focal_class.modifiers: protected
focal_class.parameters: (DocumentNodeStore documentNodeStore)
focal_class.return: void
focal_class.signature: void unbindDocumentNodeStore(DocumentNodeStore documentNodeStore)
focal_class.class_method_signature: SecondaryStoreCacheService.registerObserver(Observer observer, Configuration config)
focal_class.full_signature: private void registerObserver(Observer observer, Configuration config)
focal_class.identifier: registerObserver
focal_class.modifiers: private
focal_class.parameters: (Observer observer, Configuration config)
focal_class.return: void
focal_class.signature: void registerObserver(Observer observer, Configuration config)
focal_method.body: @Activate
      private void activate(BundleContext context, Configuration config){
          bundleContext = context;
          whiteboard = new OsgiWhiteboard(context);
          String[] includedPaths = config.includedPaths();
  
          //TODO Support for exclude is not possible as once a NodeState is loaded from secondary
          //store it assumes that complete subtree is in same store. With exclude it would need to
          //check for each child access and route to primary
          pathFilter = new PathFilter(asList(includedPaths), Collections.<String>emptyList());
  
          SecondaryStoreBuilder builder = new SecondaryStoreBuilder(secondaryStoreProvider.getNodeStore())
                  .differ(differ)
                  .metaPropNames(DocumentNodeStore.META_PROP_NAMES)
                  .statisticsProvider(statisticsProvider)
                  .pathFilter(pathFilter);
          SecondaryStoreCache cache = builder.buildCache();
          SecondaryStoreObserver observer = builder.buildObserver(cache);
          registerObserver(observer, config);
  
          regs.add(bundleContext.registerService(DocumentNodeStateCache.class.getName(), cache, null));
  
          //TODO Need to see OSGi dynamics. Its possible that DocumentNodeStore works after the cache
          //gets deregistered but the SegmentNodeState instances might still be in use and that would cause
          //failure
      }
focal_method.class_method_signature: SecondaryStoreCacheService.activate(BundleContext context, Configuration config)
focal_method.full_signature: @Activate private void activate(BundleContext context, Configuration config)
focal_method.identifier: activate
focal_method.invocations: includedPaths asList emptyList pathFilter statisticsProvider metaPropNames differ getNodeStore buildCache buildObserver registerObserver add registerService getName
focal_method.modifiers: @Activate private
focal_method.parameters: (BundleContext context, Configuration config)
focal_method.return: void
focal_method.signature: void activate(BundleContext context, Configuration config)