Class 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 Detail

      • ComponentMetadataRepo

        public ComponentMetadataRepo()
    • Method Detail

      • 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 of ComponentMetadata 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 of
        componentType
        . Typically this is a factory annotated with DefaultFactoryFor.
        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 all ModuleMetadataFileFinder 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 produce
        factoryType - Factory that produces the given type of components
      • hasFactory

        public boolean hasFactory​(String name)