Wednesday, April 24, 2019

Sorting in Mule 4

Sorting the data can be done using dataweave in Mule 4 with orderBy function.

orderBy: Reorders the content of an object using a value returned by a function as the criteria.

Sorting Numbers: In Mule 4 using dataweave.

Ascending order: To sort the numbers in ascending order, use 'orderBy $'.
Example: numberAsc: ([3,8,1,6] orderBy $)

Descending order: To sort the numbers in descending order, use 'orderBy -$'.
Example: numberDesc: ([3,8,1,6] orderBy -$)

Sorting Letters: In Mule 4  using dataweave.

Ascending order: To sort the letters in ascending order, use 'orderBy $' just like in case of sorting the numbers.
Example: letterAsc: (["s","e","p","z","a"] orderBy $)

Descending order: To sort the letters in descending order, there is an extra logic to be used. Arrange the letters in ascending order using 'orderBy $' and on top of that, use '[-1 to 0]', which inverts the ascending order thereby giving the descending order of letters.
Example: letterDesc: (["s","e","p","z","a"] orderBy $)[-1 to 0]

Complete code snippet:
Input Dataweave logic:


Output:

Please feel free to comment your queries/opinions.

Friday, April 5, 2019

Issues in Mule 4

Munit Debug Error


  • Currently the recommended version of runtime in Mule 4 is 4.1.5.
When we create Munit for our Mule 4 applications and try to run the test cases in debug mode,  we have an issue at times.

 

One of the solution for this is :
1. Copy the files from "C:\Users\{username}\.m2\repository\com\mulesoft\mule\agent\mule-debugger\4.1.4"
2. Paste them to "C:\Users\{username}\.m2\repository\com\mulesoft\mule\agent\mule-debugger\4.1.5" and rename file from 4.1.4 to 4.1.5


This should solve your problem.

Mule 4

Introduction

  • Mule 4 comes with the Anypoint Studio version 7, in simple Studio 7.
  • In Mule 4, we have Dataweave Language which replaced Mule Expression Language(MEL).
  • Try scope is added for the error handling which helps in handling easily.
  • Dataweave has been changed to 2.0.
  • Minor changes to Munit, which is easy to use now.
  • In mule 4, the code by default is a mavenised code. There is no need of manually mavenising as in case of Mule 3.
  • With Mule 4, it is now easy to build/develop the applications.

Will be adding more in detail with common issues faced in Mule 4.

Wednesday, August 8, 2018

Anypoint Studio

What:
Anypoint Studio is MuleSoft provided Eclipse-based IDE (integration development environment) to design and test Mule applications. You build applications based on the requirement and test them. You can deploy the applications and run it on your Mule server(which is an integrated server).

Anypoint Studio provides you with two parallel tabs to design and craft your applications:

  • Visual Editor
  • XML Editor


Visual editor is further divided into several parts:
  • Package Explorer
  • Canvas Area
  • Palette
  • Connection Explorer
  • Console Area
  • Properties Editor
  • DataSense Explorer

 
  • The Package Explorer displays project folders and files in a tree format. Click to expand or contract Mule project folders and examine the files that are used in a Mule project.
  • The Canvas Area is the space for creating the flows using the building blocks(Mule Palette components) to build a Mule application.
At the bottom of the canvas, three tabs which offer different ways to interface with your application are present.
    1. Message Flow: Drag-and-drop interface in which you arrange building blocks to form an application
    2. Global Elements: Interface for creating or editing reusable configurations for Mule building blocks
    3. Configuration XML: XML editor interface displays the XML elements that correspond to the building blocks arranged on the Message flow canvas.
  • The Palette, contains a list of building blocks that you can drag and drop onto the canvas to build your application.
  • The Connection Explorer displays a list of any global connector configurations defined in your application for quick access to your configuration details.
  • The Console area contains the console for the embedded Mule server, which displays a list of events and problems (if any) that Studio reports as you create or run your Mule application. It also displays the logs that are generated from the application.
  • The Properties editor tab is labeled with the name of the building block that is currently selected on your canvas, or with "Mule Properties View" when no building block is selected.
  • The properties editor includes the DataSense Explorer, which supplies real-time information about the data structure of your payload and any available inbound and outbound properties or variables.



Mulesoft Provided IDE (Anypoint Studio) installation

In my last post, we have seen how to get started with Mule-ESB. Let us check the installation steps in this post.

Installation Process: 
To work with Mule-ESB you need to have an IDE to build the applications, follow the below steps to get one.
1.Download the AnypointStudio ZIP file from the offical site (https://www.mulesoft.com/platform/studio) and save it.
2.Extract the ZIP file and double click on the 'AnypointStudio.exe'.
3.Select the Workspace location and click on launch.
4.And there we are, Anypoint Studio launches and opens the 'HomePage' with the introduction.




Sunday, April 15, 2018

Common Issues in Mule-ESB

Java was started but returned exit code 13....

Issue: 

Sometimes, when we try to open the AnypointStudio application, we end-up getting a pop-up saying, 'Java was started but returned exit code 13'. 



Reason: 

The possible reason for this might be the issue with the Java application installed in the system. 

Solution: 

Check 
  1. if the JDK is installed properly.
  2. if the path of the JDK file is correct.

Monday, March 12, 2018

Middleware/Integration

Mulesoft provided integration platform - Mule ESB


WHAT: 

Mule, the runtime engine of Anypoint Platform, is a lightweight Java-based enterprise service bus (ESB) and integration platform that allows developers to connect applications together quickly and easily, enabling them to exchange data(middleware which integrates multiple systems). For example, we can integrate a Database system of organization A with the Salesforce system of the same organization or any other organization if required. 

It allows integration of existing systems, irrespective of the different technologies that the applications use, including JMS, Web Services, JDBC, HTTP, and more. The ESB can be deployed anywhere, can integrate and orchestrate events in real time or in batch. 

The advantage with ESB is, it allows different applications to communicate with each other by acting as a transit system for carrying data between applications.

Mule capabilities include:
Service creation and hosting - Expose and host reusable services, using the ESB as a lightweight service container.
Service mediation - Shield services from message formats and protocols, separate business logic from messaging, and enable location-independent service calls.
Message routing - Route, filter, aggregate, and re-sequence messages based on content and rules.
Data transformation - Exchange data across varying formats and transport protocols.

WHY:

There are several commercial ESB implementations in the market. But many of these are with limited functionality or are built on top of an existing application server or messaging server, locking us into that specific vendor. Whereas Mule is vendor-neutral, so different vendor implementations can plug in to it.

Mule is lightweight but highly scalable, allowing us to start small and connect more applications over time. The ESB manages all the interactions between applications and components transparently, regardless of whether they exist in the same virtual machine or over the Internet, and regardless of the underlying transport protocol used.

HOW:

To get started, we need to install the Anypoint Studio from the Mulesoft offical site (https://www.mulesoft.com/platform/studio).  

TIBCO EMS :

TIBCO EMS :  TIBCO Enterprise Message Service™, our standards-based Java™ Message Service (JMS) broker allows any application that suppor...