Interface PluginRegistry


  • public interface PluginRegistry
    Interface for getting and configuring plugins
    • Method Detail

      • createPluggableService

        <T> PluggableProviderService<T> createPluggableService​(java.lang.Class<T> type)
        Create PluggableProviderService for plugin type that doesn't require Framework
        Type Parameters:
        T -
        Parameters:
        type -
        Returns:
      • isFrameworkDependentPluginType

        <T> boolean isFrameworkDependentPluginType​(java.lang.Class<T> type)
        Test if a type requires framework argument for plugin provider service
        Type Parameters:
        T - type
        Parameters:
        type - type
        Returns:
        true if the plugin type is a core framework plugin type
      • getFrameworkDependentPluggableService

        <T> PluggableProviderService<T> getFrameworkDependentPluggableService​(java.lang.Class<T> type,
                                                                              Framework framework)
        get a PluggablePRoviderService for a core plugin type that requires Framework
        Type Parameters:
        T -
        Parameters:
        type -
        framework -
        Returns:
      • configurePluginByName

        <T> ConfiguredPlugin<T> configurePluginByName​(java.lang.String name,
                                                      PluggableProviderService<T> service,
                                                      java.util.Map configuration)
        Create and configure a plugin instance with the given bean or provider name
        Parameters:
        name - name of bean or provider
        service - provider service
        configuration - map of configuration data
        Returns:
        Map of [instance: plugin instance, configuration: resolved configuration properties]
      • configurePluginByName

        <T> ConfiguredPlugin<T> configurePluginByName​(java.lang.String name,
                                                      PluggableProviderService<T> service,
                                                      IFramework framework,
                                                      java.lang.String project,
                                                      java.util.Map instanceConfiguration)
        Create and configure a plugin instance with the given bean or provider name, resolving properties via the framework and specified project properties as well as instance configuration.
        Parameters:
        name - name of bean or provider
        service - provider service
        framework - framework
        project - project name or null
        instanceConfiguration - configuration or null
        Returns:
        Map of [instance: plugin instance, configuration: resolved configuration properties]
      • retainConfigurePluginByName

        <T> ConfiguredPlugin<T> retainConfigurePluginByName​(java.lang.String name,
                                                            PluggableProviderService<T> service,
                                                            PropertyResolver resolver,
                                                            PropertyScope defaultScope)
        Create and configure a plugin instance with the given bean or provider name using a property resolver and a default property scope, retain the instance to prevent unloading it
        Parameters:
        name - name of bean or provider
        service - provider service
        resolver - a property resolver
        defaultScope - default scope to search for property values when undeclared
        Returns:
        ConfiguredPlugin with a closeable reference to release the plugin
      • retainConfigurePluginByName

        <T> ConfiguredPlugin<T> retainConfigurePluginByName​(java.lang.String name,
                                                            PluggableProviderService<T> service,
                                                            PropertyResolverFactory.Factory resolverFactory,
                                                            PropertyScope defaultScope)
        Create and configure a plugin instance with the given bean or provider name using a property resolver and a default property scope, retain the instance to prevent unloading it
        Parameters:
        name - name of bean or provider
        service - provider service
        resolverFactory - a property resolver factory
        defaultScope - default scope to search for property values when undeclared
        Returns:
        ConfiguredPlugin with a closeable reference to release the plugin
      • getPluginConfigurationByName

        <T> java.util.Map<java.lang.String,​java.lang.Object> getPluginConfigurationByName​(java.lang.String name,
                                                                                                PluggableProviderService<T> service,
                                                                                                PropertyResolver resolver,
                                                                                                PropertyScope defaultScope)
        Return the mapped configuration properties for the plugin
        Parameters:
        name - name of bean or provider
        service - provider service
        resolver - a property resolver
        defaultScope - default scope to search for property values when undeclared
        Returns:
        Map of [instance: plugin instance, configuration: resolved configuration properties]
      • getPluginConfigurationByName

        <T> java.util.Map<java.lang.String,​java.lang.Object> getPluginConfigurationByName​(java.lang.String name,
                                                                                                PluggableProviderService<T> service,
                                                                                                PropertyResolverFactory.Factory resolver,
                                                                                                PropertyScope defaultScope)
        Return the mapped configuration properties for the plugin
        Parameters:
        name - name of bean or provider
        service - provider service
        resolver - a property resolver
        defaultScope - default scope to search for property values when undeclared
        Returns:
        Map of [instance: plugin instance, configuration: resolved configuration properties]
      • validatePluginByName

        ValidatedPlugin validatePluginByName​(java.lang.String name,
                                             PluggableProviderService service,
                                             PropertyResolver resolver,
                                             PropertyScope defaultScope)
        Validate a provider for a service using a property resolver and a default property scope
        Parameters:
        name - name of bean or provider
        service - provider service
        resolver - a property resolver
        defaultScope - default scope to search for property values when undeclared
        Returns:
        Map containing valid:true/false, and report: Validator.Report
      • validatePluginByName

        ValidatedPlugin validatePluginByName​(java.lang.String name,
                                             PluggableProviderService service,
                                             PropertyResolverFactory.Factory resolverFactory,
                                             PropertyScope defaultScope)
        Validate a provider for a service using a property resolver and a default property scope
        Parameters:
        name - name of bean or provider
        service - provider service
        resolver - a property resolver
        defaultScope - default scope to search for property values when undeclared
        Returns:
        Map containing valid:true/false, and report: Validator.Report
      • validatePluginByName

        ValidatedPlugin validatePluginByName​(java.lang.String name,
                                             PluggableProviderService service,
                                             PropertyResolverFactory.Factory resolverFactory,
                                             PropertyScope defaultScope,
                                             PropertyScope ignoredScope)
        Validate a provider for a service using a property resolver and a default property scope
        Parameters:
        name - name of bean or provider
        service - provider service
        resolver - a property resolver
        defaultScope - default scope to search for property values when undeclared
        Returns:
        Map containing valid:true/false, and report: Validator.Report
      • validatePluginByName

        ValidatedPlugin validatePluginByName​(java.lang.String name,
                                             PluggableProviderService service,
                                             PropertyResolver resolver,
                                             PropertyScope defaultScope,
                                             PropertyScope ignoredScope)
        Validate a provider for a service using a property resolver and a default property scope, and an ignoredScope
        Parameters:
        name - name of bean or provider
        service - provider service
        resolver - a property resolver
        defaultScope - default scope to search for property values when undeclared
        Returns:
        Map containing valid:true/false, and report: Validator.Report
      • validatePluginByName

        ValidatedPlugin validatePluginByName​(java.lang.String name,
                                             PluggableProviderService service,
                                             IFramework framework,
                                             java.lang.String project,
                                             java.util.Map instanceConfiguration)
        Validate a provider for a service using the framework, project name and instance configuration map
        Parameters:
        name - name of bean or provider
        service - provider service
        framework - the framework
        project - the project name
        instanceConfiguration - config map
        Returns:
        Map containing valid:true/false, and report: Validator.Report
      • validatePluginByName

        ValidatedPlugin validatePluginByName​(java.lang.String name,
                                             PluggableProviderService service,
                                             java.util.Map instanceConfiguration)
        Validate a provider for a service with an instance configuration
        Parameters:
        name - name of bean or provider
        service - provider service
        instanceConfiguration - config map
        Returns:
        Map containing valid:true/false, and report: Validator.Report
      • validatePluginByName

        ValidatedPlugin validatePluginByName​(java.lang.String name,
                                             PluggableProviderService service,
                                             java.util.Map instanceConfiguration,
                                             PropertyScope ignoredScope)
        Validate a provider for a service with an instance configuration
        Parameters:
        name - name of bean or provider
        service - provider service
        instanceConfiguration - config map
        ignoredScope - scope to ignore
        Returns:
        Map containing valid:true/false, and report: Validator.Report
      • loadPluginByName

        <T> T loadPluginByName​(java.lang.String name,
                               PluggableProviderService<T> service)
        Load a plugin instance with the given bean or provider name
        Parameters:
        name - name of bean or provider
        service - provider service
        Returns:
      • loadPluginDescriptorByName

        <T> DescribedPlugin<T> loadPluginDescriptorByName​(java.lang.String name,
                                                          PluggableProviderService<T> service)
        Load a plugin instance with the given bean or provider name
        Parameters:
        name - name of bean or provider
        service - provider service
        Returns:
        map containing [instance:(plugin instance), description: (map or Description),
      • listPlugins

        <T> java.util.Map<java.lang.String,​java.lang.Object> listPlugins​(java.lang.Class groovyPluginType,
                                                                               PluggableProviderService<T> service)
        List all plugin type definitions that are either ServiceProvider plugins of the given service name, or are groovy plugins of the given type
        Parameters:
        groovyPluginType -
        Returns:
      • listPluginDescriptors

        <T> java.util.Map<java.lang.String,​DescribedPlugin<T>> listPluginDescriptors​(java.lang.Class groovyPluginType,
                                                                                           PluggableProviderService<T> service)
        List all plugin type definitions that are either ServiceProvider plugins of the given service name, or are groovy plugins of the given type
        Parameters:
        groovyPluginType -
        Returns:
      • registerPlugin

        void registerPlugin​(java.lang.String type,
                            java.lang.String name,
                            java.lang.String beanName)
        Register a plugin into map using type and name as key to load it when requested
        Parameters:
        type -
        name -
        beanName -
      • hasRegisteredPlugin

        boolean hasRegisteredPlugin​(java.lang.String type,
                                    java.lang.String name)
        Parameters:
        type -
        name -
        Returns:
        true if the plugin was registered