In this article I would like to write a little about new Mule Kernel 4. As I have stated it earlier this is rebranded Mule 4 CE. In this article you will see what capabilities we have in this release. Some of them we will investigate later on in forthcoming articles.

Mule Kernel 4

On the download page of Mule Kernel you will find information that Mule Kernel is licensed under Common Public Attribution License and its source code is publicly available on GitHub. It is clearly rebranded Community Edition.

Development Tools

On the MuleSoft website there is information that Anypoint Studio is available for Mule Kernel. However when we would like to install Kernel (Community Editon) runtime we do not have such option. We may only install enterprise runtimes. It might be a mistake on the page that I was looking at or Anypoint Studio support for this is not ready yet. In the next article I will describe how to community project and then deploy it in Kernel runtime.

You may also use IntelliJ IDEA with Mule 4 Runtime plugin. In that case you do not have graphical interface. You can only design flows in XML. This will also be described in more detail in a separate article.

Connectors

In this version we have all community connectors. We do not get select or premium connectors.  We can use safely following modules:

  • HTTP
  • FTP(S)
  • File
  • JMS
  • Database
  • VM
  • Web Service Consumer
  • Email
  • Socket

All other connectors available at Exchange are licensed and not accessible. As a result when we need them we need to write modules on our own.

Expression language

On of the biggest news was Mule Expression Language (MEL) removal from Mule 4. It was replaced with non other than DataWeave. It is then a big question for Kernel edition.  On MuleSoft pages you will find information that DataWeave transformation language is not available in community version.

Based on my tests I found out that DataWeave as expression language for choice etc works perfectly fine. Here are two examples:

#[output application/java
---
{
	"X-Header" : "0-1"
}]
#[vars.statusCode default 201]

The first example is obvious. We have an expression creating Java object containing one property called X-header. The second example is called an inline DataWeave. It is defined 
without  output type (by default application/java is used). In the last example 201 value is returned if statusCode is empty.

Why did it work? Probably because it is not in enterprise namespace and does not contain %dw 2.0 header. 

Enterprise features

Rest assured that when you use any enterprise feature application won’t be deployed in Mule Kernel 4.x. In server logs you will find Failed to deploy artifact error with information why it did not work. In case below, namespace ee is not resolvable.

Failed to deploy application
Failed to deploy application

Summary

This is just a big picture, but now you should know what connectors are available. Development environment (IDE) is still a big question. Why it does not support Kernel edition, but there is a workaround for this. Last but not least, for evaluating expressions DataWeave seems to work. When we try to use some enterprise feature like Dataweave transformation component or select connectors we will get an exception during deployment.

Reference page: runtime comparison.

Mule 4 Kernel – revealed!
Tagged on:     

2 thoughts on “Mule 4 Kernel – revealed!

  • 12/11/2018 at 11:42
    Permalink

    Hi, I’m looking forward to get more details on developing projects with Anypoint Studion 7 for the community runtime. There seems to be no information about this on MuleSoft’s website or anywhere else.

    Reply
    • 13/11/2018 at 09:02
      Permalink

      Hi, I will post it soon. I agree with you that is hardly difficult to find any info about it on MuleSoft’s sites.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *