Pure English

 
Software
Training
Hints & links
 
Computing
Elettronics
Matemathics
Tai Ji Quan
Giada Adriani
 
Thesis
Notes
Reviews
 
Blister
Short stories
Novels
Guests
 
Games
Events
Work-e
Ma.Ste.R.
 
Links
Search
About me
Contacts
Site map
Bandiera inglese Bandiera italiana

Mule ESB

MuleSoft ESB is an innovative tool designed to meet the modern requirements of integration using a simple, fast and intuitive approach. The main differences with EIP's application based methodologies (or SOA) are:

  • Flows/routes can be designed using a visual interface, sometimes writing few lines of codes or none.
  • Components can be extended using different languages, such as: Java, PHP, JavaScript, Groovy Script etc.
  • EIP needs are met using an ESB approach (the bus speaks the language of the remote systems) instead of the SOA approach (the remote systems must speak the language of the broker).
  • The Mule server and the Mule IDE offer the most popular endpoint connectors for remote systems, for example: Apache CXF (SOAP), HTTP, File System, Salesforce, Twitter, Facebook, Amazon etc.

Being a young technology, the main Mule's flaw is the lack of examples. Let's explain what we mean: MuleSoft offers an user guide and all the proper documentation. What it's missing, when developing and debugging, it's the assistance of a community able to overcome ordinary simple difficulties. For instance, when coding in Java, PHP or jQuery it's possible to find the answer to almost any possible question or doubt on Stack Overflow. On the opposite, when we get stuck in some issue on MuleSoft, in order to find the solution sometimse we must spend an extra-effort to fix the problem. This is not a limitation of Mule itself, but the normal price to pay for every new technology.

To limit the problem, this page offers the possibility to download some complete project, ready for use, which show how to implement the most common flows, such as: a SOAP web service, calling a REST API or reading data from a File System.

Demo projects

Below are listed some "demo" projects. They are very simple flows, each one facing and solving a specific problem. Each project contains a directory named doc with the essential documentation (usually a text file describing the main flow's features). The documentation is written in Italian but comments, name conventions and main keywords (configuration files, XML notes, etc.) are in English.

See also: advanced MuleSoft Flows

  • Hello World

    Very simple project, suited for beginners. The flow implements an echo service over an HTTP connector. The project can be easily tested using a browser, by calling directly the URL of the HTTP listener (Remark: ready to be deployed also on a domain).
  • Hello Basic Rest

    A very simple REST client. The project relies on the HTTP connector to consume a remote REST service (not shipped with the project). The EPR of the REST client can be configured in a properties file.
  • Hello Basic Soap

    A sample SOAP service (server side). The project publishes a SOAP service offering two methods (the same sample service implemented by the Java template). For training purposes the service is based on a dummy implementation (i.e. returns a dummy response).
  • Hello JMS

    Project showing usage, both on producer side and consumer side, of JMS queues. The project emulates failure of a remote call, invoked by the consumer flow, in order to show an example of error management. The flows shows also an example of logging based on Log4j2.
  • Hello File

    Example about reading data from a file (in JSON format). The project contains also an example of payload conversion, from JSON into a Java object, and a very simple custom data mapper (using an hard-coded logic).
  • Hello File to Rest

    Reads data from a JSON file, on multiple rows, and converts each sing row in the corresponding JSON payload. Then each payload is sent to a REST EPR, using a sequence of different calls.
  • Hello CSV to Rest

    Reads data from a CSV file, on multiple rows, and converts each sing row in the corresponding JSON payload. Then each payload is sent to a REST EPR, using a sequence of different calls.
  • Hello Rest Service

    Example of a REST service based on JSON format. Usage of a a simple Java Jersey class (JSON) as service interface. Management of CORS calls (X-Requested-With). Configuration of Log4j2 and an example of coding a JavaScript component.
  • Hello Rest DB Service

    Example of a REST service based on JSON format. Usage of a a simple Java Jersey class (JSON) as service interface. Data are fetched by an Oracle database. Configuration for Log4j2 and example of multi-environment setting (development, test, production).
  • Hello Shared Resource

    Example of a "domain project", i.e. a flow allowing to expose a shared resource (example: an HTTP Listener on a specific port) to be used by another flow. Domain flows must be deployed in the domains directory. This project can be tested modifying the Hello World flow.
  • Hello Monitor

    Exposure of a web page allowing monitoring of the state of flows deployed on a Mule Standalone Server. Usage of JMX, configuration of Spring beans (setting dependencies in the flow's XML file) and Java classes used to access the JMX server. The project contains also the 'probe' to be deployed on the target server.