Synapse Plans: Action Handlers


A Handler declares the library to support executing the current Action. A Handler declaration consists of naming the Handler Type and specifying its Config, which is a ParameterInfo block.


Name Type Required Description
Type string Yes Declares the library and class to support executing the current Action.
Config ParameterInfo No Delares the ParameterInfo block used when invoking the current Action.

Example YAML

  Type: myLibrary.Utilities:myLibrary.Utilities.ServiceController
  Config: {ParameterInfo}


The Handler Type is specified in two parts, separated by a colon: 1) library name, and 2) class name. The library name is the simple name; do not specify the full path, and do not include the file extension.

Handler Type declaration supports several forms of full and abbreviated syntax, as shown in the table below. Additionally, you may even omit Type and use the Plan default type. On Windows systems, the default handler type is Synapse.Handler.CommandLine:CommandLineHandler. You may override the Plan default handler type by setting Plan.DefaultHandlerType, in which case the declared value will be used in place of omitted Action.Handler.Type values.

Style Description
Full Library:FullyQualifiedClassName
FullyQualifiedClassName Omits the Library name.
SimpleClassName Omits the Library name, and omits the Class namespace.
AbbreviatedClassName Omits the Library name, the Class namespace, and the 'Handler' suffix from the Class.
(None) Omits the entire Type declaration; uses Plan.DefaultHandlerType.

Example YAML - Handler Type Declaration

In the Plan below, all declarations result in the same Type being invoked: Synapse.Core:Synapse.Core.Runtime.EmptyHandler.

Name: plan0
Description: Load handlers with full or partial names.
DefaultHandlerType: Synapse.Core:Synapse.Core.Runtime.EmptyHandler
- Name: FullName-Library:FullyQualifiedClassName
    Type: Synapse.Core:Synapse.Core.Runtime.EmptyHandler
- Name: FullyQualifiedClassName
    Type: Synapse.Core.Runtime.EmptyHandler
- Name: SimpleClassName
    Type: EmptyHandler
- Name: AbbreviatedClassName
    Type: Empty
- Name: NoHandlerSpecified-Use:Plan.DefaultHandlerType

Discovering Handler Config/Parameters Layout

Using Synapse.Core CLI to discover Handler Config/Parameters is accomplished via the sample parameter, as follows:

 synapse.cli.exe sample:{handlerLib:handlerName,...} [out:{filePath}]

  - Create a sample Plan with the specified Handler(s).

  sample       - A csv list of handlerLib:handlerName pairs.
  out          - filePath: Optional output filePath.
               If [out] not specified, will output to screen.
  verbose      - If true, adds example values for all Plan options.

Example - Discovering Handler Config/Parameters

C:\synapse\>synapse.cli.exe sample:Synapse.Core:all out:mySample.yaml verbose:true