Nav
You are viewing an older version of this section. Click here to navigate to the latest version.

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.

InboundEndpointExample

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.

OutboundEndpointExample

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:

  1. Position the endpoint within the flow on the Message Flow canvas.

  2. 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

HTTPEndpointGen

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., Order Entry Endpoint

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 localhost. Enter the Fully Qualified Domain Name (FQDN) or IP address of the server.

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 (plus) button to add Mule transactions.

Cron Information

Enter a cron expression to schedule events by date and time.

Method

The operation performed on message data. Available options are: OPTION, GET, HEAD, POST, PUT, TRACE, CONNECT and DELETE.

The Advanced Tab

HTTPEndpointAdv

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

HTTPEndpointRef

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

HTTPEndpointSet

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 username for authentication on the server.

Password

The password for authentication on the server.

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.,text/plain

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.

HTTPEndpointDoc

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

JDBC-Endpoint-E-24x16-1

FTP-Endpoint-E-24x16-1

JMS-Endpoint-E-24x16-1

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

AJAX

Asynchronously exchanges messages between an Ajax server and a browser.

one-way

AJAX Reference

JDBC-Endpoint-E-24x16-1

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.

JDBC Reference

FTP-Endpoint-E-24x16-1

Enterprise Edition FTP

Reads and writes to a FTP Server.

one-way

-

Endpoint2

File

Reads and writes to a file system.

one-way

File Reference

Endpoint2

Generic

Implements a generic endpoint specified by address URI.

one-way, request-response

-

http

HTTP

Sends and receives messages via the HTTP transport protocol. Turn on security to send HTTPS messages via SSL.

one-way, request-response

HTTP Reference

Endpoint10

JMS

Sends or receives messages from a JMS queue.

one-way, request-response

-

Endpoint10

Quartz

Generates events that trigger flows at specified times or intervals.

one-way

Quartz Reference

RMI

RMI

Sends and receives Mule events over JRMP.

one-way, request-response

-

Endpoint2

SFTP

Reads from and writes to a SFTP Server.

one-way, request-response (outbound endpoint only)

SFTP Reference

Endpoint13

SSL (TLS)

Sends messages over secure socket communication using SSL or TLS.

one-way, request-response

-

Endpoint13

TCP

Sends or receives messages over a TCP socket.

one-way, request-response

-

Endpoint13

UDP

Sends and receives messages as Datagram packets under the UDP transport protocol.

one-way, request-response

-

vm-endpoint

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

WMQ Reference

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)

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

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

Endpoint9

SMTP

Sends email via the SMTP protocol. Turn on security to send SMTP messages via SSL.

one-way

-