Migrating Core Components
Standard Support for Mule 4.1 ended on November 2, 2020, and this version of Mule reached its End of Life on November 2, 2022, when Extended Support ended. Deployments of new applications to CloudHub that use this version of Mule are no longer allowed. Only in-place updates to applications are permitted. MuleSoft recommends that you upgrade to the latest version of Mule 4 that is in Standard Support so that your applications run with the latest fixes and security enhancements. |
The table below maps Mule 3.x components to their Mule 4 equivalents.
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 |
Build an equivalent flow |
catch-exception-strategy |
Use error-handler with an |
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. |
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 |
configuration[‘flowEndingWithOneWayEndpointReturnsNull’] |
No longer needed with new execution engine. |
configuration[‘useExtendedTransformations’] |
Removed. |
configuration[enricherPropagatesSessionVariableChanges] |
Removed. |
copy-attachments |
Per the new Message Structure, attachments will now be part of the message Attributes. You can manipulate them at will using DataWeave |
copy-properties |
Per the new Message Structure, properties will now be part of the message Attributes. You can manipulate them at will using DataWeave |
custom-agent |
No longer supported. |
custom-aggregator |
Use the Mule SDK to build the custom aggregator. |
custom-connector |
Use the Mule SDK to build your own connector. |
custom-exception-strategy |
No longer needed. Use error-handler |
custom-lifecycle-adapter-factory |
No longer supported. |
custom-object-store |
Use Object Store connector to create custom stores. |
custom-processor |
Use the Mule SDK or the Scripting module instead |
custom-queue-store |
Use the new VM Connector. |
custom-router-resolver |
Use the Mule SDK to build a custom router. |
custom-router |
Use the Mule SDK to build a custom router. |
custom-service |
Use flows. |
custom-source |
Use the Mule SDK to write a new event source. |
custom-splitter |
Use DataWeave or the Mule SDK. |
custom-transaction-manager |
Use the |
custom-transaction |
No longer supported. |
default-exception-strategy |
Use error-handler with an |
default-in-memory-queue-store |
Use the new VM Connector. |
default-persistent-queue-store |
Use the new VM Connector. |
default-service-exception-strategy |
Use error-handler with an on-error-propagate strategy. |
endpoint |
Use connectors. |
exception-strategy |
Use error-handler. |
expression-component |
Depending on the nature of your expression, you can either use DataWeave (for data access expressions), Scripting module or the Mule SDK for algorithmic expressions, or the Java module for expressions which simply access Java. |
file-queue-store |
Use the new VM Connector. |
flow[‘processingStrategy’] |
Removed. Non blocking execution engine ensures that users do not need to tune this. |
idempotent-message-filter |
Replaced by idempotent-message-validator. |
idempotent-redelivery-policy |
New name is |
idempotent-secure-hash-message-filter |
Replaced by idempotent-message-validator. |
in-memory-store |
Use Object Store connector to create custom stores. |
inbound-endpoint |
Use the event sources or triggers defined on each connector or module. |
include-entry-point |
Use the Java module. |
interceptor-stack |
Removed. Use custom policies. |
invoke |
Use the Java module |
jndi-transaction-manager |
Use the |
jrun-transaction-manager |
Use the |
legacy-abstract-exception-strategy |
Use the new error-handler |
managed-store |
Use Object Store connector to create custom stores. |
message-properties-transformer |
Use Transform component and DataWeave. |
model |
Removed. Use flows instead. |
mule[‘version’] |
|
outbound-endpoint |
Element moved from the core namespace to the new transports namespace. |
poll → watermark |
This capability has been built inside event sources from many connectors, like Salesforce, Database, SFTP, File, etc. You can also use the object-store connector to manually set the watermark values. |
poll |
Replaced with scheduler component. |
processor |
Depending on the nature of your expression, you can either use DataWeave (for data access expressions), Scripting module or the Mule SDK for algorithmic expressions, or the Java module for expressions which simply access Java. |
prototype-object |
Use Java module or Spring module. |
queue-profile |
Use the VM Connector. |
queue-store |
|
recipient-list |
Removed. |
reconnect-custom-notifier |
Removed. |
reconnect-custom-strategy |
Removed. |
reconnect-notifier |
Removed. |
remove-attachment |
No longer needed per the new Message Structure, attachments |
remove-property |
PNo longer needed per the new Message Structure, attachments |
response |
No longer needed. |
request-reply |
Mule 4 will not longer support request-reply for all connectors. Connectors that had a “request-reply” behavior will provide a “request-reply” operation built in, such as the JMS |
resin-transaction-manager |
Removed. |
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. |
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 |
Removed. |
validator |
Removed. |
weblogic-transaction-manager |
Use the |
websphere-transaction-manager |
Use the |
all-strategy |
Removed. |
entry-point-resolver |
Use the Java module. |
filter |
Filters are replaced by the Validation module. |
interceptor |
Interceptors are replaced with custom policies. |
message-info-mapping |
No longer needed |
point-resolver-set |
Use the Use the Java module. |
router |
Removed. |
threading-profile |
No longer needed. The Runtime now tunes itself. |
transformer |
Removed. Most explicit transformations are no longer needed. Use DataWeave for the corner cases. |