Package com.dtolabs.rundeck.core.plugins
Interface PluginRegistry
-
public interface PluginRegistry
Interface for getting and configuring plugins
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <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.<T> ConfiguredPlugin<T>
configurePluginByName(java.lang.String name, PluggableProviderService<T> service, PropertyResolverFactory.Factory resolverFactory, PropertyScope defaultScope)
<T> ConfiguredPlugin<T>
configurePluginByName(java.lang.String name, PluggableProviderService<T> service, PropertyResolver resolver, PropertyScope defaultScope)
<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<T> PluggableProviderService<T>
createPluggableService(java.lang.Class<T> type)
Create PluggableProviderService for plugin type that doesn't require Framework<T> PluggableProviderService<T>
getFrameworkDependentPluggableService(java.lang.Class<T> type, Framework framework)
get a PluggablePRoviderService for a core plugin type that requires Framework<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<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 pluginPluginMetadata
getPluginMetadata(java.lang.String service, java.lang.String provider)
Return plugin file metadataPluginResourceLoader
getResourceLoader(java.lang.String service, java.lang.String provider)
Return plugin resource loaderboolean
hasRegisteredPlugin(java.lang.String type, java.lang.String name)
<T> boolean
isFrameworkDependentPluginType(java.lang.Class<T> type)
Test if a type requires framework argument for plugin provider service<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<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<T> T
loadPluginByName(java.lang.String name, PluggableProviderService<T> service)
Load a plugin instance with the given bean or provider name<T> DescribedPlugin<T>
loadPluginDescriptorByName(java.lang.String name, PluggableProviderService<T> service)
Load a plugin instance with the given bean or provider namevoid
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<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<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<T> CloseableProvider<T>
retainPluginByName(java.lang.String name, PluggableProviderService<T> service)
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 mapValidatedPlugin
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 scopeValidatedPlugin
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 scopeValidatedPlugin
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 scopeValidatedPlugin
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 ignoredScopeValidatedPlugin
validatePluginByName(java.lang.String name, PluggableProviderService service, java.util.Map instanceConfiguration)
Validate a provider for a service with an instance configurationValidatedPlugin
validatePluginByName(java.lang.String name, PluggableProviderService service, java.util.Map instanceConfiguration, PropertyScope ignoredScope)
Validate a provider for a service with an instance configuration
-
-
-
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 providerservice
- provider serviceconfiguration
- 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 providerservice
- provider serviceframework
- frameworkproject
- project name or nullinstanceConfiguration
- configuration or null- Returns:
- Map of [instance: plugin instance, configuration: resolved configuration properties]
-
configurePluginByName
<T> ConfiguredPlugin<T> configurePluginByName(java.lang.String name, PluggableProviderService<T> service, PropertyResolverFactory.Factory resolverFactory, PropertyScope defaultScope)
- Type Parameters:
T
-- Parameters:
name
-service
-resolverFactory
-defaultScope
-- Returns:
-
configurePluginByName
<T> ConfiguredPlugin<T> configurePluginByName(java.lang.String name, PluggableProviderService<T> service, PropertyResolver resolver, PropertyScope defaultScope)
-
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 providerservice
- provider serviceresolver
- a property resolverdefaultScope
- 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 providerservice
- provider serviceresolverFactory
- a property resolver factorydefaultScope
- 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 providerservice
- provider serviceresolver
- a property resolverdefaultScope
- 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 providerservice
- provider serviceresolver
- a property resolverdefaultScope
- 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 providerservice
- provider serviceresolver
- a property resolverdefaultScope
- 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 providerservice
- provider serviceresolver
- a property resolverdefaultScope
- 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 providerservice
- provider serviceresolver
- a property resolverdefaultScope
- 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 providerservice
- provider serviceresolver
- a property resolverdefaultScope
- 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 providerservice
- provider serviceframework
- the frameworkproject
- the project nameinstanceConfiguration
- 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 providerservice
- provider serviceinstanceConfiguration
- 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 providerservice
- provider serviceinstanceConfiguration
- config mapignoredScope
- 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 providerservice
- provider service- Returns:
-
retainPluginByName
<T> CloseableProvider<T> retainPluginByName(java.lang.String name, PluggableProviderService<T> service)
-
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 providerservice
- 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:
-
getResourceLoader
PluginResourceLoader getResourceLoader(java.lang.String service, java.lang.String provider) throws ProviderLoaderException
Return plugin resource loader- Parameters:
service
-provider
-- Returns:
- Throws:
ProviderLoaderException
-
getPluginMetadata
PluginMetadata getPluginMetadata(java.lang.String service, java.lang.String provider) throws ProviderLoaderException
Return plugin file metadata- Parameters:
service
-provider
-- Returns:
- Throws:
ProviderLoaderException
-
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
-
-