Reuse driven by DataType

Raml 1.0 introduces new concept called DataType.  This fragment is used to declare type in a separate yaml file. This is not just a simplification of JSON schema to conform raml/yaml. It also brings simple improvements and syntax sugar that allows to write types in more concise form. And therefore more readable. In this article we will look at how to define own data types and reuse them in API and its implementation

Error Handling simplified – Try Scope

Errors occurs all the time. All you can do is to implement error handling. In this article I will describe how to use introduced layer of abstraction in exceptions area. Prior to Mule 4, developer only could access raw Java exception as Mule is a Java based ESB. This lead to situation where you, as a developer, needed analyse documentation to find exact exception that you would like to handle. Now an Error concept was introduced.

Routing SOAP messages in Mule CE

Routing SOAP messages in Mule CE

Anyone who has designed RESTfull API appreciate API Kit Router available in Mule. It not only generates flows based on API definition but also route and validate messages. Our flows looks more concise and easy to read. This feature is available for both Community and Enterprise editions. For SOAP Web Services SOAP Router is available. However this time this utility works only for Enterprise Edition. Some time ago I developed a couple of services on Mule Community Edition. All services have WSDL contracts and I must say that when I now think about the implementation I would appreciate such router. So I have decided to write something similar that would work for Mule CE.

DataWeave – Tip #3

DataWeave – Tip #3

I have already presented how to call Java code using messages processors with the newest Java Module for Mule 4.x. For earlier mule’s version Entry Point Resolvers were used to invoke custom Java code. However for scenarios when we would like to use custom code in DataWeave, for transformations, another approach is needed. Approach presented in this article will be more concise comparing to using message processors. It was highly extended comparing to possibilities of Mule 3.x version. Mule 3 allowed to invoke static methods. In contract Mule 4 not only permits to call static methods but also instantiate classes and access its instance attributes.

DataWeave – Tip #2

DataWeave – Tip #2

Tip number 2 is about converting decimal number into integer one. This may seem tricky at first. You may say that we do not need to do anything special and DataWeave engine will handle it underneath. However there is a nuance that you should be aware of. In transformation to XML this may not actually works. This tip is primary dedicated to DataWeave 1.0 as in DataWeave 2.0 this does not occur.

Mule 4 new Java Module

Mule 4 new Java Module

In one of my previous posts I described Java Component and entry point resolvers as a way to invoke Java Code in Mule 3.x. In this article I will focus on completely new approach in Mule 4. Mule presents brand new Java Module capable of creating new instances, invoking methods on those instances and invoking static methods. Although you can invoke Java using DataWeave 2.0 and Groovy scripting you are losing additional metadata (DataSense). So lets walk through some sample application.

DataWeave – Tip #1

DataWeave – Tip #1

Tip number 1 will be about data existence check. There are often situation that nearly the same conditions need to be checked in every line. I have seen many transformations that were really long and complex. Reading them were not only difficult but a lot of repeatable conditional checks were made. Here I will show you an example that will evolve to point where we reuse everything that was possible. As a result we should achieve more concise and readable transformation. As new DataWeave is about to be released, examples will be both in 1.0 and 2.0.