{
  "name": "JMS",
  "description": "",
  "version": "4.0.0-M5",
  "vendor": "Mulesoft",
  "category": "COMMUNITY",
  "minMuleVersion": "4.0.0",
  "xmlDsl": {
    "namespace": "jmsn",
    "namespaceUri": "http://www.mulesoft.org/schema/mule/jmsn",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/jmsn/current/mule-jmsn.xsd",
    "schemaVersion": "4.0.0-M5",
    "xsdFileName": "mule-jmsn.xsd"
  },
  "resources": [],
  "subTypes": [
    {
      "baseType": {
        "format": "java",
        "type": "@ref:org.mule.extensions.jms.api.destination.ConsumerType"
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:org.mule.extensions.jms.api.destination.QueueConsumer"
        },
        {
          "format": "java",
          "type": "@ref:org.mule.extensions.jms.api.destination.TopicConsumer"
        }
      ]
    },
    {
      "baseType": {
        "format": "java",
        "type": "@ref:org.mule.extensions.jms.api.connection.caching.CachingStrategy"
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:org.mule.extensions.jms.api.connection.caching.DefaultCachingStrategy"
        },
        {
          "format": "java",
          "type": "@ref:org.mule.extensions.jms.api.connection.caching.NoCachingConfiguration"
        }
      ]
    },
    {
      "baseType": {
        "format": "java",
        "type": "Object",
        "annotations": {
          "typeId": "javax.jms.ConnectionFactory",
          "classInformation": {
            "hasDefaultConstructor": false,
            "isInterface": true,
            "isInstantiable": false,
            "isAbstract": true,
            "isFinal": false,
            "implementedInterfaces": [],
            "parent": "",
            "genericTypes": []
          },
          "typeAlias": {
            "value": "ConnectionFactory"
          }
        },
        "fields": []
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:org.mule.extensions.jms.api.connection.factory.jndi.JndiConnectionFactory"
        }
      ]
    },
    {
      "baseType": {
        "format": "java",
        "type": "Object",
        "annotations": {
          "typeId": "org.mule.extensions.jms.api.connection.factory.jndi.JndiNameResolver",
          "classInformation": {
            "hasDefaultConstructor": false,
            "isInterface": true,
            "isInstantiable": false,
            "isAbstract": true,
            "isFinal": false,
            "implementedInterfaces": [
              "org.mule.runtime.api.lifecycle.Lifecycle"
            ],
            "parent": "",
            "genericTypes": []
          },
          "typeAlias": {
            "value": "JndiNameResolver"
          }
        },
        "fields": []
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:org.mule.extensions.jms.api.connection.factory.jndi.SimpleJndiNameResolver"
        },
        {
          "format": "java",
          "type": "@ref:org.mule.extensions.jms.api.connection.factory.jndi.CachedJndiNameResolver"
        }
      ]
    }
  ],
  "externalLibraries": [],
  "importedTypes": [],
  "configurations": [
    {
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "name": "encoding",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "*/*",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "name": "contentType",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extensions.jms.api.config.JmsConsumerConfig"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Consumer"
              },
              "name": "consumerConfig",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extensions.jms.api.config.JmsProducerConfig"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Producer"
              },
              "name": "producerConfig",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "externalLibraryModels": [],
      "operations": [
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "ACK",
              "namespace": "JMSN",
              "parent": {
                "type": "CONSUMING",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "JMSN",
                  "parent": {
                    "type": "ANY",
                    "namespace": "MULE"
                  }
                }
              }
            },
            {
              "type": "CONNECTIVITY",
              "namespace": "JMSN",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "JMSN",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1
                  },
                  "name": "ackId",
                  "displayModel": {
                    "summary": "The AckId of the Message to ACK"
                  },
                  "description": "the JmsSession#getAckId",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "ack",
          "description": "Allows the user to perform an ACK when the AckMode#MANUAL mode is elected while consuming the Message.\nAs per JMS Spec, performing an ACK over a single Message automatically works as an ACK for all the Messages\nproduced in the same JmsSession.\n\u003cp\u003e\nThe ackId must refer to a JmsSession created using the current JmsConnection.\nIf the JmsSession or JmsConnection were closed, the ACK will fail.\nIf the ackId does not belong to a JmsSession created using the current JmsConnection\nto a session of the current connection",
          "modelProperties": {}
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "ACK",
              "namespace": "JMSN",
              "parent": {
                "type": "CONSUMING",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "JMSN",
                  "parent": {
                    "type": "ANY",
                    "namespace": "MULE"
                  }
                }
              }
            },
            {
              "type": "CONNECTIVITY",
              "namespace": "JMSN",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "CONSUMING",
              "namespace": "JMSN",
              "parent": {
                "type": "ANY",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "TIMEOUT",
              "namespace": "JMSN",
              "parent": {
                "type": "CONSUMING",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "JMSN",
                  "parent": {
                    "type": "ANY",
                    "namespace": "MULE"
                  }
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "JMSN",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "hasDynamicType": true,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "@ref:org.mule.extensions.jms.api.message.JmsAttributes"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1
                  },
                  "name": "destination",
                  "displayModel": {
                    "summary": "The name of the Destination from where the Message should be consumed"
                  },
                  "description": "the name of the Destination from where the Message should be consumed",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extensions.jms.api.destination.ConsumerType"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "name": "consumerType",
                  "displayModel": {
                    "summary": "The Type of the Consumer that should be used for the provided destination"
                  },
                  "description": "the type of the MessageConsumer that is required for the given destination, along with any",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.extensions.jms.api.config.AckMode",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NONE",
                          "AUTO",
                          "MANUAL",
                          "DUPS_OK",
                          "TRANSACTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "name": "ackMode",
                  "displayModel": {
                    "summary": "The Session ACK mode to use when consuming a message"
                  },
                  "description": "the AckMode that will be configured over the Message and Session",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4
                  },
                  "name": "selector",
                  "displayModel": {
                    "summary": "JMS selector to be used for filtering incoming messages"
                  },
                  "description": "a custom JMS selector for filtering the messages",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5
                  },
                  "name": "contentType",
                  "displayModel": {
                    "summary": "The content type of the message body"
                  },
                  "description": "the Message\u0027s content content type",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6
                  },
                  "name": "encoding",
                  "displayModel": {
                    "summary": "The encoding of the message body"
                  },
                  "description": "the Message\u0027s content encoding",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Long"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "10000",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7
                  },
                  "name": "maximumWait",
                  "displayModel": {
                    "summary": "Maximum time to wait for a message to arrive before timeout"
                  },
                  "description": "maximum time to wait for a message before timing out",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "MILLISECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8
                  },
                  "name": "maximumWaitUnit",
                  "displayModel": {
                    "summary": "Time unit to be used in the maximumWaitTime configuration"
                  },
                  "description": "Time unit to be used in the maximumWaitTime configurations",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "consume",
          "description": "Operation that allows the user to consume a single Message from a given Destination.\nextra configurations that are required based on the destination type.\nand headers as Result#getAttributes",
          "modelProperties": {}
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "JMSN",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "PUBLISHING",
              "namespace": "JMSN",
              "parent": {
                "type": "ANY",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "JMSN",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "ILLEGAL_BODY",
              "namespace": "JMSN",
              "parent": {
                "type": "PUBLISHING",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "JMSN",
                  "parent": {
                    "type": "ANY",
                    "namespace": "MULE"
                  }
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1
                  },
                  "name": "destination",
                  "displayModel": {
                    "summary": "The name of the Destination where the Message should be sent"
                  },
                  "description": "the name of the Destination where the Message should be sent",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.extensions.jms.api.destination.DestinationType",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "QUEUE",
                          "TOPIC"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "QUEUE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "name": "destinationType",
                  "displayModel": {
                    "summary": "The type of the Destination"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extensions.jms.api.message.MessageBuilder"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "name": "messageBuilder",
                  "displayModel": {
                    "summary": "A builder for the message that will be published"
                  },
                  "description": "the MessageBuilder  used to create the Message to be sent",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "java.lang.Boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4
                  },
                  "name": "persistentDelivery",
                  "displayModel": {
                    "summary": "If true; the Message will be sent using the PERSISTENT JMSDeliveryMode"
                  },
                  "description": "true if DeliveryMode#PERSISTENT should be used",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5
                  },
                  "name": "priority",
                  "displayModel": {
                    "summary": "The default JMSPriority value to be used when sending the message"
                  },
                  "description": "the Message#getJMSPriority to be set",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Long"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6
                  },
                  "name": "timeToLive",
                  "displayModel": {
                    "summary": "Defines the default time the message will be in the broker before it expires and is discarded"
                  },
                  "description": "the time the message will be in the broker before it expires and is discarded",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7
                  },
                  "name": "timeToLiveUnit",
                  "displayModel": {
                    "summary": "Time unit to be used in the timeToLive configurations"
                  },
                  "description": "unit to be used in the timeToLive configurations",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "java.lang.Boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8
                  },
                  "name": "disableMessageId",
                  "displayModel": {
                    "summary": "If true; the Message will be flagged to avoid generating its MessageID"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "java.lang.Boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9
                  },
                  "name": "disableMessageTimestamp",
                  "displayModel": {
                    "summary": "If true; the Message will be flagged to avoid generating its sent Timestamp"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Long"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 10
                  },
                  "name": "deliveryDelay",
                  "displayModel": {
                    "summary": "Only used by JMS 2.0. Sets the delivery delay to be applied in order to postpone the Message delivery"
                  },
                  "description": "Only used by JMS 2.0. Sets the delivery delay to be applied in order to postpone the Message delivery",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 11
                  },
                  "name": "deliveryDelayUnit",
                  "displayModel": {
                    "summary": "Time unit to be used in the deliveryDelay configurations"
                  },
                  "description": "Time unit to be used in the deliveryDelay configurations",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Publish Configuration",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "publish",
          "description": "Operation that allows the user to send a Message to a JMS Destination",
          "modelProperties": {}
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "ACK",
              "namespace": "JMSN",
              "parent": {
                "type": "CONSUMING",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "JMSN",
                  "parent": {
                    "type": "ANY",
                    "namespace": "MULE"
                  }
                }
              }
            },
            {
              "type": "CONNECTIVITY",
              "namespace": "JMSN",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "CONSUMING",
              "namespace": "JMSN",
              "parent": {
                "type": "ANY",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "PUBLISHING",
              "namespace": "JMSN",
              "parent": {
                "type": "ANY",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "TIMEOUT",
              "namespace": "JMSN",
              "parent": {
                "type": "CONSUMING",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "JMSN",
                  "parent": {
                    "type": "ANY",
                    "namespace": "MULE"
                  }
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "JMSN",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "ILLEGAL_BODY",
              "namespace": "JMSN",
              "parent": {
                "type": "PUBLISHING",
                "namespace": "JMSN",
                "parent": {
                  "type": "ANY",
                  "namespace": "JMSN",
                  "parent": {
                    "type": "ANY",
                    "namespace": "MULE"
                  }
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "hasDynamicType": true,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "@ref:org.mule.extensions.jms.api.message.JmsAttributes"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 0,
                    "tabName": "General"
                  },
                  "name": "destination",
                  "displayModel": {
                    "summary": "The name of the Destination where the Message should be sent"
                  },
                  "description": "the name of the Destination where the Message should be sent",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extensions.jms.api.message.MessageBuilder"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "messageBuilder",
                  "displayModel": {
                    "summary": "A builder for the message that will be published"
                  },
                  "description": "the MessageBuilder used to create the Message to be sent",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.extensions.jms.api.config.AckMode",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NONE",
                          "AUTO",
                          "MANUAL",
                          "DUPS_OK",
                          "TRANSACTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "name": "ackMode",
                  "description": "the AckMode that will be configured over the Message and Session",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "long"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "10000",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "name": "maximumWait",
                  "displayModel": {
                    "summary": "Maximum time to wait for a response before timeout"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "MILLISECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4
                  },
                  "name": "maximumWaitUnit",
                  "displayModel": {
                    "summary": "Time unit to be used in the maximumWaitTime configuration"
                  },
                  "description": "",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "java.lang.Boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5
                  },
                  "name": "persistentDelivery",
                  "displayModel": {
                    "summary": "If true; the Message will be sent using the PERSISTENT JMSDeliveryMode"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6
                  },
                  "name": "priority",
                  "displayModel": {
                    "summary": "The default JMSPriority value to be used when sending the message"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Long"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7
                  },
                  "name": "timeToLive",
                  "displayModel": {
                    "summary": "Defines the default time the message will be in the broker before it expires and is discarded"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8
                  },
                  "name": "timeToLiveUnit",
                  "displayModel": {
                    "summary": "Time unit to be used in the timeToLive configurations"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "java.lang.Boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9
                  },
                  "name": "disableMessageId",
                  "displayModel": {
                    "summary": "If true; the Message will be flagged to avoid generating its MessageID"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "java.lang.Boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 10
                  },
                  "name": "disableMessageTimestamp",
                  "displayModel": {
                    "summary": "If true; the Message will be flagged to avoid generating its sent Timestamp"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Long"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 11
                  },
                  "name": "deliveryDelay",
                  "displayModel": {
                    "summary": "Only used by JMS 2.0. Sets the delivery delay to be applied in order to postpone the Message delivery"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 12
                  },
                  "name": "deliveryDelayUnit",
                  "displayModel": {
                    "summary": "Time unit to be used in the deliveryDelay configurations"
                  },
                  "description": "",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "General"
              },
              "showInDsl": false,
              "name": "Publish Configuration",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "publishConsume",
          "description": "Operation that allows the user to send a message to a JMS Destination and waits for a response\neither to the provided ReplyTo destination or to a temporary Destination created dynamically\nand headers as Result#getAttributes",
          "modelProperties": {}
        }
      ],
      "connectionProviders": [],
      "messageSources": [
        {
          "hasResponse": true,
          "successCallback": {
            "parameterGroupModels": [
              {
                "parameters": [
                  {
                    "type": {
                      "format": "java",
                      "type": "@ref:org.mule.extensions.jms.api.source.JmsListenerResponseBuilder"
                    },
                    "hasDynamicType": false,
                    "required": false,
                    "expressionSupport": "SUPPORTED",
                    "role": "BEHAVIOUR",
                    "dslConfiguration": {
                      "allowsInlineDefinition": true,
                      "allowsReferences": true,
                      "allowTopLevelDefinition": false
                    },
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 7
                    },
                    "name": "response",
                    "description": "",
                    "modelProperties": {}
                  }
                ],
                "exclusiveParametersModels": [],
                "showInDsl": false,
                "name": "General",
                "description": "",
                "modelProperties": {}
              }
            ],
            "name": "onSuccess",
            "description": "",
            "modelProperties": {}
          },
          "errorCallback": {
            "parameterGroupModels": [],
            "name": "onError",
            "description": "",
            "modelProperties": {}
          },
          "output": {
            "type": {
              "format": "java",
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "hasDynamicType": true,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "@ref:org.mule.extensions.jms.api.message.JmsAttributes"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1
                  },
                  "name": "destination",
                  "displayModel": {
                    "summary": "The name of the Destination from where the Message should be consumed"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extensions.jms.api.destination.ConsumerType"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "name": "consumerType",
                  "displayModel": {
                    "summary": "The Type of the Consumer that should be used for the provided destination"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.extensions.jms.api.config.AckMode",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NONE",
                          "AUTO",
                          "MANUAL",
                          "DUPS_OK",
                          "TRANSACTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "name": "ackMode",
                  "displayModel": {
                    "summary": "The Session ACK mode to use when consuming a message"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4
                  },
                  "name": "selector",
                  "displayModel": {
                    "summary": "JMS selector to be used for filtering incoming messages"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5
                  },
                  "name": "contentType",
                  "displayModel": {
                    "summary": "The content type of the message body"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6
                  },
                  "name": "encoding",
                  "displayModel": {
                    "summary": "The encoding of the message body"
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "RedeliveryPolicy"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "maxRedeliveryCount"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "5"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "The maximum number of times a message can be redelivered and processed unsuccessfully before triggering process-failed-message"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "useSecureHash"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Whether to use a secure hash algorithm to identify a redelivered message"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "messageDigestAlgorithm"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "The secure hashing algorithm to use. If not set, the default is SHA-256."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "idExpression"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Defines one or more expressions to use to determine when a message has been redelivered. This property may only be set if useSecureHash is false."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "object-store-ref"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "The object store where the redelivery counter for each message is going to be stored."
                          }
                        }
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "redeliveryPolicy",
                  "description": "Defines a policy for processing the redelivery of the same message",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "ReconnectionStrategy"
                      }
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "count"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Integer",
                                "default": "2"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How many reconnection attempts to make"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "typeId": "java.lang.Boolean",
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect-forever"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "reconnectionStrategy",
                  "description": "A retry strategy in case of connectivity errors",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "listener",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "config",
      "description": "\u003ccode\u003eJmsExtension\u003c/code\u003e is a JMS 1.0.2b, 1.1 and 2.0 compliant MuleSoft Extension,\nused to consume and produce JMS Messages.\nThe Extension supports all JMS functionality including topics and queues,\ndurable subscribers, acknowledgement modes and local transactions.",
      "modelProperties": {}
    }
  ],
  "operations": [],
  "connectionProviders": [
    {
      "connectionManagementType": "POOLING",
      "externalLibraryModels": [],
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extensions.jms.api.connection.caching.CachingStrategy"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5
              },
              "name": "cachingStrategy",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "javax.jms.ConnectionFactory",
                  "classInformation": {
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": []
                  },
                  "typeAlias": {
                    "value": "ConnectionFactory"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6
              },
              "name": "connectionFactory",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "name": "username",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": true,
                "text": false,
                "query": false,
                "order": 2
              },
              "name": "password",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "name": "clientId",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "org.mule.extensions.jms.api.connection.JmsSpecification",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "JMS_1_0_2b",
                      "JMS_1_1",
                      "JMS_2_0"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "JMS_1_1",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4
              },
              "name": "specification",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Union",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "typeAlias": {
                    "value": "ReconnectionStrategy"
                  }
                },
                "of": [
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "count"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "2"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How many reconnection attempts to make"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "blocking"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect-forever"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "reconnectionStrategy",
              "description": "A retry strategy in case of connectivity errors",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "disableValidation",
              "description": "Disables connection validation",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "org.mule.runtime.api.config.PoolingProfile",
                  "description": {
                    "value": "A pooling profile is used to configure the pooling behaviour of Mule components. Each component can have its own pooling profile."
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "maxActive"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Integer",
                        "default": "5"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Controls the maximum number of Mule components that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "maxIdle"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Integer",
                        "default": "5"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Controls the maximum number of Mule components that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of Mule components that may be idle at one time."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "maxWait"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Long",
                        "default": "4000"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the exhaustedAction is set to WHEN_EXHAUSTED_WAIT."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "minEvictionMillis"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Integer",
                        "default": "1800000"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Determines the minimum amount of time an object may sit idle in the pool before it is eligible for eviction. When non-positive, no objects will be evicted from the pool due to idle time alone."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "evictionCheckIntervalMillis"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Integer",
                        "default": "-1"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Specifies the number of milliseconds between runs of the object evictor. When non-positive, no object evictor is executed."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "exhaustedAction"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String",
                        "enum": {
                          "type": "[Ljava.lang.String;",
                          "values": [
                            "WHEN_EXHAUSTED_GROW",
                            "WHEN_EXHAUSTED_WAIT",
                            "WHEN_EXHAUSTED_FAIL"
                          ]
                        },
                        "default": "WHEN_EXHAUSTED_GROW"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are: \"WHEN_EXHAUSTED_FAIL\", which will throw a NoSuchElementException, \"WHEN_EXHAUSTED_WAIT\", which will block by invoking Object.wait(long) until a new or idle object is available, or WHEN_EXHAUSTED_GROW, which will create a new Mule instance and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for at most that many milliseconds, after which a NoSuchElementException will be thrown. If maxThreadWait is a negative value, it will block indefinitely."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "initialisationPolicy"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String",
                        "enum": {
                          "type": "[Ljava.lang.String;",
                          "values": [
                            "INITIALISE_NONE",
                            "INITIALISE_ONE",
                            "INITIALISE_ALL"
                          ]
                        },
                        "default": "INITIALISE_ONE"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Determines how components in a pool should be initialized. The possible values are: INITIALISE_NONE (will not load any components into the pool on startup), INITIALISE_ONE (will load one initial component into the pool on startup), or INITIALISE_ALL (will load all components in the pool on startup)"
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "disabled"
                    },
                    "model": {
                      "type": "Boolean",
                      "annotations": {
                        "typeId": "java.lang.Boolean",
                        "default": "false"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Whether pooling should be disabled"
                      }
                    }
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "poolingProfile",
              "description": "Characteristics of the connection pool",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "generic-connection",
      "description": "",
      "modelProperties": {}
    },
    {
      "connectionManagementType": "POOLING",
      "externalLibraryModels": [],
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extensions.jms.api.connection.caching.CachingStrategy"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7
              },
              "name": "cachingStrategy",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "javax.jms.ConnectionFactory",
                  "classInformation": {
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": []
                  },
                  "typeAlias": {
                    "value": "ConnectionFactory"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "name": "connectionFactory",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extensions.jms.api.connection.factory.activemq.ActiveMQConnectionFactoryConfiguration"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "name": "factoryConfiguration",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [
            {
              "exclusiveParameterNames": [
                "factoryConfiguration",
                "connectionFactory"
              ],
              "isOneRequired": false
            }
          ],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Connection Factory",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "name": "username",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": true,
                "text": false,
                "query": false,
                "order": 4
              },
              "name": "password",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5
              },
              "name": "clientId",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "org.mule.extensions.jms.api.connection.JmsSpecification",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "JMS_1_0_2b",
                      "JMS_1_1",
                      "JMS_2_0"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "JMS_1_1",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6
              },
              "name": "specification",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Union",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "typeAlias": {
                    "value": "ReconnectionStrategy"
                  }
                },
                "of": [
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "count"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "2"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How many reconnection attempts to make"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "blocking"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect-forever"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "reconnectionStrategy",
              "description": "A retry strategy in case of connectivity errors",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "disableValidation",
              "description": "Disables connection validation",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "org.mule.runtime.api.config.PoolingProfile",
                  "description": {
                    "value": "A pooling profile is used to configure the pooling behaviour of Mule components. Each component can have its own pooling profile."
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "maxActive"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Integer",
                        "default": "5"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Controls the maximum number of Mule components that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "maxIdle"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Integer",
                        "default": "5"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Controls the maximum number of Mule components that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of Mule components that may be idle at one time."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "maxWait"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Long",
                        "default": "4000"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the exhaustedAction is set to WHEN_EXHAUSTED_WAIT."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "minEvictionMillis"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Integer",
                        "default": "1800000"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Determines the minimum amount of time an object may sit idle in the pool before it is eligible for eviction. When non-positive, no objects will be evicted from the pool due to idle time alone."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "evictionCheckIntervalMillis"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "typeId": "java.lang.Integer",
                        "default": "-1"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Specifies the number of milliseconds between runs of the object evictor. When non-positive, no object evictor is executed."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "exhaustedAction"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String",
                        "enum": {
                          "type": "[Ljava.lang.String;",
                          "values": [
                            "WHEN_EXHAUSTED_GROW",
                            "WHEN_EXHAUSTED_WAIT",
                            "WHEN_EXHAUSTED_FAIL"
                          ]
                        },
                        "default": "WHEN_EXHAUSTED_GROW"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are: \"WHEN_EXHAUSTED_FAIL\", which will throw a NoSuchElementException, \"WHEN_EXHAUSTED_WAIT\", which will block by invoking Object.wait(long) until a new or idle object is available, or WHEN_EXHAUSTED_GROW, which will create a new Mule instance and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for at most that many milliseconds, after which a NoSuchElementException will be thrown. If maxThreadWait is a negative value, it will block indefinitely."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "initialisationPolicy"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String",
                        "enum": {
                          "type": "[Ljava.lang.String;",
                          "values": [
                            "INITIALISE_NONE",
                            "INITIALISE_ONE",
                            "INITIALISE_ALL"
                          ]
                        },
                        "default": "INITIALISE_ONE"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Determines how components in a pool should be initialized. The possible values are: INITIALISE_NONE (will not load any components into the pool on startup), INITIALISE_ONE (will load one initial component into the pool on startup), or INITIALISE_ALL (will load all components in the pool on startup)"
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "disabled"
                    },
                    "model": {
                      "type": "Boolean",
                      "annotations": {
                        "typeId": "java.lang.Boolean",
                        "default": "false"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Whether pooling should be disabled"
                      }
                    }
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "poolingProfile",
              "description": "Characteristics of the connection pool",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "active-mq-connection",
      "description": "",
      "modelProperties": {}
    }
  ],
  "messageSources": [],
  "errors": [
    {
      "type": "CONNECTIVITY",
      "namespace": "MULE",
      "parent": {
        "type": "ANY",
        "namespace": "MULE"
      }
    },
    {
      "type": "CONNECTIVITY",
      "namespace": "JMSN",
      "parent": {
        "type": "CONNECTIVITY",
        "namespace": "MULE",
        "parent": {
          "type": "ANY",
          "namespace": "MULE"
        }
      }
    },
    {
      "type": "ACK",
      "namespace": "JMSN",
      "parent": {
        "type": "CONSUMING",
        "namespace": "JMSN",
        "parent": {
          "type": "ANY",
          "namespace": "JMSN",
          "parent": {
            "type": "ANY",
            "namespace": "MULE"
          }
        }
      }
    },
    {
      "type": "ANY",
      "namespace": "MULE"
    },
    {
      "type": "ANY",
      "namespace": "JMSN",
      "parent": {
        "type": "ANY",
        "namespace": "MULE"
      }
    },
    {
      "type": "RETRY_EXHAUSTED",
      "namespace": "MULE",
      "parent": {
        "type": "ANY",
        "namespace": "MULE"
      }
    },
    {
      "type": "CONSUMING",
      "namespace": "JMSN",
      "parent": {
        "type": "ANY",
        "namespace": "JMSN",
        "parent": {
          "type": "ANY",
          "namespace": "MULE"
        }
      }
    },
    {
      "type": "DESTINATION_NOT_FOUND",
      "namespace": "JMSN",
      "parent": {
        "type": "ANY",
        "namespace": "JMSN",
        "parent": {
          "type": "ANY",
          "namespace": "MULE"
        }
      }
    },
    {
      "type": "RETRY_EXHAUSTED",
      "namespace": "JMSN",
      "parent": {
        "type": "RETRY_EXHAUSTED",
        "namespace": "MULE",
        "parent": {
          "type": "ANY",
          "namespace": "MULE"
        }
      }
    },
    {
      "type": "PUBLISHING",
      "namespace": "JMSN",
      "parent": {
        "type": "ANY",
        "namespace": "JMSN",
        "parent": {
          "type": "ANY",
          "namespace": "MULE"
        }
      }
    },
    {
      "type": "TIMEOUT",
      "namespace": "JMSN",
      "parent": {
        "type": "CONSUMING",
        "namespace": "JMSN",
        "parent": {
          "type": "ANY",
          "namespace": "JMSN",
          "parent": {
            "type": "ANY",
            "namespace": "MULE"
          }
        }
      }
    },
    {
      "type": "ILLEGAL_BODY",
      "namespace": "JMSN",
      "parent": {
        "type": "PUBLISHING",
        "namespace": "JMSN",
        "parent": {
          "type": "ANY",
          "namespace": "JMSN",
          "parent": {
            "type": "ANY",
            "namespace": "MULE"
          }
        }
      }
    }
  ],
  "modelProperties": {},
  "types": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.config.JmsConsumerConfig",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "JmsConsumerConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "ackMode"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.config.AckMode",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NONE",
                  "AUTO",
                  "MANUAL",
                  "DUPS_OK",
                  "TRANSACTED"
                ]
              }
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "AUTO",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "The Session ACK mode to use when consuming a message"
              }
            }
          }
        },
        {
          "key": {
            "name": "consumerType"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.destination.ConsumerType",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "ConsumerType"
              }
            },
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "selector"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "Default JMS selector to be used for filtering incoming messages"
              }
            }
          }
        },
        {
          "key": {
            "name": "maxRedelivery"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "0",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.config.JmsProducerConfig",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "JmsProducerConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "persistentDelivery"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "true",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "If true, the Message will be sent using the PERSISTENT JMSDeliveryMode"
              }
            }
          }
        },
        {
          "key": {
            "name": "priority"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "4",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "The default JMSPriority value to be used when sending the message"
              }
            }
          }
        },
        {
          "key": {
            "name": "timeToLive"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "long"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "0",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "Defines the default time the message will be in the broker before it expires and is discarded"
              }
            }
          }
        },
        {
          "key": {
            "name": "timeToLiveUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              }
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "MILLISECONDS",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "Time unit to be used in the timeToLive configurations"
              }
            }
          }
        },
        {
          "key": {
            "name": "disableMessageId"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "If true, the Message will be flagged to avoid generating its MessageID"
              }
            }
          }
        },
        {
          "key": {
            "name": "disableMessageTimestamp"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "If true, the Message will be flagged to avoid generating its sent Timestamp"
              }
            }
          }
        },
        {
          "key": {
            "name": "deliveryDelay"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "typeId": "java.lang.Long"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "Only used by JMS 2.0:  Sets the delivery delay to be applied in order to postpone the Message delivery"
              }
            }
          }
        },
        {
          "key": {
            "name": "deliveryDelayUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              }
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "MILLISECONDS",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "Only used by JMS 2.0: Time unit to be used in the deliveryDelay configurations."
              }
            }
          }
        },
        {
          "key": {
            "name": "jmsType"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "The message type identifier to be set in the JMSType Header when a message is sent"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.message.JmsAttributes",
        "classInformation": {
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.runtime.api.message.Attributes"
          ],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "JmsAttributes"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.destination.ConsumerType",
        "classInformation": {
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "ConsumerType"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.source.JmsListenerResponseBuilder",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "response-builder"
        }
      },
      "fields": [
        {
          "key": {
            "name": "messageBuilder"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.message.MessageBuilder",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "MessageBuilder"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "body"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "java.lang.Object",
                    "classInformation": {
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": true,
                      "isAbstract": false,
                      "isFinal": false,
                      "implementedInterfaces": [],
                      "parent": "",
                      "genericTypes": []
                    },
                    "typeAlias": {
                      "value": "Object"
                    }
                  },
                  "fields": []
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "PRIMARY_CONTENT"
                  },
                  "default": "#[payload]",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "xmlHints": {
                    "allowInlineDefinition": true,
                    "allowTopLevelDefinition": false,
                    "allowReferences": false
                  }
                }
              },
              {
                "key": {
                  "name": "jmsType"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "correlationId"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "sendContentType"
                },
                "model": {
                  "type": "Boolean",
                  "annotations": {
                    "typeId": "boolean"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "default": "true",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "contentType"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "displayName": "ContentType"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "sendEncoding"
                },
                "model": {
                  "type": "Boolean",
                  "annotations": {
                    "typeId": "boolean"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "default": "true",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "encoding"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "displayName": "Encoding"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "replyTo"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "org.mule.extensions.jms.api.destination.JmsDestination",
                    "classInformation": {
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": true,
                      "isAbstract": false,
                      "isFinal": true,
                      "implementedInterfaces": [],
                      "parent": "",
                      "genericTypes": []
                    },
                    "typeAlias": {
                      "value": "JmsDestination"
                    }
                  },
                  "fields": [
                    {
                      "key": {
                        "name": "destination"
                      },
                      "model": {
                        "required": "true",
                        "type": "String",
                        "annotations": {
                          "typeId": "java.lang.String"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        },
                        "xmlHints": {
                          "allowInlineDefinition": true,
                          "allowTopLevelDefinition": false,
                          "allowReferences": false
                        },
                        "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                          "displayModel": {
                            "displayName": "Destination Name",
                            "summary": "It is the destination where a reply to the message should be sent"
                          }
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "destinationType"
                      },
                      "model": {
                        "type": "String",
                        "annotations": {
                          "typeId": "org.mule.extensions.jms.api.destination.DestinationType",
                          "enum": {
                            "type": "[Ljava.lang.String;",
                            "values": [
                              "QUEUE",
                              "TOPIC"
                            ]
                          }
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "default": "QUEUE",
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    }
                  ]
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "The destination where a reply to the message should be sent"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "properties"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "java.util.Map",
                    "classInformation": {
                      "hasDefaultConstructor": false,
                      "isInterface": true,
                      "isInstantiable": false,
                      "isAbstract": true,
                      "isFinal": false,
                      "implementedInterfaces": [],
                      "parent": "",
                      "genericTypes": [
                        "java.lang.String",
                        "java.lang.Object"
                      ]
                    }
                  },
                  "open": {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "classInformation": {
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": []
                      },
                      "typeAlias": {
                        "value": "Object"
                      }
                    },
                    "fields": []
                  },
                  "fields": []
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "CONTENT"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxProperties"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "org.mule.extensions.jms.api.message.JmsxProperties",
                    "classInformation": {
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": true,
                      "isAbstract": false,
                      "isFinal": true,
                      "implementedInterfaces": [],
                      "parent": "",
                      "genericTypes": []
                    },
                    "typeAlias": {
                      "value": "JmsxProperties"
                    }
                  },
                  "fields": [
                    {
                      "key": {
                        "name": "jmsxUserID"
                      },
                      "model": {
                        "type": "String",
                        "annotations": {
                          "typeId": "java.lang.String"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "jmsxAppID"
                      },
                      "model": {
                        "type": "String",
                        "annotations": {
                          "typeId": "java.lang.String"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "jmsxDeliveryCount"
                      },
                      "model": {
                        "type": "Number",
                        "annotations": {
                          "typeId": "java.lang.Integer"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "jmsxGroupID"
                      },
                      "model": {
                        "type": "String",
                        "annotations": {
                          "typeId": "java.lang.String"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "jmsxGroupSeq"
                      },
                      "model": {
                        "type": "Number",
                        "annotations": {
                          "typeId": "java.lang.Integer"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "jmsxProducerTXID"
                      },
                      "model": {
                        "type": "String",
                        "annotations": {
                          "typeId": "java.lang.String"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "jmsxConsumerTXID"
                      },
                      "model": {
                        "type": "String",
                        "annotations": {
                          "typeId": "java.lang.String"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "jmsxRcvTimestamp"
                      },
                      "model": {
                        "type": "Number",
                        "annotations": {
                          "typeId": "java.lang.Long"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        }
                      }
                    }
                  ]
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "overrides"
          },
          "model": {
            "required": "true",
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extensions.jms.internal.publish.JmsPublishParameters",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "JmsPublishParameters"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "persistentDelivery"
                },
                "model": {
                  "type": "Boolean",
                  "annotations": {
                    "typeId": "java.lang.Boolean"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "If true; the Message will be sent using the PERSISTENT JMSDeliveryMode"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "priority"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Integer"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "The default JMSPriority value to be used when sending the message"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "timeToLive"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Long"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "Defines the default time the message will be in the broker before it expires and is discarded"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "timeToLiveUnit"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.util.concurrent.TimeUnit",
                    "enum": {
                      "type": "[Ljava.lang.String;",
                      "values": [
                        "NANOSECONDS",
                        "MICROSECONDS",
                        "MILLISECONDS",
                        "SECONDS",
                        "MINUTES",
                        "HOURS",
                        "DAYS"
                      ]
                    }
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "Time unit to be used in the timeToLive configurations"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "disableMessageId"
                },
                "model": {
                  "type": "Boolean",
                  "annotations": {
                    "typeId": "java.lang.Boolean"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "If true; the Message will be flagged to avoid generating its MessageID"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "disableMessageTimestamp"
                },
                "model": {
                  "type": "Boolean",
                  "annotations": {
                    "typeId": "java.lang.Boolean"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "If true; the Message will be flagged to avoid generating its sent Timestamp"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "deliveryDelay"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Long"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "Only used by JMS 2.0. Sets the delivery delay to be applied in order to postpone the Message delivery"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "deliveryDelayUnit"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.util.concurrent.TimeUnit",
                    "enum": {
                      "type": "[Ljava.lang.String;",
                      "values": [
                        "NANOSECONDS",
                        "MICROSECONDS",
                        "MILLISECONDS",
                        "SECONDS",
                        "MINUTES",
                        "HOURS",
                        "DAYS"
                      ]
                    }
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "summary": "Time unit to be used in the deliveryDelay configurations"
                    }
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "flattened": {},
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.message.MessageBuilder",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "MessageBuilder"
        }
      },
      "fields": [
        {
          "key": {
            "name": "body"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.lang.Object",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "Object"
              }
            },
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "PRIMARY_CONTENT"
            },
            "default": "#[payload]",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "xmlHints": {
              "allowInlineDefinition": true,
              "allowTopLevelDefinition": false,
              "allowReferences": false
            }
          }
        },
        {
          "key": {
            "name": "jmsType"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "correlationId"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "sendContentType"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "true",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "contentType"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "ContentType"
              }
            }
          }
        },
        {
          "key": {
            "name": "sendEncoding"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "true",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "encoding"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "Encoding"
              }
            }
          }
        },
        {
          "key": {
            "name": "replyTo"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.destination.JmsDestination",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "JmsDestination"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "destination"
                },
                "model": {
                  "required": "true",
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "xmlHints": {
                    "allowInlineDefinition": true,
                    "allowTopLevelDefinition": false,
                    "allowReferences": false
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "displayName": "Destination Name",
                      "summary": "It is the destination where a reply to the message should be sent"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "destinationType"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "org.mule.extensions.jms.api.destination.DestinationType",
                    "enum": {
                      "type": "[Ljava.lang.String;",
                      "values": [
                        "QUEUE",
                        "TOPIC"
                      ]
                    }
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "default": "QUEUE",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "The destination where a reply to the message should be sent"
              }
            }
          }
        },
        {
          "key": {
            "name": "properties"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Map",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "java.lang.String",
                  "java.lang.Object"
                ]
              }
            },
            "open": {
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "CONTENT"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "jmsxProperties"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.message.JmsxProperties",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "JmsxProperties"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "jmsxUserID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxAppID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxDeliveryCount"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Integer"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxGroupID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxGroupSeq"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Integer"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxProducerTXID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxConsumerTXID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxRcvTimestamp"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Long"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.message.MessageBuilder",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "MessageBuilder"
        }
      },
      "fields": [
        {
          "key": {
            "name": "body"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.lang.Object",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "Object"
              }
            },
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "PRIMARY_CONTENT"
            },
            "default": "#[payload]",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "xmlHints": {
              "allowInlineDefinition": true,
              "allowTopLevelDefinition": false,
              "allowReferences": false
            }
          }
        },
        {
          "key": {
            "name": "jmsType"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "correlationId"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "sendContentType"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "true",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "contentType"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "ContentType"
              }
            }
          }
        },
        {
          "key": {
            "name": "sendEncoding"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "true",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "encoding"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "Encoding"
              }
            }
          }
        },
        {
          "key": {
            "name": "replyTo"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.destination.JmsDestination",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "JmsDestination"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "destination"
                },
                "model": {
                  "required": "true",
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "xmlHints": {
                    "allowInlineDefinition": true,
                    "allowTopLevelDefinition": false,
                    "allowReferences": false
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                    "displayModel": {
                      "displayName": "Destination Name",
                      "summary": "It is the destination where a reply to the message should be sent"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "destinationType"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "org.mule.extensions.jms.api.destination.DestinationType",
                    "enum": {
                      "type": "[Ljava.lang.String;",
                      "values": [
                        "QUEUE",
                        "TOPIC"
                      ]
                    }
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "default": "QUEUE",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "The destination where a reply to the message should be sent"
              }
            }
          }
        },
        {
          "key": {
            "name": "properties"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Map",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "java.lang.String",
                  "java.lang.Object"
                ]
              }
            },
            "open": {
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "CONTENT"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "jmsxProperties"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.message.JmsxProperties",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "JmsxProperties"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "jmsxUserID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxAppID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxDeliveryCount"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Integer"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxGroupID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxGroupSeq"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Integer"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxProducerTXID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxConsumerTXID"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "jmsxRcvTimestamp"
                },
                "model": {
                  "type": "Number",
                  "annotations": {
                    "typeId": "java.lang.Long"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.connection.caching.CachingStrategy",
        "classInformation": {
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "CachingStrategy"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.connection.factory.activemq.ActiveMQConnectionFactoryConfiguration",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": true,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "ActiveMQConnectionFactoryConfiguration"
        }
      },
      "fields": [
        {
          "key": {
            "name": "brokerUrl"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "vm://localhost?broker.persistent\u003dfalse\u0026broker.useJmx\u003dfalse",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "enable-xa"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "initialRedeliveryDelay"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "long"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "1000",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "redeliveryDelay"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "long"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "1000",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "maxRedelivery"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "0",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.destination.QueueConsumer",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": true,
          "implementedInterfaces": [
            "org.mule.extensions.jms.api.destination.ConsumerType"
          ],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "queue-consumer"
        }
      },
      "fields": [
        {
          "key": {
            "name": "topic"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "visibility": "READ_ONLY"
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.destination.TopicConsumer",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": true,
          "implementedInterfaces": [
            "org.mule.extensions.jms.api.destination.ConsumerType",
            "org.mule.runtime.api.lifecycle.Initialisable"
          ],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "topic-consumer"
        }
      },
      "fields": [
        {
          "key": {
            "name": "isDurable"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "false",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "Allows an application to receive all the messages published on a topic, including the ones published when there is no consumer associated with it"
              }
            }
          }
        },
        {
          "key": {
            "name": "isShared"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "false",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "Only for JMS 2.0: Allows the processing of messages from at topic subscription by multiple threads, connections or JVMs"
              }
            }
          }
        },
        {
          "key": {
            "name": "noLocal"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "false",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "Specifies that messages published to the topic by its own connection must not be added to the subscription"
              }
            }
          }
        },
        {
          "key": {
            "name": "subscriptionName"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "xmlHints": {
              "allowInlineDefinition": true,
              "allowTopLevelDefinition": false,
              "allowReferences": false
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "summary": "The name to be used for the subscription"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.connection.caching.DefaultCachingStrategy",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": true,
          "implementedInterfaces": [
            "org.mule.extensions.jms.api.connection.caching.CachingStrategy",
            "org.mule.extensions.jms.api.connection.caching.CachingConfiguration"
          ],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "default-caching"
        }
      },
      "fields": [
        {
          "key": {
            "name": "sessionCacheSize"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "1",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "cacheProducers"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "true",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "cacheConsumers"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "true",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.connection.caching.NoCachingConfiguration",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": true,
          "implementedInterfaces": [
            "org.mule.extensions.jms.api.connection.caching.CachingStrategy"
          ],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "no-caching"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.connection.factory.jndi.JndiConnectionFactory",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": true,
          "implementedInterfaces": [
            "org.mule.runtime.api.lifecycle.Lifecycle"
          ],
          "parent": "org.springframework.jms.connection.DelegatingConnectionFactory",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "JndiConnectionFactory"
        }
      },
      "fields": [
        {
          "key": {
            "name": "connectionFactoryJndiName"
          },
          "model": {
            "required": "true",
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "lookupDestination"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.connection.LookupJndiDestination",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NEVER",
                  "ALWAYS",
                  "TRY_ALWAYS"
                ]
              }
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "NEVER",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "nameResolverProvider"
          },
          "model": {
            "required": "true",
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extensions.jms.api.connection.factory.jndi.JndiNameResolverProvider",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "JndiNameResolverProvider"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "customJndiNameResolver"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "org.mule.extensions.jms.api.connection.factory.jndi.JndiNameResolver",
                    "classInformation": {
                      "hasDefaultConstructor": false,
                      "isInterface": true,
                      "isInstantiable": false,
                      "isAbstract": true,
                      "isFinal": false,
                      "implementedInterfaces": [
                        "org.mule.runtime.api.lifecycle.Lifecycle"
                      ],
                      "parent": "",
                      "genericTypes": []
                    },
                    "typeAlias": {
                      "value": "JndiNameResolver"
                    }
                  },
                  "fields": []
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "nameResolverBuilder"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "org.mule.extensions.jms.api.connection.factory.jndi.JndiNameResolverProperties",
                    "classInformation": {
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": true,
                      "isAbstract": false,
                      "isFinal": true,
                      "implementedInterfaces": [],
                      "parent": "",
                      "genericTypes": []
                    },
                    "typeAlias": {
                      "value": "JndiNameResolverProperties"
                    }
                  },
                  "fields": [
                    {
                      "key": {
                        "name": "jndiInitialContextFactory"
                      },
                      "model": {
                        "required": "true",
                        "type": "String",
                        "annotations": {
                          "typeId": "java.lang.String"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        },
                        "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                          "displayModel": {
                            "summary": "The fully qualified class name of the factory class that will create an initial context"
                          }
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "jndiProviderUrl"
                      },
                      "model": {
                        "type": "String",
                        "annotations": {
                          "typeId": "java.lang.String"
                        }
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        },
                        "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                          "displayModel": {
                            "summary": "The JNDI service provider URL"
                          }
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "providerProperties"
                      },
                      "model": {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.util.Map",
                          "classInformation": {
                            "hasDefaultConstructor": false,
                            "isInterface": true,
                            "isInstantiable": false,
                            "isAbstract": true,
                            "isFinal": false,
                            "implementedInterfaces": [],
                            "parent": "",
                            "genericTypes": [
                              "java.lang.String",
                              "java.lang.Object"
                            ]
                          }
                        },
                        "open": {
                          "type": "Object",
                          "annotations": {
                            "typeId": "java.lang.Object",
                            "classInformation": {
                              "hasDefaultConstructor": true,
                              "isInterface": false,
                              "isInstantiable": true,
                              "isAbstract": false,
                              "isFinal": false,
                              "implementedInterfaces": [],
                              "parent": "",
                              "genericTypes": []
                            },
                            "typeAlias": {
                              "value": "Object"
                            }
                          },
                          "fields": []
                        },
                        "fields": []
                      },
                      "annotations": {
                        "parameterPurpose": {
                          "role": "BEHAVIOUR"
                        },
                        "expressionSupport": {
                          "value": "SUPPORTED"
                        },
                        "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
                          "displayModel": {
                            "summary": "Properties to be passed on to the JNDI Name Resolver Context"
                          }
                        }
                      }
                    }
                  ]
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "flattened": {},
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.connection.factory.jndi.SimpleJndiNameResolver",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": true,
          "implementedInterfaces": [],
          "parent": "org.mule.extensions.jms.api.connection.factory.jndi.AbstractJndiNameResolver",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "SimpleJndiNameResolver"
        }
      },
      "fields": [
        {
          "key": {
            "name": "contextFactory"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "javax.naming.spi.InitialContextFactory",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "InitialContextFactory"
              }
            },
            "fields": []
          }
        },
        {
          "key": {
            "name": "jndiInitialFactory"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          }
        },
        {
          "key": {
            "name": "jndiProviderProperties"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Map",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              }
            },
            "open": {
              "type": "Any"
            },
            "fields": []
          }
        },
        {
          "key": {
            "name": "jndiProviderUrl"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extensions.jms.api.connection.factory.jndi.CachedJndiNameResolver",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "org.mule.extensions.jms.api.connection.factory.jndi.AbstractJndiNameResolver",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "CachedJndiNameResolver"
        }
      },
      "fields": [
        {
          "key": {
            "name": "contextFactory"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "javax.naming.spi.InitialContextFactory",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "InitialContextFactory"
              }
            },
            "fields": []
          }
        },
        {
          "key": {
            "name": "jndiInitialFactory"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          }
        },
        {
          "key": {
            "name": "jndiProviderProperties"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Map",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              }
            },
            "open": {
              "type": "Any"
            },
            "fields": []
          }
        },
        {
          "key": {
            "name": "jndiProviderUrl"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          }
        }
      ]
    }
  ]
}
