This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
commit 123d3f98ce80a4aeb003fe72c11bc38a56e54c8d Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Thu Nov 25 14:42:14 2021 +0100 Added Infinispan Sink Kamelet --- .../kamelets/infinispan-sink.kamelet.yaml | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/library/camel-kamelets/src/main/resources/kamelets/infinispan-sink.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/infinispan-sink.kamelet.yaml new file mode 100644 index 0000000..e801d59 --- /dev/null +++ b/library/camel-kamelets/src/main/resources/kamelets/infinispan-sink.kamelet.yaml @@ -0,0 +1,115 @@ +apiVersion: camel.apache.org/v1alpha1 +kind: Kamelet +metadata: + name: infinispan-sink + labels: + camel.apache.org/kamelet.type: "source" + annotations: + camel.apache.org/kamelet.support.level: "Preview" + camel.apache.org/catalog.version: "main-SNAPSHOT" + camel.apache.org/provider: "Apache Software Foundation" + camel.apache.org/kamelet.group: "Infinispan" + camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyBpZD0iYXJ0d29yayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAyNCAyMTUiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMGIyNTQ1O30uY2xzLTJ7ZmlsbDojNTk5ZmM2O308L3N0eWxlPjwvZGVmcz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjI5Ny4yNCIgeT0iMS45OCIgd2lkdGg9IjExLjkiIGhlaWdodD0iMTU4LjEyIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzk1LjI1LDY0Ljg4Yy03LjgxLTkuNDUtMTguOS0xNC4yNC0zMy0xNC4yNC0xMy43NywwLTI0LjczLDQuNzUtMzIuNjQsMTQuMTFWNTIuMzlIMz [...] +spec: + definition: + title: "Infinispan Sink" + description: |- + Write object to an Infinispan cache. + + The Kamelet expects the following headers to be set: + + - `key` / `ce-key`: as the key to use when put an object in the Infinispan cache. + + If the header won't be set the exchange ID will be used as key. + required: + - cacheName + - hosts + - username + - password + type: object + properties: + cacheName: + title: Cache Name + description: The name of the Infinispan cache to use + type: String + hosts: + title: Hosts + description: Specifies the host of the cache on Infinispan instance + type: String + secure: + title: Secure + description: If the Infinispan instance is secured or not + type: boolean + default: true + x-descriptors: + - 'urn:alm:descriptor:com.tectonic.ui:checkbox' + username: + title: Username + description: Username to connect to Infinispan. + type: string + x-descriptors: + - urn:camel:group:credentials + password: + title: Password + description: Password to connect to Infinispan. + type: string + format: password + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + - urn:camel:group:credentials + saslMechanism: + title: SASL Mechanism + description: The SASL Mechanism to use + type: String + default: "DIGEST-MD5" + securityRealm: + title: Security Realm + description: Define the security realm to access the infinispan instance + type: string + default: "default" + securityServerName: + title: Security Server name + description: Define the security server name to access the infinispan instance + type: string + default: "infinispan" + dependencies: + - "camel:kamelet" + - "camel:core" + - "camel:infinispan" + flow: + beans: + - name: local-infinispan + type: "#class:org.apache.camel.component.infinispan.remote.InfinispanRemoteComponent" + from: + uri: "kamelet:source" + steps: + - choice: + when: + - simple: "${header[key]}" + steps: + - set-header: + name: CamelInfinispanKey + simple: "${header[key]}" + - simple: "${header[ce-key]}" + steps: + - set-header: + name: CamelInfinispanKey + simple: "${header[ce-key]}" + otherwise: + steps: + - set-header: + name: CamelInfinispanKey + simple: "${exchangeId}" + - set-header: + name: CamelInfinispanValue + simple: "${body}" + - to: + uri: "{{local-infinispan}}:{{cacheName}}" + parameters: + hosts: "{{hosts}}" + secure: "{{secure}}" + username: "{{username}}" + password: "{{password}}" + saslMechanism: "{{saslMechanism}}" + securityRealm: "{{securityRealm}}" + securityServerName: "{{securityServerName}}"