{
	"adapter": {
		"id": "jms.adapter.1",
		"name":  "jmsAdapter",
		"description": "JMS adapter to interact with queues and topics.",
		"fields": [
			{
				"name": "destinationType",
				"type": "String",
				"default": "queue",
				"property": false,
				"option": false
			},
			{
				"name": "destinationName",
				"type": "String",
				"property": false,
				"option": false
			},

			{
				"name": "clientId",
				"property": true,
				"option": true
			},
			{
				"name": "connectionFactory",
				"type": "ConnectionFactory",
				"property": true,
				"option": true
			},
			{
				"name": "disableReplyTo",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "durableSubscriptionName",
				"property": true,
				"option": true
			},
			{
				"name": "jmsMessageType",
				"type": "JmsMessageType",
				"property": true,
				"option": true
			},
			{
				"name": "replyTo",
				"property": true,
				"option": true
			},
			{
				"name": "testConnectionOnStartup",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "acknowledgementModeName",
				"default": "AUTO_ACKNOWLEDGE",
				"property": true,
				"option": true
			},
			{
				"name": "artemisConsumerPriority",
				"type": "int",
				"property": true,
				"option": true
			},
			{
				"name": "asyncConsumer",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "autoStartup",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "cacheLevel",
				"type": "int",
				"property": true,
				"option": true
			},
			{
				"name": "cacheLevelName",
				"default": "CACHE_AUTO",
				"property": true,
				"option": true
			},
			{
				"name": "concurrentConsumers",
				"type": "int",
				"default": "1",
				"property": true,
				"option": true
			},
			{
				"name": "maxConcurrentConsumers",
				"type": "int",
				"property": true,
				"option": true
			},
			{
				"name": "replyToDeliveryPersistent",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "selector",
				"property": true,
				"option": true
			},
			{
				"name": "subscriptionDurable",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "subscriptionName",
				"property": true,
				"option": true
			},
			{
				"name": "subscriptionShared",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "acceptMessagesWhileStopping",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "allowReplyManagerQuickStop",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "consumerType",
				"type": "ConsumerType",
				"default": "Default",
				"property": true,
				"option": true
			},
			{
				"name": "defaultTaskExecutorType",
				"type": "DefaultTaskExecutorType",
				"property": true,
				"option": true
			},
			{
				"name": "eagerLoadingOfProperties",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "eagerPoisonBody",
				"default": "Poison JMS message due to ${exception.message}",
				"property": true,
				"option": true
			},
			{
				"name": "exceptionHandler",
				"type": "ExceptionHandler",
				"option": true
			},
			{
				"name": "exchangePattern",
				"type": "ExchangePattern",
				"option": true
			},
			{
				"name": "exposeListenerSession",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "replyToSameDestinationAllowed",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "taskExecutor",
				"type": "TaskExecutor",
				"property": true,
				"option": true
			},
			{
				"name": "deliveryDelay",
				"type": "long",
				"default": "-1",
				"property": true,
				"option": true
			},
			{
				"name": "deliveryMode",
				"type": "Integer",
				"property": true,
				"option": true
			},
			{
				"name": "deliveryPersistent",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "explicitQosEnabled",
				"type": "Boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "formatDateHeadersToIso8601",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "lazyStartProducer",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "preserveMessageQos",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "priority",
				"type": "int",
				"default": "4",
				"property": true,
				"option": true
			},
			{
				"name": "replyToConcurrentConsumers",
				"type": "int",
				"default": "1",
				"property": true,
				"option": true
			},
			{
				"name": "replyToMaxConcurrentConsumers",
				"type": "int",
				"property": true,
				"option": true
			},
			{
				"name": "replyToOnTimeoutMaxConcurrentConsumers",
				"type": "int",
				"default": "1",
				"property": true,
				"option": true
			},
			{
				"name": "replyToOverride",
				"property": true,
				"option": true
			},
			{
				"name": "replyToType",
				"type": "ReplyToType",
				"property": true,
				"option": true
			},
			{
				"name": "requestTimeout",
				"type": "long",
				"default": "20000",
				"property": true,
				"option": true
			},
			{
				"name": "timeToLive",
				"type": "long",
				"default": "-1",
				"property": true,
				"option": true
			},
			{
				"name": "allowAdditionalHeaders",
				"property": true,
				"option": true
			},
			{
				"name": "allowNullBody",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "alwaysCopyMessage",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "correlationProperty",
				"property": true,
				"option": true
			},
			{
				"name": "disableTimeToLive",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "forceSendOriginalMessage",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "includeSentJMSMessageID",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "replyToCacheLevelName",
				"property": true,
				"option": true
			},
			{
				"name": "replyToDestinationSelectorName",
				"property": true,
				"option": true
			},
			{
				"name": "streamMessageTypeEnabled",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "allowAutoWiredConnectionFactory",
				"type": "boolean",
				"default": "true",
				"property": true
			},
			{
				"name": "allowAutoWiredDestinationResolver",
				"type": "boolean",
				"default": "true",
				"property": true
			},
			{
				"name": "allowSerializedHeaders",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "artemisStreamingEnabled",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "asyncStartListener",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "asyncStopListener",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "autowiredEnabled",
				"type": "boolean",
				"default": "true",
				"property": true
			},
			{
				"name": "configuration",
				"type": "JmsConfiguration",
				"property": true
			},
			{
				"name": "destinationResolver",
				"type": "DestinationResolver",
				"property": true,
				"option": true
			},
			{
				"name": "errorHandler",
				"type": "ErrorHandler",
				"property": true,
				"option": true
			},
			{
				"name": "exceptionListener",
				"type": "ExceptionListener",
				"property": true,
				"option": true
			},
			{
				"name": "headerFilterStrategy",
				"type": "HeaderFilterStrategy",
				"property": true,
				"option": true
			},
			{
				"name": "idleConsumerLimit",
				"type": "int",
				"default": "1",
				"property": true,
				"option": true
			},
			{
				"name": "idleTaskExecutionLimit",
				"type": "int",
				"default": "1",
				"property": true,
				"option": true
			},
			{
				"name": "includeAllJMSXProperties",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "jmsKeyFormatStrategy",
				"type": "JmsKeyFormatStrategy",
				"property": true,
				"option": true
			},
			{
				"name": "mapJmsMessage",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "maxMessagesPerTask",
				"type": "int",
				"default": "-1",
				"property": true,
				"option": true
			},
			{
				"name": "messageConverter",
				"type": "MessageConverter",
				"property": true,
				"option": true
			},
			{
				"name": "messageCreatedStrategy",
				"type": "MessageCreatedStrategy",
				"property": true,
				"option": true
			},
			{
				"name": "messageIdEnabled",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "messageListenerContainerFactory",
				"type": "MessageListenerContainerFactory",
				"property": true,
				"option": true
			},
			{
				"name": "messageTimestampEnabled",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "pubSubNoLocal",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "queueBrowseStrategy",
				"type": "QueueBrowseStrategy",
				"property": true
			},
			{
				"name": "receiveTimeout",
				"type": "long",
				"default": "1000",
				"property": true,
				"option": true
			},
			{
				"name": "recoveryInterval",
				"type": "long",
				"default": "5000",
				"property": true,
				"option": true
			},
			{
				"name": "requestTimeoutCheckerInterval",
				"type": "long",
				"default": "1000",
				"property": true,
				"option": true
			},
			{
				"name": "synchronous",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "transferException",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "transferExchange",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "useMessageIDAsCorrelationID",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "waitForProvisionCorrelationToBeUpdatedCounter",
				"type": "int",
				"default": "50",
				"property": true,
				"option": true
			},
			{
				"name": "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime",
				"type": "long",
				"default": "100",
				"property": true,
				"option": true
			},
			{
				"name": "errorHandlerLoggingLevel",
				"type": "LoggingLevel",
				"default": "WARN",
				"property": true,
				"option": true
			},
			{
				"name": "errorHandlerLogStackTrace",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "password",
				"property": true,
				"option": true
			},
			{
				"name": "username",
				"property": true,
				"option": true
			},
			{
				"name": "transacted",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "transactedInOut",
				"type": "boolean",
				"default": "false",
				"property": true,
				"option": true
			},
			{
				"name": "lazyCreateTransactionManager",
				"type": "boolean",
				"default": "true",
				"property": true,
				"option": true
			},
			{
				"name": "transactionManager",
				"type": "PlatformTransactionManager",
				"property": true,
				"option": true
			},
			{
				"name": "transactionName",
				"property": true,
				"option": true
			},
			{
				"name": "transactionTimeout",
				"type": "int",
				"default": "-1",
				"property": true,
				"option": true
			}
		],
		"generators":[
			{
				"type": "pathParameter",
				"generator": "",
				"config": {
					"expression": "${destinationType}:${destinationName}"
				}
			},
			{
				"type": "init",
				"generator": ""
			},
			{
				"type": "ref",
				"generator": ""
			},
			{
				"type": "from",
				"generator": ""
			},
			{
				"type": "to",
				"generator": ""
			}
		]
	}
}