This documentation is for WSO2 Enterprise Integrator version 6.1.1 . View documentation for the latest release.

All docs This doc
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

A mediator is a full-powered processing unit in the ESB profile of WSO2 EI. At run-time, a mediator has access to all the parts of the ESB profile along with the current message and can do virtually anything with the message. There are multiple mediators that serve different purposes. They are grouped into three categories as follows:

  • Content-aware mediators: Always access the message’s content when mediating messages (e.g., Enrich mediator).
  • Content-unaware mediatorsNever access the message’s content when mediating messages (e.g., Send mediator).
  • Conditionally content-aware mediatorsEither content-aware or content-unaware depending on their exact instance configuration. For example, a simple Log mediator instance (configured as <log/>) is content-unaware. However, a Log mediator configured as <log level=”full”/> is content-aware as it is expected to log the message payload.

When adding a mediator to a sequence , you can configure the mediator in design view or in source view. Source view provides the XML representation of the configurations done in the UI. When you edit the source XML all changes immediately reflect in the design view as well.

Each mediator has its own XML configuration. In the source view of the following mediators, you can comment out required lines if necessary when you edit the XML.

  • Aggregate Mediator
  • Cache Mediator
  • Filter Mediator
  • In Mediator
  • Iterate Mediator
  • Out Mediator
  • Sequence Mediator
  • Synapse Mediator
  • Template Mediator
  • Validate Mediator
     

It is also possible to comment out required lines in the Synapse definition as well as in the source view of the complete EI configuration.

Mediators in a sequence can be one of the following types:

  • Node mediators - Contains child mediators.
  • Leaf mediators - Does not hold any other child mediators.

The message content is accessed by some mediators in some mediation scenarios while it is not accessed in the other scenarios. Mediators can be classified as follows based on this aspect.

  • Content-aware mediators: These mediators always access the message content when mediating messages (e.g., Enrich mediator).
  • Content-unaware mediators: These mediators never access the message content when mediating messages (e.g., Send mediator).
  • Conditionally content-aware mediators: These mediators could be either content-aware or content-unaware depending on their exact instance configuration. For an example a simple Log Mediator instance (i.e. configured as <log/>) is content-unaware. However a log mediator configured as <log level=”full”/> would be content-aware since it is expected to log the message payload.

Mediators are considered to be one of the main mechanisms for extending an EI. You can write a custom mediator and add it to the ESB profile. This custom mediator and any other built-in mediator will be exactly the same as the API and the privileges.

The standard mediators in the ESB profile are listed in the table below. Click a link for details on that mediator. There are also many samples that demonstrate how to use mediators.

The WSO2 EI mediator catalog

Category

Name

Description

CoreCallInvoke a service in non blocking synchronous manner

EnqueueUses a priority executor to ensure high-priority messages are not dropped


Send

Sends a message


Loopback

Moves the message from the In flow to the Out flow, skipping all remaining configuration in the In flow


Sequence

Inserts a reference to a sequence


RespondStops processing on the message and sends it back to the client

Event

Sends event notifications to an event source, publishes messages to predefined topics


Drop

Drops a message


Call TemplateConstructs a sequence by passing values into a sequence template


Enrich

Enriches a message


Property

Sets or remove properties associated with the message


Log

Logs a message

Filter

Filter

Filters a message using XPath, if-else kind of logic


Out

Applies to messages that are in the Out path of the ESB profile


In

Applies to messages that are in the In path of the ESB profile


ValidateValidates XML messages against a specified schema.


Switch

Filters messages using XPath, switch logic


Router

Routes messages based on XPath filtering


Conditional Router

Implements complex routing rules (Header based routing, content based routing and other rules)

Transform

XSLT

Performs XSLT transformations on the XML payload


FastXSLTPerforms XSLT transformations on the message stream


URLRewrite

Modifies and rewrites URLs or URL fragments


XQueryPerforms XQuery transformation


Header

Sets or removes SOAP headers


Fault (also called Makefault)

Create SOAP Faults


PayloadFactoryTransforms or replaces message content in between the client and the backend server

Data MapperConverts and transforms one data format to another, or changes the structure of the data in a message. 

Advanced

Cache

Evaluates messages based on whether the same message came to the ESB profile


ForEachSplits a message into a number of different messages by finding matching elements in an XPath expression of the original message.


Clone

Clones a message


Store

Stores messages in a predefined message store


Iterate

Splits a message


Aggregate

Combines a message


Callout

Blocks web services calls


Transaction

Executes a set of mediators transactionally


Throttle

Limits the number of messages


DBReport

Writes data to database


DBLookup

Retrieves information from database


EJBCalls an external Enterprise JavaBean(EJB) and stores the result in the message payload or in a message context property.


Rule

Executes rules


Entitlement

Evaluates user actions against a XACML policy


OAuth

2-legged OAuth support


SmooksUsed to apply lightweight transformations on messages in an efficient manner.
ExtensionBeanManipulates JavaBeans


Class

Creates and executes a custom mediator


POJOCommand

Executes a custom command


Script

Executes a mediator written in Scripting language


Spring

Creates a mediator managed by Spring

AgentBAMCaptures data events and sends them to the BAM server
  • No labels