com.dtolabs.rundeck.core.plugins
Class AbstractDescribableScriptPlugin

java.lang.Object
  extended by com.dtolabs.rundeck.core.plugins.AbstractDescribableScriptPlugin
All Implemented Interfaces:
Describable
Direct Known Subclasses:
BaseScriptPlugin

public abstract class AbstractDescribableScriptPlugin
extends java.lang.Object
implements Describable

AbstractDescribableScriptPlugin is a base ScriptPlugin provider implementation that can be used to provide a describable interface for a script plugin. The description provided by the base implementation is configured by the ScriptPluginProvider's metadata:

     title = Title of the Plugin
     description = Description of the plugin
 
     config.X.PROPERTY_TYPE = Type name of the property, from Property.Type
     config.X.name = Name of the property (key string)
     config.X.title = Title of the property
     config.X.description = description of the property
     config.X.required = true/false, if the property is required.
     config.X.default = default string of the property
     config.X.values = comma-separated values list for Select or FreeSelect properties
     config.X.scope = scope of the property, from PropertyScope
 


Field Summary
static java.lang.String CONFIG_DEFAULT
           
static java.lang.String CONFIG_DESCRIPTION
           
static java.lang.String CONFIG_NAME
           
static java.lang.String CONFIG_PROP_PREFIX
           
static java.lang.String CONFIG_RENDERING_OPTIONS
           
static java.lang.String CONFIG_REQUIRED
           
static java.lang.String CONFIG_SCOPE
           
static java.lang.String CONFIG_TITLE
           
static java.lang.String CONFIG_TYPE
           
static java.lang.String CONFIG_VALUES
           
static java.lang.String DESCRIPTION_PROP
           
static java.lang.String TITLE_PROP
           
 
Constructor Summary
AbstractDescribableScriptPlugin(ScriptPluginProvider provider, Framework framework)
           
 
Method Summary
protected static void createDescription(ScriptPluginProvider provider, boolean allowCustomProperties, boolean useConventionalPropertiesMapping, DescriptionBuilder builder)
           
protected static void createDescription(ScriptPluginProvider provider, boolean allowCustomProperties, DescriptionBuilder builder)
           
 java.util.Map<java.lang.String,java.lang.String> createPluginDataContext()
          Return data with exported plugin details
 Description getDescription()
          Return the configuration description
 Framework getFramework()
           
 ScriptPluginProvider getProvider()
           
abstract  boolean isAllowCustomProperties()
          Subclasses return true if the script-plugin allows custom configuration properties defined in plugin metadata.
 boolean isUseConventionalPropertiesMapping()
          Return true to provide conventional mapping from config properties to framework/project properties.
protected  java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> loadConfigData(ExecutionContext context, java.util.Map<java.lang.String,java.lang.Object> instanceData, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> localDataContext, Description description)
          Loads the plugin configuration values stored in project or framework properties, also
protected  java.util.Map<java.lang.String,java.lang.Object> loadInstanceDataFromNodeAttributes(INodeEntry node, Description description)
          Map node attributes as instance configuration values based on property descriptions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TITLE_PROP

public static final java.lang.String TITLE_PROP
See Also:
Constant Field Values

DESCRIPTION_PROP

public static final java.lang.String DESCRIPTION_PROP
See Also:
Constant Field Values

CONFIG_PROP_PREFIX

public static final java.lang.String CONFIG_PROP_PREFIX
See Also:
Constant Field Values

CONFIG_TITLE

public static final java.lang.String CONFIG_TITLE
See Also:
Constant Field Values

CONFIG_DESCRIPTION

public static final java.lang.String CONFIG_DESCRIPTION
See Also:
Constant Field Values

CONFIG_NAME

public static final java.lang.String CONFIG_NAME
See Also:
Constant Field Values

CONFIG_TYPE

public static final java.lang.String CONFIG_TYPE
See Also:
Constant Field Values

CONFIG_REQUIRED

public static final java.lang.String CONFIG_REQUIRED
See Also:
Constant Field Values

CONFIG_DEFAULT

public static final java.lang.String CONFIG_DEFAULT
See Also:
Constant Field Values

CONFIG_VALUES

public static final java.lang.String CONFIG_VALUES
See Also:
Constant Field Values

CONFIG_SCOPE

public static final java.lang.String CONFIG_SCOPE
See Also:
Constant Field Values

CONFIG_RENDERING_OPTIONS

public static final java.lang.String CONFIG_RENDERING_OPTIONS
See Also:
Constant Field Values
Constructor Detail

AbstractDescribableScriptPlugin

public AbstractDescribableScriptPlugin(ScriptPluginProvider provider,
                                       Framework framework)
Method Detail

createPluginDataContext

public java.util.Map<java.lang.String,java.lang.String> createPluginDataContext()
Return data with exported plugin details


createDescription

protected static void createDescription(ScriptPluginProvider provider,
                                        boolean allowCustomProperties,
                                        DescriptionBuilder builder)
                                 throws ConfigurationException
Throws:
ConfigurationException

createDescription

protected static void createDescription(ScriptPluginProvider provider,
                                        boolean allowCustomProperties,
                                        boolean useConventionalPropertiesMapping,
                                        DescriptionBuilder builder)
                                 throws ConfigurationException
Throws:
ConfigurationException

loadInstanceDataFromNodeAttributes

protected java.util.Map<java.lang.String,java.lang.Object> loadInstanceDataFromNodeAttributes(INodeEntry node,
                                                                                              Description description)
Map node attributes as instance configuration values based on property descriptions. If a property has a rendering option key of StringRenderingConstants.INSTANCE_SCOPE_NODE_ATTRIBUTE_KEY then use the value of that option as the node attribute name to use.

Parameters:
node - node
description - plugin description
Returns:
instance config data

loadConfigData

protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> loadConfigData(ExecutionContext context,
                                                                                                          java.util.Map<java.lang.String,java.lang.Object> instanceData,
                                                                                                          java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> localDataContext,
                                                                                                          Description description)
                                                                                                   throws ConfigurationException
Loads the plugin configuration values stored in project or framework properties, also

Parameters:
context - execution context
localDataContext - current context data
description -
Returns:
context data with a new "config" entry containing the loaded plugin config properties.
Throws:
ConfigurationException

getDescription

public Description getDescription()
Description copied from interface: Describable
Return the configuration description

Specified by:
getDescription in interface Describable

isAllowCustomProperties

public abstract boolean isAllowCustomProperties()
Subclasses return true if the script-plugin allows custom configuration properties defined in plugin metadata.


isUseConventionalPropertiesMapping

public boolean isUseConventionalPropertiesMapping()
Return true to provide conventional mapping from config properties to framework/project properties.


getProvider

public ScriptPluginProvider getProvider()

getFramework

public Framework getFramework()