Studio Endpoints
Endpoints pass messages into and out of a Mule flow, usually to external resources such as databases, Web clients, or email servers, but they can exchange messages with other Mule flows as well. Specific endpoints such as HTTP, JMS, and WMQ each use a specific channel (i.e., transport protocol) to transfer messages.
About Inbound Endpoints
An Inbound Endpoint, which resides at the beginning of a flow and acts as a Message Source, triggers a new flow instance each time it receives a message.
Each incoming message must arrive on the specific transport channel supported by the receiving endpoint. For example, email can arrive on a POP3 or IMAP inbound endpoint, but files must use the FTP, File, or SFTP endpoints.
Moving Inbound Endpoints
Version 3.3.1 only: Moving an inbound endpoint within a flow changes its exchange pattern. When you click to drag an inbound endpoint to a new location, Mule displays a pop-up dialogue to advise that it is automatically converting the endpoint from inbound to outbound.
About Composite Sources
A special Studio building block typically placed at the beginning of a flow and known as a Composite Source Scope allows you to encapsulate two or more endpoints that receive the same type of data (e.g., email, files, database maps, or HTML) into a single message processing block. Each embedded endpoint listens on its specific channel for incoming messages. Whichever endpoint receives a message first becomes the message source for that particular instance of the flow.
Drag the Composite Source Scope onto the Message Flow canvas from the Studio Palette, then drag the endpoints into the Composite Source Scope processing block. The composite source then allows the each embedded endpoint to act as a temporary, non-exclusive message source when it receives an incoming message.
About Outbound Endpoints
If an endpoint is not the first building block (i.e., the message source) in a flow, it is designated as an Outbound Endpoint, since it uses the specific transport channel it supports (such as SMTP, HTTP, or JDBC) to dispatch messages to targets outside the flow, which can range from file systems to email servers to Web clients and can also include other Mule flows.
In many cases, an Outbound Endpoint completes a flow by dispatching a fully processed message to its final, external destination. However, Outbound Endpoints don’t always complete flow processing, because they can also exist in the middle of a flow, dispatching data to an external source, and also passing that (or some other data) to the next message processor in the flow.
Moving Outbound Endpoints
Version 3.3.1 only: If you move the endpoint to the beginning of a flow, Mule does not automatically convert the endpoint from outbound to inbound. In such a case, right click the outbound endpoint, then select Convert to an inbound endpoint to manually change its exchange pattern.
About Request-Response Endpoints
Some endpoints, when set to a request-response exchange pattern, become "hybrid" endpoints which both accept incoming messages (thus acting as message sources or inbound endpoints), and dispatch processed message results back to their original senders (thus acting as outbound endpoints). Furthermore, request-response endpoints can, under specific circumstances, appear at the beginning, middle, or end of a flow.
Configuration
The pre-packaged endpoints that ship with Studio require little configuration, except for context-specific values. Wherever practical, Studio provides default values that you can override, as necessary. Studio also bundles all required code resources for specific endpoints.
Endpoint configuration consists of two stages:
-
Position the endpoint within the flow on the Message Flow canvas.
-
Configure a number of context-specific values through the Endpoint’s graphical Properties pane, which you open by double-clicking the endpoint icon.
When you create certain endpoints (Ajax, JDBC, JMS, SMTP, and File), you must create a corresponding Global Connector.
While unique properties exist for various endpoints, most of these building blocks share common properties.
The endpoint Properties panes shown throughout this page are typical, but not definitive for all situations. Keep in mind at all times that specific endpoint property panes and individual property fields vary depending on the type of endpoint and how that endpoint is used within a flow.
The General Tab
Typically, the General tab provides fields for the following:
Property | Description |
---|---|
Display Name |
Defaults to the generic endpoint name. Change the display name, which must be alpha-numeric, to reflect the endpoint’s specific role, e.g., |
Exchange-Pattern |
Defines the interaction between the client and server. The available patterns are one-way and request-response. A one-way exchange-pattern assumes that no response from the server is necessary, while a request-response exchange-pattern waits for the server to respond before it allows message processing to continue. |
Enable HTTPS |
Activates SSL for the endpoint. Check the box to enable SSL security. |
Host |
The default name is |
Port |
The port number used to connect to the server. (e.g., 80) |
Path |
Allows connection to the server using a path instead of a username and password. e.g., /enter/the/path |
Depending on the Endpoint type (inbound or outbound); these additional parameters may appear on the General tab:
Property | Description |
---|---|
Polling Frequency |
Time is milliseconds (ms) to check for incoming messages. Default value is 1000 ms. |
Output Pattern |
Choose the pattern from a drop down list. Used when writing parsed filenames to disk. |
FTP Settings |
Check Binary to enable binary file transport. Check Passive to enable passive protocol. Use passive protocol if the client is behind a firewall. |
Query Key |
Enter the key of the query to use. |
Transaction |
Lets you select the element to use for a transaction. Use the plus button to add Mule transactions. |
Cron Information |
Enter a |
Method |
The operation performed on message data. Available options are: OPTION, GET, HEAD, POST, PUT, TRACE, CONNECT and DELETE. |
The Advanced Tab
For most endpoints, the Advanced tab includes the following generic properties:
Property | Description |
---|---|
Address |
Enter the URL address. If using this attribute, include it as part of the URI. |
Response Timeout |
How long the endpoint waits for a response (in ms). |
Encoding |
Select the character set the transport will use. e.g., UTF-8 |
Disable Transport Transformer |
Check this box if you do not want to use the endpoint’s default response transport. |
MIME Type |
Select a format from the drop-down list that this endpoint supports. |
Depending on the endpoint type (inbound or outbound), these additional parameters may appear on the Advanced tab:
Property | Description |
---|---|
Polling Frequency |
How often (in ms) the endpoint checks for incoming messages. |
Identity File and Passphrase Information |
Enter PKI authentication information. |
Follow Redirects |
If a request is made using GET that responds with a redirectLocation header, checking the box will make the request on the redirect URL. This only works when using GET. |
The References Tab
The References tab lets you configure an endpoint to use global element settings that you have previously specified. You can set references for the following:
Property | Description |
---|---|
Connector Reference |
Use the dropdown list to select a previously configured connector for this endpoint. If you have not created a connector for this type of endpoint, you can do so from this window by clicking Add. Click Edit to modify a previously created global element. |
Endpoint Reference |
Use the drop-down list to select a previously configured global endpoint reference. If you have not created a global element for this type of endpoint, you can do so from this window by clicking Add. Click Edit to modify a previously created global element. |
Global Transformers (Request) |
Enter the list of transformers that will be applied to a message before delivery. The transformers will be applied in the order they are listed. |
Global Transformers (Response) |
Enter a list of synchronous transformers that will be applied to the response before it is returned from the transport. |
The HTTP Settings Tab
The HTTP Settings tab, lets you enter logon credentials used to connect web services via the HTTP transport. In addition, you can configure some general HTTP settings.
Property | Description |
---|---|
User |
The |
Password |
The |
Content Type |
Defines how data is encapsulated. Content types are categorized by text, image, application and binary. Select the content type from a drop down list. e.g., |
Keep Alive |
Check the box activate. When checked, a header with connection timeout information will be returned. |
The Documentation Tab
The Documentation tab lets you add optional descriptive documentation for an endpoint. Every endpoint component has a documentation tab and optional description field.
Property | Description |
---|---|
Documentation |
Enter all relevant information regarding this endpoint. These comments are displayed in Studio when you hover over the endpoint icon on the message flow canvas. |
Endpoint Components Available in Studio
Studio bundles more that two dozen endpoints, and the list continues to grow. Three of these are available only for Mule Enterprise Edition, and therefore, the icons are rendered with light (rather than dark) blue backgrounds, as illustrated in the following table:
Database (JDBC) | FTP | WMQ |
---|---|---|
Inbound and Outbound Endpoints
The endpoints in this list can be added to a flow as either an inbound or outbound endpoints. Inbound endpoints can be configured to receive message data from external sources, such as a web browser, while outbound endpoints can be set to send message data to an external party or to another building block in a flow for further processing.
The following table lists the exchange-pattern(s) supported by each endpoint. When an endpoint supports multiple exchange-patterns, the entry in bold represents the default exchange-pattern.
Endpoint | Description | Exchange Pattern(s) | Documentation | |
---|---|---|---|---|
AJAX |
Asynchronously exchanges messages between an Ajax server and a browser. |
one-way |
||
Enterprise Edition Database (JDBC) |
Connects to a database using the JDBC transport protocol. |
Inbound endpoints only support one-way exchange. Outbound endpoints support both one-way and request-response. |
||
Enterprise Edition FTP |
Reads and writes to a FTP Server. |
one-way |
- |
|
File |
Reads and writes to a file system. |
one-way |
||
Generic |
Implements a generic endpoint specified by address URI. |
one-way, request-response |
- |
|
HTTP |
Sends and receives messages via the HTTP transport protocol. Turn on security to send HTTPS messages via SSL. |
one-way, request-response |
||
JMS |
Sends or receives messages from a JMS queue. |
one-way, request-response |
- |
|
Quartz |
Generates events that trigger flows at specified times or intervals. |
one-way |
||
RMI |
Sends and receives Mule events over JRMP. |
one-way, request-response |
- |
|
SFTP |
Reads from and writes to a SFTP Server. |
one-way, request-response (outbound endpoint only) |
||
SSL (TLS) |
Sends messages over secure socket communication using SSL or TLS. |
one-way, request-response |
- |
|
TCP |
Sends or receives messages over a TCP socket. |
one-way, request-response |
- |
|
UDP |
Sends and receives messages as Datagram packets under the UDP transport protocol. |
one-way, request-response |
- |
|
VM |
Sends and receives messages via intra-VM component communication. |
one-way, request-response |
- |
|
- |
Enterprise Edition WMQ |
Sends or receives messages using the WMQ (WebSphere MQ queue) protocol. |
one-way, request-response |
Inbound Only Endpoints
As their name implies, inbound-only endpoints can only consume messages; they cannot dispatch data to destinations outside the flow. For example, the POP3 and IMAP endpoints each receive messages from an email server.
The following table lists the exchange pattern(s) supported by each endpoint, with the default exchange pattern listed in bold.
Endpoint | Description | Exchange Pattern(s) | Documentation | |
---|---|---|---|---|
IMAP |
Email transport used to receive a message via IMAP. Turn on security to send IMAP messages via SSL. |
one-way |
||
Jetty |
Allows a Mule application to receive requests over HTTP using a Jetty server. Turn on security to receive HTTPS messages via SSL. |
one-way, request-response |
- |
|
Pop3 |
Receives messages via the Pop3 email transport protocol. Turn on SSL to implement POP3 with security. |
one-way |
||
Salesforce (Streaming) |
Provides an easy way to integrate with the Salesforce API using Mule flows. |
one-way |
||
Servlet |
Allows a Mule application to listen for events received via a Servlet. |
request-response |
- |
|
Twitter (Streaming) |
Provides an easy way to integrate with the Twitter API using Mule flows. |
one-way |
Outbound Only Endpoints
Outbound-only endpoints can send messages to other building blocks or external resources, but they cannot receive messages directly from external sources.
Endpoint | Description | Exchange Pattern(s) | Documentation | |
---|---|---|---|---|
SMTP |
Sends email via the SMTP protocol. Turn on security to send SMTP messages via SSL. |
one-way |
- |