Expression Filter in Mule




Expression Filter in Mule


Mule Filters are a handy way of analyzing the messages passing through our flow and determining whether they should be processed or not. Simply put, once a message reaches a filter component in the flow and meets the filter’s logical conditions, the message may pass through untouched. Otherwise, flow execution is terminated and no more processing is done. 
Expression filter filters payload on the basis of some expression.Here in our example i have given an expression that if name query parameter equals to himanshu then only it will allow to pass payload.


#[message.inboundProperties.'http.query.params'.name == 'himanshu']


flow of expression filter :




expression filter configuration :





URL  :  http://localhost:8085/api/expfilter


Input :




Output :




XML Project code :


<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd">
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" basePath="/api" doc:name="HTTP Listener Configuration"/>
 <flow name="testfiltersFlow1">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/expfilter" doc:name="HTTP"/>
        <expression-filter expression="#[message.inboundProperties.'http.query.params'.name == 'himanshu']" doc:name="Expression"/>
    </flow>
</mule>