Class ComponentMetadataRepo
- java.lang.Object
-
- org.infinispan.factories.components.ComponentMetadataRepo
-
public class ComponentMetadataRepo extends Object
This is a repository of component metadata, which is populated when the Infinispan core jar is loaded up. Actual metadata is analyzed and persisted into the jar at build-time, taking it off the critical path.- Since:
- 5.1
- Author:
- Manik Surtani
- See Also:
ComponentMetadata
-
-
Constructor Summary
Constructors Constructor Description ComponentMetadataRepo()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ComponentMetadata
findComponentMetadata(Class<?> componentType)
Deprecated.Since 9.4, please usefindComponentMetadata(String)
instead.ComponentMetadata
findComponentMetadata(String componentName)
Deprecated.Since 9.4, please usefindComponentMetadata(String)
instead.String
findFactoryForComponent(Class<?> componentType)
Locates the fully qualified class name of a factory capable of constructing an instance ofString
findFactoryForComponent(String componentName)
Locates the fully qualified class name of a factory capable of constructing an instance ofComponentMetadata
getComponentMetadata(Class<?> componentClass)
Look up metadata for a component class.boolean
hasFactory(String name)
void
initialize(Iterable<ModuleMetadataFileFinder> moduleMetadataFiles, ClassLoader cl)
Initializes this repository.void
injectFactoryForComponent(Class<?> componentType, Class<?> factoryType)
Deprecated.For testing purposes only.void
readMetadata(URL metadataFile)
-
-
-
Method Detail
-
readMetadata
public void readMetadata(URL metadataFile) throws IOException, ClassNotFoundException
- Throws:
IOException
ClassNotFoundException
-
findComponentMetadata
@Deprecated public ComponentMetadata findComponentMetadata(Class<?> componentType)
Deprecated.Since 9.4, please usefindComponentMetadata(String)
instead.Locates metadata for a given component type if registered. If not registered, superclasses/interfaces are consulted, until, finally, an empty instance ofComponentMetadata
is returned effectively declaring that the component has no dependencies or any lifecycle methods declared.- Parameters:
componentType
- component type to look for- Returns:
- metadata expressed as a ComponentMetadata instance
-
findComponentMetadata
@Deprecated public ComponentMetadata findComponentMetadata(String componentName)
Deprecated.Since 9.4, please usefindComponentMetadata(String)
instead.Locates metadata for a given component type if registered. If not registered, a null is returned.- Parameters:
componentName
- name of component type to look for- Returns:
- metadata expressed as a ComponentMetadata instance, or null
-
getComponentMetadata
public ComponentMetadata getComponentMetadata(Class<?> componentClass)
Look up metadata for a component class.If the class does not have any metadata, tries to look up the metadata of its superclasses. This is needed for mocks and other classes generated at runtime.
Do not use for looking up the metadata of an interface, e.g. to determine the scope of a component that doesn't exist.
-
findFactoryForComponent
public String findFactoryForComponent(Class<?> componentType)
Locates the fully qualified class name of a factory capable of constructing an instance ofcomponentType
. Typically this is a factory annotated withDefaultFactoryFor
.- Parameters:
componentType
- component to create- Returns:
- a factory, or null if not found.
-
findFactoryForComponent
public String findFactoryForComponent(String componentName)
Locates the fully qualified class name of a factory capable of constructing an instance ofcomponentType
. Typically this is a factory annotated withDefaultFactoryFor
.- Parameters:
componentName
- component to create- Returns:
- a factory, or null if not found.
-
initialize
public void initialize(Iterable<ModuleMetadataFileFinder> moduleMetadataFiles, ClassLoader cl)
Initializes this repository. The Iterable passed in should contain allModuleMetadataFileFinder
instances for all loaded Infinispan modules. Note that the core module is always loaded and need not be contained in this iterable.- Parameters:
moduleMetadataFiles
- file finders to iterate through and load into the repository
-
injectFactoryForComponent
@Deprecated public void injectFactoryForComponent(Class<?> componentType, Class<?> factoryType)
Deprecated.For testing purposes only.Inject a factory for a given component type.- Parameters:
componentType
- Component type that the factory will producefactoryType
- Factory that produces the given type of components
-
hasFactory
public boolean hasFactory(String name)
-
-