Chapter 41. JSLT Action
Apply a JSLT query or transformation on JSON.
41.1. Configuration Options Copy linkLink copied to clipboard!
The following table summarizes the configuration options available for the jslt-action Kamelet:
| Property | Name | Description | Type | Default | Example |
|---|---|---|---|---|---|
| template * | Template | The inline template for JSLT Transformation | string |
|
Fields marked with an asterisk (*) are mandatory.
41.2. Dependencies Copy linkLink copied to clipboard!
At runtime, the jslt-action Kamelet relies upon the presence of the following dependencies:
- camel:jslt
- camel:kamelet
41.3. Usage Copy linkLink copied to clipboard!
This section describes how you can use the jslt-action.
41.3.1. Knative Action Copy linkLink copied to clipboard!
You can use the jslt-action Kamelet as an intermediate step in a Knative binding.
jslt-action-binding.yaml
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
name: jslt-action-binding
spec:
source:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: timer-source
properties:
message: {"foo" : "bar"}
steps:
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: jslt-action
properties:
template: "file://template.json"
sink:
ref:
kind: Channel
apiVersion: messaging.knative.dev/v1
name: mychannel
41.3.1.1. Prerequisite Copy linkLink copied to clipboard!
Make sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you are connected to.
41.3.1.2. Procedure for using the cluster CLI Copy linkLink copied to clipboard!
-
Save the
jslt-action-binding.yamlfile to your local drive, and then edit it as needed for your configuration. Run the action by using the following command:
oc apply -f jslt-action-binding.yaml
41.3.1.3. Procedure for using the Kamel CLI Copy linkLink copied to clipboard!
Configure and run the action by using the following command:
kamel bind timer-source?message=Hello --step jslt-action -p "step-0.template=file://template.json" channel:mychannel
This command creates the KameletBinding in the current namespace on the cluster.
If the template points to a file that is not in the current directory, and if file:// or classpath:// is used, supply the transformation using the secret or the configmap.
To view examples, see with secret and with configmap. For details about necessary traits, see Mount trait and JVM classpath trait.
41.3.2. Kafka Action Copy linkLink copied to clipboard!
You can use the jslt-action Kamelet as an intermediate step in a Kafka binding.
jslt-action-binding.yaml
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
name: jslt-action-binding
spec:
source:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: timer-source
properties:
message: {"foo" : "bar"}
steps:
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: jslt-action
properties:
template: "file://template.json"
sink:
ref:
kind: KafkaTopic
apiVersion: kafka.strimzi.io/v1beta1
name: my-topic
41.3.2.1. Prerequisites Copy linkLink copied to clipboard!
Ensure that you have installed the AMQ Streams operator in your OpenShift cluster and create a topic named my-topic in the current namespace. Also, you must have "Red Hat Integration - Camel K" installed into the OpenShift cluster you are connected to.
41.3.2.2. Procedure for using the cluster CLI Copy linkLink copied to clipboard!
-
Save the
jslt-action-binding.yamlfile to your local drive, and then edit it as needed for your configuration. Run the action by using the following command:
oc apply -f jslt-action-binding.yaml
41.3.2.3. Procedure for using the Kamel CLI Copy linkLink copied to clipboard!
Configure and run the action by using the following command:
kamel bind timer-source?message=Hello --step jslt-action -p "step-0.template=file://template.json" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic
This command creates the KameletBinding in the current namespace on the cluster.
41.4. Kamelet source file Copy linkLink copied to clipboard!
https://github.com/openshift-integration/kamelet-catalog/blob/main/jslt-action.kamelet.yaml