Hi Nuwan,

On Thu, Sep 8, 2016 at 7:50 PM, Nuwan Pallewela <[email protected]> wrote:

> Hi All,
>
> Mediators in Next-Gen tool can be defined in a module named  Mediators. When
> new mediator is adding to tool, we need to add to this module as a object
> with the below defined format. Editor will identify it from these modules
> and add to tool palette and will be available to use in the editor.
>
> Further mediators are divided to several categories( For eg: manipulators
> ,flow controllers,..). So the folder structure of the mediator definitions
> can be construct as follows.
>
>       --->js
>
> |---> mediators
>
> |               |--- flow_controllers.js
>
> |               |--- manipulators.js
>
> .               …………………….
>
> |               |---> flow_controllers
>
> |               |                          |--- try_block_mediator.js
>
> .               .                          ………………….
>
> |               |---> manipulators
>
> |               |                          |--- log_mediator.js
>
> .               .                          ……………………..
>
> |
>
>
> Wouldn't it be possible to handle all mediators using a single mediator
definition and move mediator specific details to a set of JSON files? In
that way we can minimize the effort needed for updating tooling whenever a
new mediator is added to the integration server.

Thanks

> Mediator Defining Parameters
>
>    -
>
>    id : Unique identifier for mediator type --- [String] , [Required]
>    -
>
>    name : Label name for the mediator --- [String] , [Required]
>    -
>
>    icon : path for the icon --- [String] , [Required]
>    -
>
>    parameters : Array of parameter definitions needed to configure the
>    mediator --- [Array]
>
>                 {
>
>   id: "LogMediator",
>
>   name: "Log Mediator",
>
>   icon: "images/LogMediator.gif",
>
>   parameters: [...]
>
> }
>
> Parameter Definition Format
>
> This is the object format to define parameters of the mediator. Each
> parameter should be defined as this format and need to include in the main
> mediator definition object’s parameters array.
>
>
>    -
>
>    key : Key name need to be add in the mediator instance to this
>    parameter --- [String] , [Required]
>    -
>
>    label : Label name for the parameter  --- [String] , [Required]
>    -
>
>    required : Boolean value to specify it as a required field for the
>    mediator configuration---[Boolean] , [Required]
>    -
>
>    value : Object defining the format/type of the value contained by the
>    parameter --- [Obj] , [Required]
>
>  {
>
>           key: "level",
>
>           label: "Log Level",
>
>           required: true,
>
>           value: {...}
>
>     }
> Value Definition Format
>
> Value object definition changes according to the type of the value. There
> are three basic different types which the value could be. They are
>
>    -
>
>    Primitive
>    -
>
>    Object
>    -
>
>    Array
>
> Primitive Value Block
>
> Value block defining a primitive value can contain a parameter named
> values which will define the specific primitive values it could hold.
>
>    -
>
>    type : Type of the value(String,Integer,Double or Boolean)---
>    [String],[Required]
>    -
>
>    values : Array of objects with key,label pairs it could hold.---
>    [Array],[Optional]
>
>
>                       {
>
>               type: "String",
>
>               values: [
>
>                   {key: "full", label: "FULL"}, {key: "simple", label:
> "SIMPLE"},
>
>                   {key: "headers",label: "HEADERS"}, {key: "custom", label:
> "CUSTOM"}
>
>       }
> Object/Array Value Block
>
> Value block defining an object or array value contains parameters array
> which will define the specific parameter values the object holds. *Here
> we have made the assumption that there could not be an array of primitive
> values for a parameter values, and it should always be an array of objects.*
>
>    -
>
>    type : Type of the value(Object)---[String],[Required]
>    -
>
>    parameters : Array of parameter definitions needed to configure the
>    mediator --- [Array],[Required]
>
> {
>
>               type: "Array",
>
>               parameters : [
>
>                   {
>
>                       key: "name",
>
>                       label: "Property Name",
>
>                       required: true,
>
>                       value: {
>
>                           type: "String"
>
>                       }
>
>                   },
>
>                  ...........................
>
>               ]
>
>           }
>
>
>
>
> I have attached the sample definition done for log mediator.
>
>
> Please share any ideas on other information required to mediator
> definition or better ways to define rather than this specification.
>
>
> Thanks,
>
> Nuwan
>
>
> --
> ----------------------------------------------------------
>
> *Nuwan Chamara Pallewela*
>
>
> *Software Engineer*
>
> *WSO2, Inc. *http://wso2.com
> *lean . enterprise . middleware*
>
> Email   *[email protected] <[email protected]>*
> Mobile  *+94719079739 <%2B94719079739>@*
>
>
>


-- 
*Imesh Gunaratne*
Software Architect
WSO2 Inc: http://wso2.com
T: +94 11 214 5345 M: +94 77 374 2057
W: https://medium.com/@imesh TW: @imesh
lean. enterprise. middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to