Script Component in Mule




Script Component in Mule



Defines a script component to use as a transformer. The Script transformer lets you select the particular scripting engine from a pull-down list. The predefined script transformers Groovy, JavaScript, Python, and Ruby have the scripting engines already set.

Minimum Configuration: None.

A Script transformer lets you use a script component as a transformer. You can configure a script using name/value pairs, in which case you must provide the key or name for the name/value pair.

Open the Properties Editor. Use the General tab to specify the file containing the script code or to enter the script itself. You also select the MIME Type and scripting engine from the Engine property pull-down list. Scripting engine choices are: JavaScript, Groovy, Python, and Ruby. The default scripting engine is Groovy.

The scripting engine is already set for the predefined script transformers (Groovy, JavaScript, Python, and Ruby) and there is no engine property for you to configure.


The Script Transformer has the same advanced properties as other transformers. Click the Advanced tab to set name/value pairs for configuring the script. You must provide the key name for each value pair you enter.

Here we are using Message Enricher in mule 3 in Anypoint studio 6.2

In flow i have written a simple groovy script in which incoming payload Hello appends with string Himanshu and total payload length is displayed along with appended string.



In script text, i have written simple groovy script





path : /script

url : http://localhost:8085/api/script
method : POST

 Input:



Output :





XML project code :


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

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting" 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.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://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd">
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" doc:name="HTTP Listener Configuration" basePath="/api"/>
    <flow name="test_scriptFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/script" doc:name="HTTP"/>
        <object-to-string-transformer doc:name="Object to String"/>
        <scripting:component doc:name="Script">
            <scripting:script engine="Groovy"><![CDATA[String str = "Himanshu";
String str1 = payload.toString() + ' ' + str;
'Message : ' + str1 + '\n' + 'Length of payload :' + str1.toString().length();


]]></scripting:script>

        </scripting:component>
        <object-to-string-transformer doc:name="Object to String"/>
        <set-payload value="#[payload]" doc:name="Set Payload"/>
    </flow>
</mule>