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 Modifier and Type Method Description ComponentMetadata
findComponentMetadata(Class<?> componentType)
Locates metadata for a given component type if registered.ComponentMetadata
findComponentMetadata(String componentName)
Locates metadata for a given component type if registered.String
findFactoryForComponent(Class<?> componentType)
Locates the fully qualified class name of a factory capable of constructing an instance ofboolean
hasFactory(String name)
void
initialize(Iterable<ModuleMetadataFileFinder> moduleMetadataFiles, ClassLoader cl)
Initializes this repository.void
injectFactoryForComponent(Class<?> componentType, Class<?> factoryType)
Inject a factory for a given component type.void
readMetadata(URL metadataFile)
-
-
-
Method Detail
-
readMetadata
public void readMetadata(URL metadataFile) throws IOException, ClassNotFoundException
- Throws:
IOException
ClassNotFoundException
-
findComponentMetadata
public ComponentMetadata findComponentMetadata(Class<?> componentType)
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
public ComponentMetadata findComponentMetadata(String componentName)
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
-
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.
-
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
public void injectFactoryForComponent(Class<?> componentType, Class<?> factoryType)
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)
-
-