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

SnapLogic is the leading self-service enterprise-grade integration platform. Download the 2018 GartnerMagic Quadrant for Enterprise iPaaS or play around on the platform, risk free, for 30 days.

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.

With SnapLogic’s integration platform you can save millions of dollars, increase integrator productivity by 5X, and reduce integration time to value by 90%. Sign up for our risk-free 30-day trial!

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 }}