Free MuleSoft CONNECT Keynote & Expo Pass Available!

Register now+
Nav

Mule 4 Component Changes Reference

Mule Core Changes

The following table shows Mule 3.x components and expressions and how to replace them in Mule 4.0. Some replacements may still be in development and are marked as such.

Mule 3.x Component Mule 4.0 Replacement

All router

Use scatter gather instead or execute the operations one after the other with different target attributes and then use DW to merge results.

async[‘processingStrategy’]

Async processing strategies are no longer needed with the non-blocking execution engine. Use an “async” scope wrapping all the components if you want them to behave asynchronously.

asynchronous-processing-strategy

Async processing strategies are no longer needed with the non-blocking execution engine. Use an “async” scope wrapping all the components if you want them to behave asynchronously.

bridge

Removed. Use flows.

catch-exception-strategy

Use error-handler with an on-error-continue strategy.

choice-exception-strategy

Use error-handler with different strategies inside using error type selection or when attribute.

combine-collections-transformer

No longer needed with the simplified message model. MuleMessageCollections are replaced with arrays of Mule Messages, which can be merged or iterated through using any Mule component, such as DataWeave or foreach.

component

Use the Java module (in development).

composite-source

Create one flow per each source and invoke a private flow using flow-ref for the common functionality

configuration[‘defaultExceptionStrategy-ref’]

New name is defaultErrorHandler-ref

configuration[‘flowEndingWithOneWayEndpointReturnsNull’]

No longer needed with new execution engine.

configuration[‘useExtendedTransformations’]

Removed.

configuration[enricherPropagatesSessionVariableChanges]

Removed.

copy-attachments

Use Transform component & DataWeave.

copy-properties

Use Transform component & DataWeave.

custom-agent

Removed.

custom-aggregator

Replacement in development to remove the need for custom-aggregator.

custom-connector

Use SDK to build a custom connector

custom-exception-strategy

No longer needed. Use error-handlers.

custom-lifecycle-adapter-factory

No replacement.

custom-object-store

Use object store module extension to create custom stores

custom-processor

Use DataWeave, scripting component, the Mule SDK (in development), or the Java module (in development).

custom-queue-store

Use the new VM Connector (in development).

custom-router-resolver

Removed.

custom-router

Removed.

custom-service

Use flows

custom-source

Use the Mule SDK (in development) to write a new event source.

custom-splitter

Replacement in development to remove the need for custom-splitter.

custom-transaction-manager

Replacement in development.

custom-transaction

Removed.

default-exception-strategy

Use error-handler with an on-error-propagate strategy.

default-in-memory-queue-store

Use the new VM Connector (in development).

default-persistent-queue-store

Use the new VM Connector (in development).

default-service-exception-strategy

Use error-handler with an on-error-propagate strategy.

endpoint

Use connectors.

exception-strategy

Use error-handlers.

expression-component

Use DataWeave, scripting component, the Mule SDK (in development), or the Java module (in development).

file-queue-store

Use the new VM Connector (in development).

flow[‘processingStrategy’]

Removed. Non blocking execution engine ensures that users do not need to tune this.

idempotent-message-filter

Replacement in development.

idempotent-redelivery-policy

New name is redelivery-policy.

idempotent-secure-hash-message-filter

A function to apply a hash over the payload can be used as the id expression attribute value of the idempotent-redelivery-message.

in-memory-store

Use object store module extension to create custom stores.

inbound-endpoint

Use connectors.

include-entry-point

Use the Java module (in development).

interceptor-stack

Replacement in development.

invoke

Use the Java module (in development).

jndi-transaction-manager

Replacement in development.

jrun-transaction-mamanger

Replacement in development.

legacy-abstract-exception-strategy

Use the new error handlers.

managed-store

Use object store module extension to create custom stores

message-properties-transformer

Use Transform component & DataWeave

model

Removed. Use flows instead.

mule[‘version’] outbound-endpoint

Element moved from thecore namespaceto the newtransports namespace

parse-template poll → watermark

Use of the object-store module to manually set the watermark values

poll

replaced with scheduler source

pooling-profile[‘disabled’]

New attribute

processor

Use DataWeave, scripting component, the Mule SDK (in development), or the Java module (in development).

prototype-object

Use Java module or Spring module

queue-profile

Removed.

queue-store

Removed.

recipient-list

Removed.

reconnect-custom-notifier

Removed.

reconnect-custom-notifier

Removed.

reconnect-custom-strategy

Removed.

reconnect-custom-strategy

Removed.

reconnect-notifier

Replacement in development.

remove-attachment

No longer needed. Attachments can be stored as variables.

remove-property

Properties no longer exist in the new message model. You can store attributes from the Mule message in a variable.

response

Removed. No longer needed.

request-reply

Mule 4 will not longer support request-reply for all connectors. Connectors that had a “request-reply” behaviour will provide a “request-reply” operation built in, such as the JMS consume operation.

resin-transaction-mamanger

Replacement in development.

rollback-exception-strategy

Use error-handler with an on-error-propagate strategy.

scatter-gather[‘threading-profile’]

No longer needed now that Mule 4 is non blocking.

seda-model

No more SEDA queues in Mule 4. The execution engine in Mule 4 is non-blocking.

service

Use flows

set-attachment

No longer needed. Attachments can be stored as variables.

set-property

Properties no longer exist in the new message model. You can store attributes from the Mule message in a variable.

set-session-variable

Session variables have been removed. Users must explicitly pass headers across transport boundaries.

simple-in-memory-queue-store

Use the new VM Connector (in development).

simple-service

Use flows.

simple-text-file-store

Use object store module extension to create custom stores

singleton-object

Use Java module or Spring module

spring-object

Use Java module or Spring module

synchronous-processing-strategy

The behavior related to flow components execution is the same as flows in 4.x but it doesn’t always execute in the same thread as in 3.x.

transactional scope

Replaced with “try” scope.

username-password-filter

Replacement in development.

validator

Removed.

weblogic-transaction-manager

Replacement in development.

websphere-transaction-manager

Replacement in development.

*-all-strategy

Removed.

*-entry-point-resolver

Use the Java module (in development).

*-filter

Replacement in development.

*-interceptor

Replacement in development.

*-message-info-mapping

Replacement in development.

*-point-resolver-set

Use the Java module (in development).

*-router

Removed.

*-threading-profiled

Now they belong to the transports namespace

*-transformer

Replacement in development.

Mule Modules & Connectors

Mule 4 contains a subset of all the connectors available for Mule 3.The following table shows deprecated/removed Mule 3.x modules and how to replace them in Mule 4.0. All other Select and Premium connectors are in development.

Mule 3.x Module Mule 4.0 Replacement

Ajax

Use APIkit + standard REST.

Atom

Replaced with HTTP + DataWeave

Axis

Use WS Consumer / APIkit for SOAP

Drools

Removed.

BPM

MuleSoft now provides connectivity to Pega or Appian for BPM.

EJB

Removed.

Guice

Removed.

jBPM

MuleSoft now provides connectivity to Paga or Appian for BPM.

Jetty

Use new HTTP module.

OGNL

Replaced DataWeave expression language, or MEL in compatibility module.

Patterns

Removed. Use flows instead.

Quartz

Use <poll>

RSS

Use HTTP + DataWeave

SXC

Use DataWeave.

Tomcat

New embedded mode in development.

Servlet

New embedded mode in development.

Stdio

Removed.

UDP

Use Sockets.

XMPP

Removed.