Access Keys:
Skip to content (Access Key - 0)

Mule Studio Essentials

Sep 06, 2013 13:35

Janet Revell

Dec 12, 2013 09:52

Mulesoft Current Mule Documentation

Mule Studio Essentials

Mulesoft Documentation Page


Mule Studio Essentials 


An Eclipse-based, integration development environment Mule Studio offers two development environments you can use to create applications:

  1. a Visual Editor
  2. an XML Editor

Whatever you develop or configure in one editor is reflected in the other. This real-time reflection of changes is referred to as two-way editing.  Same app, different editor.


The Visual Editor

Studio's visual editor is divided into five parts:

  1. Package Explorer
  2. Canvas
  3. Palette
  4. Outline
  5. Console

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 make up a Mule project.

The Canvas provides a space for arranging pre-packaged building blocks into Mule applications. The Palette, on the right edge of the canvas, displays a list of Mule building blocks that you can drag and drop onto the canvas to build your application. At the base of the canvas, Studio offers three tabs which offer different ways to interface with your application:


  • Message Flow: the drag-and-drop interface in which you arrange building blocks to form an application
  • Global Elements: the interface for creating or editing reusable configurations for Mule building blocks
  • Configuration XML: the XML editor interface displays the XML statements that correspond to the building blocks arranged on the Message flow canvas

The Outline displays a miniaturized overview of the whole canvas, along with a box cursor that scrolls with the display in the canvas pane. This provides a high-level, bird's-eye view of your complete Mule application as it extends beyond the borders of the canvas.

The Console displays a list of events and problems (if any) that Studio reports as you create or run your Mule application. The JavaDoc and Declarations tabs display additional categories of information related to your code.


The XML Editor 

Because Mule Studio leverages Eclipse, the Configuration XML editor incorporates many Eclipse features. The following is a list of handy tips and tricks for using Mule Studio's XML editor.

Show Attribute Options

  1. Double click to select an attribute of an element, such as the host attribute of the HTTP endpoint element.
  2. Press Ctrl+space bar to open a list of suggested attributes you can configure for the element (see below).
  3. Use the up and down scroll arrows to browse through the suggestions.
  4. When you have highlighted the attribute you wish to use, press enter to insert it into the XML configuration. 

Suggest Elements

  1. Enter an element's left angle bracket ( < ), then press Ctrl+space bar.
  2. Recognizing that you are entering a new element, Studio lists all possible element for that particular situation.
  3. Use the up and down scroll arrows to browse through the suggestions.
  4. When you have highlighted the element you wish to use, press enter to insert it into the XML configuration.


Building Applications in Studio

Use Mule Studio to arrange building blocks on the canvas to create flows which, together, form an application to process messages.

Confused? Let's break it down–

Building Blocks

A building block is a pre-packaged unit of business logic that comes bundled with Mule. As the name implies, it is a block (a block of code, really) that you can arrange with other blocks to form a structure. In this case, you are arranging building blocks to form a Mule flow.

Building blocks fall into one of two categories depending on their function within a Mule flow:




Message Sources

Also known as Endpoints or Connectors, inbound and outbound message sources accept messages into flows, or send data out of flows to other sources or services, respectively. (Technically, message sources, which receive or send messages, rather than process them, do not qualify as message processors.)

HTTP endpoint, Ajax endpoint, Salesforce Connector

Message Processors

Message processors filter, alter, route, or validate messages.
Some message processors are components,  pre-packaged or custom-coded, elements which integrate specific functionality. (The custom code can be developed as a Java class, a Spring bean, or as a Ruby, JavaScript, Groovy, or Python script.)

Payload Filter, Choice Flow Control, Email to String Transformer


To arrange building blocks to form a flow, simply drag and drop them from the palette onto the canvas.


After you have arranged building blocks into a flow, you must configure each building block individually. Click the building block to open its Properties Editor in the console, then supply the values for the configuration fields (see image below).

Studio saves all of your configurations in the XML file for your application. To see the XML version of your flow, click the Configuration XML tab below the canvas.



A flow resides at the heart of every Mule application, orchestrating message processing and, at times, triggering other flows. Typically, a message source receives a message, which triggers the main message processing flow. Each building block in the flow evaluates or processes the message until the message has passed through all the building blocks in the flow. 

For more information on the types of flows and variations in behavior, see Mule Application Architecture.



Applications are collections of flows that work together to process a message. Simple applications can consist of a single flow of message processors, but complex applications can contain several flows. Within the context of Mule Studio, the terms application and project are often used interchangeably.



Messages are the functional data units, or events, that Mule applications process. For example, each customer order submitted to a Mule purchase fulfillment application qualifies as a message. Each message contains a header and a payload. The header contains properties that provide metadata about the message. The payload contains the data, which may contain XML, JSON, files, streams, maps, Java objects, or any other type of data.



Go Further