Package org.infinispan.factories
Class AbstractComponentRegistry
- java.lang.Object
-
- org.infinispan.factories.AbstractComponentRegistry
-
- Direct Known Subclasses:
ComponentRegistry
,GlobalComponentRegistry
@Deprecated public abstract class AbstractComponentRegistry extends Object implements Lifecycle, Cloneable
Deprecated.Since 9.4, please useBasicComponentRegistry
instead.A registry where components which have been created are stored. Components are stored as singletons, registered under a specific name. Components can be retrieved from the registry usinggetComponent(Class)
. Components can be registered usingregisterComponent(Object, Class)
, which will cause any dependencies to be wired in as well. Components that need to be created as a result of wiring will be done usinggetOrCreateComponent(Class)
, which will look up the default factory for the component type (factories annotated with the appropriateDefaultFactoryFor
annotation. Default factories are treated as components too and will need to be wired before being used. The registry can exist in one of several states, as defined by theComponentStatus
enumeration. In terms of the cache, state changes in the following manner:- INSTANTIATED - when first constructed
- CONSTRUCTED - when created using the DefaultCacheFactory
- STARTED - when
Lifecycle.start()
is called - STOPPED - when
Cache.stop()
is called
ComponentStatus.RUNNING
state. Thread Safety: instances ofGlobalComponentRegistry
can be concurrently updated so all the write operations are serialized through class intrinsic lock.- Since:
- 4.0
- Author:
- Manik Surtani, Galder ZamarreƱo
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
AbstractComponentRegistry.Component
Deprecated.A wrapper representing a component in the registry
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEBUG_DEPENDENCIES
Deprecated.protected ComponentStatus
state
Deprecated.
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractComponentRegistry(ComponentMetadataRepo componentMetadataRepo, ClassLoader classLoader, Scopes scope, org.infinispan.factories.impl.BasicComponentRegistry nextBasicComponentRegistry)
Deprecated.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
addShutdownHook()
Deprecated.AbstractComponentRegistry
clone()
Deprecated.protected AbstractComponentFactory
createComponentFactoryInternal(Class<?> componentClass, String cfClass)
Deprecated.protected abstract ClassLoader
getClassLoader()
Deprecated.<T> T
getComponent(Class<T> type)
Deprecated.Retrieves a component of a specified type from the registry, or null if it cannot be found.<T> T
getComponent(Class<T> componentClass, String name)
Deprecated.<T> T
getComponent(String componentClassName)
Deprecated.<T> T
getComponent(String componentClassName, String name)
Deprecated.<T> T
getComponent(String componentClassName, String name, boolean nameIsFQCN)
Deprecated.abstract ComponentMetadataRepo
getComponentMetadataRepo()
Deprecated.protected Configuration
getConfiguration()
Deprecated.Retrieves the configuration component.protected AbstractComponentFactory
getFactory(Class<?> componentClass)
Deprecated.Retrieves a component factory instance capable of constructing components of a specified type.protected abstract org.infinispan.util.logging.Log
getLog()
Deprecated.<T> Optional<T>
getOptionalComponent(Class<T> type)
Deprecated.protected <T> T
getOrCreateComponent(Class<T> componentClass)
Deprecated.Retrieves a component if one exists, and if not, attempts to find a factory capable of constructing the component (factories annotated with theDefaultFactoryFor
annotation that is capable of creating the component class).protected <T> T
getOrCreateComponent(Class<T> componentClass, String name)
Deprecated.protected <T> T
getOrCreateComponent(Class<T> componentClass, String name, boolean nameIsFQCN)
Deprecated.Set<AbstractComponentRegistry.Component>
getRegisteredComponents()
Deprecated.Returns an immutable set containing all the components that exists in the repository at this moment.ComponentStatus
getStatus()
Deprecated.Retrieves the state of the registryabstract TimeService
getTimeService()
Deprecated.protected AbstractComponentRegistry.Component
lookupComponent(String componentClassName, String componentName, boolean nameIsFQCN)
Deprecated.protected abstract void
postStart()
Deprecated.protected abstract void
postStop()
Deprecated.protected abstract void
preStart()
Deprecated.protected abstract void
preStop()
Deprecated.void
registerComponent(Object component, Class<?> type)
Deprecated.Registers a component in the registry under the given type, and injects any dependencies needed.void
registerComponent(Object component, String name)
Deprecated.void
registerComponent(Object component, String name, boolean nameIsFQCN)
Deprecated.protected void
registerComponentInternal(Object component, String name, boolean nameIsFQCN)
Deprecated.protected ClassLoader
registerDefaultClassLoader(ClassLoader loader)
Deprecated.Since 9.4, not usedprotected void
registerNonVolatileComponent(Object component, Class<?> type)
Deprecated.protected void
registerNonVolatileComponent(Object component, String name)
Deprecated.protected void
registerNullComponent(String name)
Deprecated.registers a special "null" component that has no dependencies.protected void
removeShutdownHook()
Deprecated.void
resetVolatileComponents()
Deprecated.Removes any components not annotated as @SurvivesRestarts.void
rewire()
Deprecated.Rewires components.void
start()
Deprecated.This starts the components in the registry, connecting to channels, starting service threads, etc.void
stop()
Deprecated.Stops the component and sets its status toComponentStatus.TERMINATED
once it is done.protected void
throwStackAwareConfigurationException(String message)
Deprecated.void
wireDependencies(Object target)
Deprecated.Wires an object instance with dependencies annotated with theInject
annotation, creating more components as needed based on the Configuration passed in if these additional components don't exist in theComponentRegistry
.
-
-
-
Field Detail
-
DEBUG_DEPENDENCIES
public static final boolean DEBUG_DEPENDENCIES
Deprecated.- See Also:
- Constant Field Values
-
state
protected volatile ComponentStatus state
Deprecated.
-
-
Constructor Detail
-
AbstractComponentRegistry
protected AbstractComponentRegistry(ComponentMetadataRepo componentMetadataRepo, ClassLoader classLoader, Scopes scope, org.infinispan.factories.impl.BasicComponentRegistry nextBasicComponentRegistry)
Deprecated.
-
-
Method Detail
-
getStatus
public ComponentStatus getStatus()
Deprecated.Retrieves the state of the registry- Returns:
- state of the registry
-
getClassLoader
protected abstract ClassLoader getClassLoader()
Deprecated.
-
getLog
protected abstract org.infinispan.util.logging.Log getLog()
Deprecated.
-
getComponentMetadataRepo
public abstract ComponentMetadataRepo getComponentMetadataRepo()
Deprecated.
-
wireDependencies
public void wireDependencies(Object target) throws CacheConfigurationException
Deprecated.Wires an object instance with dependencies annotated with theInject
annotation, creating more components as needed based on the Configuration passed in if these additional components don't exist in theComponentRegistry
. Strictly for components that don't otherwise live in the registry and have a lifecycle, such as Commands.- Parameters:
target
- object to wire- Throws:
CacheConfigurationException
- if there is a problem wiring the instance
-
registerComponent
public final void registerComponent(Object component, Class<?> type)
Deprecated.Registers a component in the registry under the given type, and injects any dependencies needed. Note: Until 9.4, if a component of this type already existed, it was overwritten.- Parameters:
component
- component to registertype
- type of component- Throws:
CacheConfigurationException
- If a component is already registered with that name, or if a dependency cannot be resolved
-
registerComponent
public final void registerComponent(Object component, String name, boolean nameIsFQCN)
Deprecated.
-
registerNonVolatileComponent
protected final void registerNonVolatileComponent(Object component, String name)
Deprecated.
-
registerNonVolatileComponent
protected final void registerNonVolatileComponent(Object component, Class<?> type)
Deprecated.
-
registerComponentInternal
protected void registerComponentInternal(Object component, String name, boolean nameIsFQCN)
Deprecated.
-
getOrCreateComponent
protected <T> T getOrCreateComponent(Class<T> componentClass)
Deprecated.Retrieves a component if one exists, and if not, attempts to find a factory capable of constructing the component (factories annotated with theDefaultFactoryFor
annotation that is capable of creating the component class). If an instance needs to be constructed, dependencies are then automatically wired into the instance, based on methods on the component type annotated withInject
. Summing it up, component retrieval happens in the following order:
1. Look for a component that has already been created and registered. 2. Look for an appropriate component that exists in theConfiguration
that may be injected from an external system. 3. Look for a class definition passed in to theConfiguration
- such as an EvictionPolicy implementation 4. Attempt to create it by looking for an appropriate factory (annotated withDefaultFactoryFor
)- Parameters:
componentClass
- type of component to be retrieved. Should not be null.- Returns:
- a fully wired component instance, or null if one cannot be found or constructed.
- Throws:
CacheConfigurationException
- if there is a problem with constructing or wiring the instance.
-
getOrCreateComponent
protected <T> T getOrCreateComponent(Class<T> componentClass, String name)
Deprecated.
-
getOrCreateComponent
protected <T> T getOrCreateComponent(Class<T> componentClass, String name, boolean nameIsFQCN)
Deprecated.
-
getFactory
protected AbstractComponentFactory getFactory(Class<?> componentClass)
Deprecated.Retrieves a component factory instance capable of constructing components of a specified type. If the factory doesn't exist in the registry, one is created.- Parameters:
componentClass
- type of component to construct- Returns:
- component factory capable of constructing such components
-
createComponentFactoryInternal
protected AbstractComponentFactory createComponentFactoryInternal(Class<?> componentClass, String cfClass)
Deprecated.
-
lookupComponent
protected AbstractComponentRegistry.Component lookupComponent(String componentClassName, String componentName, boolean nameIsFQCN)
Deprecated.
-
registerNullComponent
protected final void registerNullComponent(String name)
Deprecated.registers a special "null" component that has no dependencies.- Parameters:
name
- name of component to register as a null
-
getConfiguration
protected Configuration getConfiguration()
Deprecated.Retrieves the configuration component.- Returns:
- a Configuration object
-
getComponent
public <T> T getComponent(Class<T> type)
Deprecated.Retrieves a component of a specified type from the registry, or null if it cannot be found.- Parameters:
type
- type to find- Returns:
- component, or null
-
getComponent
public <T> T getComponent(String componentClassName)
Deprecated.
-
getComponent
public <T> T getComponent(String componentClassName, String name, boolean nameIsFQCN)
Deprecated.
-
registerDefaultClassLoader
protected ClassLoader registerDefaultClassLoader(ClassLoader loader)
Deprecated.Since 9.4, not used
-
rewire
public void rewire()
Deprecated.Rewires components. Used to rewire components in the CR if a cache has been stopped (moved to state TERMINATED), which would (almost) empty the registry of components. Rewiring will re-inject all dependencies so that the cache can be started again.
-
resetVolatileComponents
public void resetVolatileComponents()
Deprecated.Removes any components not annotated as @SurvivesRestarts.
-
start
public void start()
Deprecated.This starts the components in the registry, connecting to channels, starting service threads, etc. If the component is not in theComponentStatus.INITIALIZING
state, it will be initialized first.
-
preStart
protected abstract void preStart()
Deprecated.
-
postStart
protected abstract void postStart()
Deprecated.
-
stop
public final void stop()
Deprecated.Stops the component and sets its status toComponentStatus.TERMINATED
once it is done. If the component is not in theComponentStatus.RUNNING
state, this is a no-op.
-
postStop
protected abstract void postStop()
Deprecated.
-
preStop
protected abstract void preStop()
Deprecated.
-
addShutdownHook
protected void addShutdownHook()
Deprecated.
-
removeShutdownHook
protected void removeShutdownHook()
Deprecated.
-
getRegisteredComponents
public Set<AbstractComponentRegistry.Component> getRegisteredComponents()
Deprecated.Returns an immutable set containing all the components that exists in the repository at this moment.- Returns:
- a set of components
-
clone
public AbstractComponentRegistry clone() throws CloneNotSupportedException
Deprecated.- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
getTimeService
public abstract TimeService getTimeService()
Deprecated.
-
throwStackAwareConfigurationException
protected void throwStackAwareConfigurationException(String message)
Deprecated.
-
-