Chapter 55. Predicate Filter Action
Filter based on a JsonPath Expression
55.1. Configuration Options
				The following table summarizes the configuration options available for the predicate-filter-action Kamelet:
			
| Property | Name | Description | Type | Default | Example | 
|---|---|---|---|---|---|
| expression * | Expression | The JsonPath Expression to evaluate, without the external parenthesis. Since this is a filter, the expression will be a negation, this means that if the foo field of the example is equals to John, the message will go ahead, otherwise it will be filtered out. | string | 
								 | 
Fields marked with an asterisk (*) are mandatory.
55.2. Dependencies
				At runtime, the predicate-filter-action Kamelet relies upon the presence of the following dependencies:
			
- camel:core
- camel:kamelet
- camel:jsonpath
55.3. Usage
				This section describes how you can use the predicate-filter-action.
			
55.3.1. Knative Action
					You can use the predicate-filter-action Kamelet as an intermediate step in a Knative binding.
				
predicate-filter-action-binding.yaml
55.3.1.1. Prerequisite
Make sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you’re connected to.
55.3.1.2. Procedure for using the cluster CLI
- 
								Save the predicate-filter-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 predicate-filter-action-binding.yaml - oc apply -f predicate-filter-action-binding.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
55.3.1.3. Procedure for using the Kamel CLI
Configure and run the action by using the following command:
kamel bind timer-source?message=Hello --step predicate-filter-action -p "step-0.expression=@.foo =~ /.*John/" channel:mychannel
kamel bind timer-source?message=Hello --step predicate-filter-action -p "step-0.expression=@.foo =~ /.*John/" channel:mychannelThis command creates the KameletBinding in the current namespace on the cluster.
55.3.2. Kafka Action
					You can use the predicate-filter-action Kamelet as an intermediate step in a Kafka binding.
				
predicate-filter-action-binding.yaml
55.3.2.1. Prerequisites
						Ensure that you’ve installed the AMQ Streams operator in your OpenShift cluster and created a topic named my-topic in the current namespace. Make also sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you’re connected to.
					
55.3.2.2. Procedure for using the cluster CLI
- 
								Save the predicate-filter-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 predicate-filter-action-binding.yaml - oc apply -f predicate-filter-action-binding.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
55.3.2.3. Procedure for using the Kamel CLI
Configure and run the action by using the following command:
kamel bind timer-source?message=Hello --step predicate-filter-action -p "step-0.expression=@.foo =~ /.*John/" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic
kamel bind timer-source?message=Hello --step predicate-filter-action -p "step-0.expression=@.foo =~ /.*John/" kafka.strimzi.io/v1beta1:KafkaTopic:my-topicThis command creates the KameletBinding in the current namespace on the cluster.
55.4. Kamelet source file
https://github.com/openshift-integration/kamelet-catalog/predicate-filter-action.kamelet.yaml