Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Groovy Component With Mule ESB

DZone's Guide to

Groovy Component With Mule ESB

Learn how the Groovy component is used in Mule flows to integrate custom scripts. This tutorial shows you how to configure and utilize the Groovy component.

· Integration Zone ·
Free Resource

How to Transform Your Business in the Digital Age: Learn how organizations are re-architecting their integration strategy with data-driven app integration for true digital transformation.

The Groovy component is very similar to Python, Ruby or Java components. The Groovy component provides developers with the facilities to integrate custom scripts into a flow using the Groovy scripting engine.

As an example, you can write a custom script using Groovy language for an application, save it in a separate file and then configure the Groovy component to reference the file. Or, after placing the Groovy component on the Studio canvas you can type in the script through the Groovy Pattern Properties pane.

Place the Groovy component in the message processor region from the Mule palette.

Image title

Image title

Use the Advanced tab to configure the interceptors and property for the Groovy component.

Interceptors enable the developer to provide additional services to the component, such as the ability to log transactions and the ability to log the time for each transaction.

Configure these parameters to define attribute keys and their associated values. This enables the component to quickly look up a value associated with a key.

Image title

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

<mule 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/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd">
    <flow name="sdfsffsdFlow">
        <scripting:component doc:name="Groovy">
            <scripting:script engine="Groovy"><![CDATA[a=10
b=20

sum=Integer.parseInt(a)+Integer.parseInt(b)]]></scripting:script>
        </scripting:component>
    </flow>
</mule>

Accessing Flow Variable in the Groovy Component

message.getInvocationProperty('myFlowVariable')

OR

message.getProperty('myFlowVariable',org.mule.api.transport.PropertyScope.INVOCATION)

OR

flowVars['myFlowVariable']

Accessing Session Variable in the Groovy Component

message.getSessionProperty('mySessionVariable')

OR

message.getProperty('mySessionVariable',org.mule.api.transport.PropertyScope.SESSION)

OR

sessionVars['mySessionVariable']

Setting a Property in the Groovy Component

Go to the Advanced tab and add a property.

Image title

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

<mule 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/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd">
    <flow name="sdfsffsdFlow">
        <scripting:component doc:name="Groovy">
            <scripting:script engine="Groovy">
                <property key="num1" value="#[flowVars.a]"/>
                <property key="num2" value="#[flowVars.b]"/><![CDATA[sum=Integer.parseInt(num1)+Integer.parseInt(num2)]]></scripting:script>
        </scripting:component>
    </flow>
</mule>

Here is the video tutorial:


Now you know how to use the Groovy component with Mule ESB.

Make your mark on the industry’s leading annual report. Fill out the State of API Integration 2019 Survey and receive $25 to the Cloud Elements store.

Topics:
mulesoft ,mule esb ,tutorial ,groovy ,integration

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}