diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..051d983 --- /dev/null +++ b/kamelet.json @@ -0,0 +1,199 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "jms-ibm-mq-source", + "annotations": { + "camel.apache.org/kamelet.icon": "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA1NzMuMDggNTc2Ljk3Ij4KICAgIDxkZWZzPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgLmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzVhNzdiNTt9LmNscy0ze2ZpbGw6I2FmYmVlMDt9LmNscy00e2NsaXAtcGF0aDp1cmwoI2NsaXAtcGF0aCk7fS5jbHMtNXtjbGlwLXBhdGg6dXJsKCNjbGlwLXBhdGgtMik7fQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPgogICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiCiAgICAgICAgICAgICAgICAgIGQ9Ik0xNjQuNSw1MTAuODhWNDU3aDQuMDh2NTMuOTFabTQ3Ljc4LTI3LjcxYTEzLjE0LDEzLjE0LDAsMCwxLDkuMjMsMTNjMCw5LjYyLTYuMjgsMTQuNjktMTUuODIsMTQuNjlIMTg1LjI0VjQ1N2gxOS44NGM4Ljk0LDAsMTUuNiw1LjE1LDE1LjYsMTQuMDhhMTIuMzgsMTIuMzgsMCwwLDEtOC40LDEyLjEyWm0tMjIuOTUsMjQuMDhoMTUuOWM3LjM1LDAsMTIuMTktNC4xNywxMi4xOS0xMS4wNnMtNC44NC0xMS4wNS0xMi4xOS0xMS4wNWgtMTUuOXYyMi4xMVptMTUuMy00Ni42NWgtMTUuM3YyMC45aDE1LjNjNi41MSwwLDEyLTMsMTItMTAuNDVzLTUuNDUtMTAuNDUtMTItMTAuNDVabTcyLjYxLDUwLjI4VjQ2Ni40M2wtMTYuMzUsMzYuODhIMjU2LjhsLTE2LjY2LTM2Ljg4djQ0LjQ1aC00LjA5VjQ1N2g0LjA5bDE4Ljc4LDQxLjU3TDI3Ny4yNCw0NTdoNC4wOXY1My45MVoiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoLTIiPgogICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiCiAgICAgICAgICAgICAgICAgIGQ9Ik0zNDkuNyw1MTAuODRWNDc3LjI4aC0uMThsLTEwLjkxLDI1Ljg0SDMzMmwtMTAuOTEtMjUuODRIMzIxdjMzLjU2aC03LjlWNDU3aDcuNDRsMTUsMzUuMDdMMzUwLjEzLDQ1N2g3LjQ2djUzLjgxWm01NC4yLTEwLDYuODgsNS42NS00LjY5LDUuNjEtNi41OC01LjQ0cS00LjYyLDQuNTEtMTIuMyw0LjY2YTE3Ljg5LDE3Ljg5LDAsMCwxLTEwLjI1LTMuMSwxNy43LDE3LjcsMCwwLDEtNi4wOC02LjU3Yy0uMzgtLjgxLS43My0xLjU5LTEtMi4zMmExNS40NSwxNS40NSwwLDAsMS0uNzItMi44OCwxNDUuMjksMTQ1LjI5LDAsMCwxLDAtMjUsMTUuMzgsMTUuMzgsMCwwLDEsMS43NS01LjEzLDE4LjMzLDE4LjMzLDAsMCwxLDYuMDgtNi42NCwxNy40NywxNy40NywwLDAsMSwxMC4yNS0zLDE3Ljc2LDE3Ljc2LDAsMCwxLDEwLjM2LDMsMTgsMTgsMCwwLDEsNS45NCw2LjY0LDEyLjc5LDEyLjc5LDAsMCwxLDEuODIsNS4xMywxMDcuMjMsMTA3LjIzLDAsMCwxLC40NiwxMi41NXEwLDguMzgtLjM2LDExLjdhMTQuNTEsMTQuNTEsMCwwLDEtMS41Myw1LjE3Wm0tNi41NC0yNy43MWExMS4yNiwxMS4yNiwwLDAsMC01LjI2LTcuMjQsMTEuMTgsMTEuMTgsMCwwLDAtNC45MS0xLjE1LDEwLjYzLDEwLjYzLDAsMCwwLTQuOCwxLjE1LDEwLjA5LDEwLjA5LDAsMCwwLTMuMjksMi43Nyw5LDksMCwwLDAtMiw0LjQ4LDY2LjcsNjYuNywwLDAsMC0uNTcsMTAuODMsNjUuNDcsNjUuNDcsMCwwLDAsLjU3LDEwLjc3LDksOSwwLDAsMCwyLDQuNTQsOS40Nyw5LjQ3LDAsMCwwLDMuMjksMi43MSw5LjExLDkuMTEsMCwwLDAsNC44LDEuMjIsOC42Miw4LjYyLDAsMCwwLDUuODQtMS44OWwtNi42Ni01LjQ3LDQuNjktNS41OSw2LjA5LDVxLjc1LTIuNzMuNzUtMTEuMjhhNzAuNiw3MC42LDAsMCwwLS41NC0xMC44NFoiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgPC9kZWZzPgogICAgPHRpdGxlPklCTSBJUTwvdGl0bGU+CiAgICA8Y2lyY2xlIGNsYXNzPSJjbHMtMiIgY3g9IjI4Ny42NCIgY3k9IjI4Ny4yIiByPSIyNzguNSIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0zIgogICAgICAgICAgICAgcG9pbnRzPSI0NTguMTcgNDI2LjY3IDExNy4xMSA0MjYuNjcgMTE3LjExIDE1My41NSA3MC45MSAxNTMuNTUgNzAuOTEgMTMxLjU1IDEzOS4xMSAxMzEuNTUgMTM5LjExIDQwNC42NyA0MzYuMTcgNDA0LjY3IDQzNi4xNyAxMzEuNTUgNTA0LjM3IDEzMS41NSA1MDQuMzcgMTUzLjU1IDQ1OC4xNyAxNTMuNTUgNDU4LjE3IDQyNi42NyIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0xIgogICAgICAgICAgICAgcG9pbnRzPSI0MjAuMjYgMjUzLjEyIDQyMC4yNiAyNDEuNzcgMTU1LjAyIDI0MS43NyAxNTUuMDIgMjUyLjg1IDI4Ny44OCAzMjkuNDkgNDIwLjI2IDI1My4xMiIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0xIgogICAgICAgICAgICAgcG9pbnRzPSIyODcuODggMzM5Ljc1IDE1NS4wMiAyNjMuMTEgMTU1LjAyIDM4OC44NCA0MjAuMjYgMzg4Ljg0IDQyMC4yNiAyNjMuMzggMjg3Ljg4IDMzOS43NSIvPgogICAgPHBhdGggY2xhc3M9ImNscy0xIgogICAgICAgICAgZD0iTTE2NC41LDUxMC44OFY0NTdoNC4wOHY1My45MVptNDcuNzgtMjcuNzFhMTMuMTQsMTMuMTQsMCwwLDEsOS4yMywxM2MwLDkuNjItNi4yOCwxNC42OS0xNS44MiwxNC42OUgxODUuMjRWNDU3aDE5Ljg0YzguOTQsMCwxNS42LDUuMTUsMTUuNiwxNC4wOGExMi4zOCwxMi4zOCwwLDAsMS04LjQsMTIuMTJabS0yMi45NSwyNC4wOGgxNS45YzcuMzUsMCwxMi4xOS00LjE3LDEyLjE5LTExLjA2cy00Ljg0LTExLjA1LTEyLjE5LTExLjA1aC0xNS45djIyLjExWm0xNS4zLTQ2LjY1aC0xNS4zdjIwLjloMTUuM2M2LjUxLDAsMTItMywxMi0xMC40NXMtNS40NS0xMC40NS0xMi0xMC40NVptNzIuNjEsNTAuMjhWNDY2LjQzbC0xNi4zNSwzNi44OEgyNTYuOGwtMTYuNjYtMzYuODh2NDQuNDVoLTQuMDlWNDU3aDQuMDlsMTguNzgsNDEuNTdMMjc3LjI0LDQ1N2g0LjA5djUzLjkxWiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0xIgogICAgICAgICAgZD0iTTM0OS43LDUxMC44NFY0NzcuMjhoLS4xOGwtMTAuOTEsMjUuODRIMzMybC0xMC45MS0yNS44NEgzMjF2MzMuNTZoLTcuOVY0NTdoNy40NGwxNSwzNS4wN0wzNTAuMTMsNDU3aDcuNDZ2NTMuODFabTU0LjItMTAsNi44OCw1LjY1LTQuNjksNS42MS02LjU4LTUuNDRxLTQuNjIsNC41MS0xMi4zLDQuNjZhMTcuODksMTcuODksMCwwLDEtMTAuMjUtMy4xLDE3LjcsMTcuNywwLDAsMS02LjA4LTYuNTdjLS4zOC0uODEtLjczLTEuNTktMS0yLjMyYTE1LjQ1LDE1LjQ1LDAsMCwxLS43Mi0yLjg4LDE0NS4yOSwxNDUuMjksMCwwLDEsMC0yNSwxNS4zOCwxNS4zOCwwLDAsMSwxLjc1LTUuMTMsMTguMzMsMTguMzMsMCwwLDEsNi4wOC02LjY0LDE3LjQ3LDE3LjQ3LDAsMCwxLDEwLjI1LTMsMTcuNzYsMTcuNzYsMCwwLDEsMTAuMzYsMywxOCwxOCwwLDAsMSw1Ljk0LDYuNjQsMTIuNzksMTIuNzksMCwwLDEsMS44Miw1LjEzLDEwNy4yMywxMDcuMjMsMCwwLDEsLjQ2LDEyLjU1cTAsOC4zOC0uMzYsMTEuN2ExNC41MSwxNC41MSwwLDAsMS0xLjUzLDUuMTdabS02LjU0LTI3LjcxYTExLjI2LDExLjI2LDAsMCwwLTUuMjYtNy4yNCwxMS4xOCwxMS4xOCwwLDAsMC00LjkxLTEuMTUsMTAuNjMsMTAuNjMsMCwwLDAtNC44LDEuMTUsMTAuMDksMTAuMDksMCwwLDAtMy4yOSwyLjc3LDksOSwwLDAsMC0yLDQuNDgsNjYuNyw2Ni43LDAsMCwwLS41NywxMC44Myw2NS40Nyw2NS40NywwLDAsMCwuNTcsMTAuNzcsOSw5LDAsMCwwLDIsNC41NCw5LjQ3LDkuNDcsMCwwLDAsMy4yOSwyLjcxLDkuMTEsOS4xMSwwLDAsMCw0LjgsMS4yMiw4LjYyLDguNjIsMCwwLDAsNS44NC0xLjg5bC02LjY2LTUuNDcsNC42OS01LjU5LDYuMDksNXEuNzUtMi43My43NS0xMS4yOGE3MC42LDcwLjYsMCwwLDAtLjU0LTEwLjg0WiIvPgo8L3N2Zz4=", + "camel.apache.org/kamelet.support.level": "Stable", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/catalog.version": "4.22.1", + "camel.apache.org/kamelet.group": "JMS", + "camel.apache.org/kamelet.namespace": "Messaging" + }, + "labels": { + "camel.apache.org/kamelet.type": "source", + "camel.apache.org/requires.runtime": "camel-k" + } + }, + "spec": { + "definition": { + "title": "JMS - IBM MQ Source", + "description": "A Kamelet that can read events from an IBM MQ message queue using JMS.", + "required": [ + "serverName", + "serverPort", + "destinationName", + "queueManager", + "channel", + "username", + "password" + ], + "type": "object", + "properties": { + "serverName": { + "title": "IBM MQ Server name", + "description": "IBM MQ Server name or address.", + "type": "string" + }, + "serverPort": { + "title": "IBM MQ Server Port", + "description": "IBM MQ Server port.", + "type": "integer", + "default": 1414 + }, + "destinationType": { + "title": "Destination Type", + "description": "The JMS destination type (queue or topic).", + "type": "string", + "default": "queue" + }, + "destinationName": { + "title": "Destination Name", + "description": "The destination name.", + "type": "string" + }, + "queueManager": { + "title": "IBM MQ Queue Manager", + "description": "Name of the IBM MQ Queue Manager.", + "type": "string" + }, + "channel": { + "title": "IBM MQ Channel", + "description": "Name of the IBM MQ Channel.", + "type": "string" + }, + "clientId": { + "title": "IBM MQ Client ID", + "description": "Name of the IBM MQ Client ID.", + "type": "string" + }, + "username": { + "title": "Username", + "description": "Username to authenticate to IBM MQ server.", + "type": "string" + }, + "password": { + "title": "Password", + "description": "Password to authenticate to IBM MQ server.", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "sslCipherSuite": { + "title": "CipherSuite", + "description": "CipherSuite to use for enabling TLS.", + "type": "string" + } + } + }, + "dependencies": [ + "camel:jms", + "camel:kamelet" + ], + "template": { + "beans": [ + { + "name": "wmqConnectionFactory", + "type": "#class:com.ibm.mq.jakarta.jms.MQConnectionFactory", + "properties": { + "XMSC_WMQ_HOST_NAME": "{{serverName}}", + "XMSC_WMQ_PORT": "{{serverPort}}", + "XMSC_WMQ_CHANNEL": "{{channel}}", + "XMSC_WMQ_QUEUE_MANAGER": "{{queueManager}}", + "XMSC_WMQ_CONNECTION_MODE": 1, + "XMSC_USERID": "{{username}}", + "XMSC_PASSWORD": "{{password}}", + "XMSC_CLIENT_ID": "{{?clientId}}", + "XMSC_WMQ_SSL_CIPHER_SUITE": "{{?sslCipherSuite}}" + } + } + ], + "from": { + "uri": "jms:{{destinationType}}:{{destinationName}}", + "parameters": { + "connectionFactory": "#bean:{{wmqConnectionFactory}}" + }, + "steps": [ + { + "to": { + "uri": "kamelet:sink" + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "JMS - IBM MQ Source", + "description": "A Kamelet that can read events from an IBM MQ message queue using JMS.", + "required": [ + "serverName", + "serverPort", + "destinationName", + "queueManager", + "channel", + "username", + "password" + ], + "properties": { + "serverName": { + "type": "string", + "title": "IBM MQ Server name", + "description": "IBM MQ Server name or address." + }, + "serverPort": { + "type": "integer", + "title": "IBM MQ Server Port", + "description": "IBM MQ Server port.", + "default": 1414 + }, + "destinationType": { + "type": "string", + "title": "Destination Type", + "description": "The JMS destination type (queue or topic).", + "default": "queue" + }, + "destinationName": { + "type": "string", + "title": "Destination Name", + "description": "The destination name." + }, + "queueManager": { + "type": "string", + "title": "IBM MQ Queue Manager", + "description": "Name of the IBM MQ Queue Manager." + }, + "channel": { + "type": "string", + "title": "IBM MQ Channel", + "description": "Name of the IBM MQ Channel." + }, + "clientId": { + "type": "string", + "title": "IBM MQ Client ID", + "description": "Name of the IBM MQ Client ID." + }, + "username": { + "type": "string", + "title": "Username", + "description": "Username to authenticate to IBM MQ server." + }, + "password": { + "type": "string", + "title": "Password", + "description": "Password to authenticate to IBM MQ server.", + "format": "password" + }, + "sslCipherSuite": { + "type": "string", + "title": "CipherSuite", + "description": "CipherSuite to use for enabling TLS." + } + } + } +} \ No newline at end of file