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

MuleSoft: Using a Groovy Component

DZone's Guide to

MuleSoft: Using a Groovy Component

Looking for some time to let your code catch its breath? Adding a Groovy component to your Mule can give you the pause you're looking for.

· Integration Zone ·
Free Resource

The Future of Enterprise Integration: Learn how organizations are re-architecting their integration strategy with data-driven app integration for true digital transformation.

While working with MuleSoft, we would often like to pause process execution for while and continue later. Normally in Java, we can use the sleep() method to achieve that. But with Mule, the Groovy component has the answer.

Sample Use Case

Let's consider a flow where a file component will poll files from a particular location and will push them to specified target location. We would like to hold the file for a particular interval (say three seconds) and then push it outbound.
Image title

Implementation

We can achieve that by using the Groovy component, followed by implementating the sleep method within it. 

1. First, create a Mule project followed by a flow-apstartFlow1.

2. Add and configure the file component as inbound and outbound. Add a Groovy component between the two file components:

Using groovy component


3. Add a script in the Groovy configuration:

Image title


4. Save and run the application.

5. The console log will contain the message specified in the script:

Image title

Note: I have used Mule runtime 3.8 while taking the screenshots.

So, with that, we have seen that the Groovy component is useful for implementing some custom business requirements.

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 ,groovy

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}