Class SharedResourceManager

java.lang.Object
org.apache.bookkeeper.common.util.SharedResourceManager

public class SharedResourceManager extends Object
A holder for shared resource singletons.

Components like clients and servers need certain resources, e.g. a scheduler, to run. If the user has not provided such resources, these components will use a default one, which is shared as a static resource. This class holds these default resources and manages their lifecycles.

A resource is identified by the reference of a SharedResourceManager.Resource object, which is typically a singleton, provided to the get() and release() methods. Each resource object (not its class) maps to an object cached in the holder.

Resources are ref-counted and shut down after a delay when the refcount reaches zero.