---
schema_version: "1"
id: 10bb8f117230f9710d138978d454918068b9c736508adfe1e94128cfdde65065
title: Migrating Core Components
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/mule-runtime/4.4/migration-core.md
canonical_url: https://docs.mulesoft.com/mule-runtime/4.4/migration-core
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 44320ef5cbf1defda2264521f8e906da4308014c5e7502b2a1c90d6150373f15
description: MuleSoft Documentation Site
release: "4.4"
latest: false
---
---
product: Mule Runtime
version: 4.4
---

# Migrating Core Components

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

The table below maps Mule 3.x components to their Mule 4 equivalents.

<table><colgroup><col> <col></colgroup><thead><tr><th>Mule 3.x Component</th><th>Mule 4.0 Replacement</th></tr></thead><tbody><tr><td><p>All router</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/scatter-gather-concept">Scatter Gather</a> instead or execute the operations one after the other with different target attributes and then use DW to merge results.</p></td></tr><tr><td><p>async[<code>processingStrategy</code>]</p></td><td><p>Async processing strategies are no longer needed with the non-blocking execution engine; remove all processing strategies from your scope when you migrate to Mule 4. Use an <a href="https://docs.mulesoft.com/mule-runtime/4.4/async-scope-reference">Async</a> scope wrapping all the components that you want to execute asynchronously.</p></td></tr><tr><td><p>asynchronous-processing-strategy</p></td><td><p>Async processing strategies are no longer needed with the non-blocking execution engine; remove all processing strategies from your scope when you migrate to Mule 4. Use an <a href="https://docs.mulesoft.com/mule-runtime/4.4/async-scope-reference">Async</a> scope wrapping all the components that you want to execute asynchronously.</p></td></tr><tr><td><p>bridge</p></td><td><p>Build an equivalent flow</p></td></tr><tr><td><p>catch-exception-strategy</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/on-error-scope-concept">error-handler</a> with an <code>on-error-continue</code> strategy.</p></td></tr><tr><td><p>choice-exception-strategy</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/on-error-scope-concept">error-handler</a> with different strategies inside using error type selection or when attribute.</p></td></tr><tr><td><p>combine-collections-transformer</p></td><td><p>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.</p></td></tr><tr><td><p>component</p></td><td><p>Use the <a href="https://docs.mulesoft.com/java-module/latest/">Java module</a>.</p></td></tr><tr><td><p>composite-source</p></td><td><p>Create one flow per each source and invoke a private flow using flow-ref for the common functionality.</p></td></tr><tr><td><p>configuration[<code>defaultExceptionStrategy-ref</code>]</p></td><td><p>New name is <code>defaultErrorHandler-ref</code></p></td></tr><tr><td><p>configuration[<code>flowEndingWithOneWayEndpointReturnsNull</code>]</p></td><td><p>No longer needed with new execution engine.</p></td></tr><tr><td><p>configuration[<code>useExtendedTransformations</code>]</p></td><td><p>Removed.</p></td></tr><tr><td><p>configuration[<code>enricherPropagatesSessionVariableChanges</code>]</p></td><td><p>Removed.</p></td></tr><tr><td><p>copy-attachments</p></td><td><p>Per the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/about-mule-message">Message Structure</a>, attachments will now be part of the message Attributes. You can manipulate them at will using DataWeave</p></td></tr><tr><td><p>copy-properties</p></td><td><p>Per the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/about-mule-message">Message Structure</a>, properties will now be part of the message Attributes. You can manipulate them at will using DataWeave</p></td></tr><tr><td><p>custom-agent</p></td><td><p>No longer supported.</p></td></tr><tr><td><p>custom-aggregator</p></td><td><p>Use the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a> to build the custom aggregator.</p></td></tr><tr><td><p>custom-connector</p></td><td><p>Use the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a> to build your own connector.</p></td></tr><tr><td><p>custom-exception-strategy</p></td><td><p>No longer needed. Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/on-error-scope-concept">error-handler</a></p></td></tr><tr><td><p>custom-lifecycle-adapter-factory</p></td><td><p>No longer supported.</p></td></tr><tr><td><p>custom-object-store</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-connectors-objectstore">Object Store connector</a> to create custom stores.</p></td></tr><tr><td><p>custom-processor</p></td><td><p>Use the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a> or the <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-scripting">Scripting module</a> instead</p></td></tr><tr><td><p>custom-queue-store</p></td><td><p>Use the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-vm">VM Connector</a>.</p></td></tr><tr><td><p>custom-router-resolver</p></td><td><p>Use the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a> to build a custom router.</p></td></tr><tr><td><p>custom-router</p></td><td><p>Use the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a> to build a custom router.</p></td></tr><tr><td><p>custom-service</p></td><td><p>Use flows.</p></td></tr><tr><td><p>custom-source</p></td><td><p>Use the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a> to write a new event source.</p></td></tr><tr><td><p>custom-splitter</p></td><td><p>Use DataWeave or the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a>.</p></td></tr><tr><td><p>custom-transaction-manager</p></td><td><p>Use the <code>&lt;bti:transaction-manager/&gt;</code>.</p></td></tr><tr><td><p>custom-transaction</p></td><td><p>No longer supported.</p></td></tr><tr><td><p>default-exception-strategy</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/on-error-scope-concept">error-handler</a> with an <code>on-error-propagate</code> strategy.</p></td></tr><tr><td><p>default-in-memory-queue-store</p></td><td><p>Use the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-vm">VM Connector</a>.</p></td></tr><tr><td><p>default-persistent-queue-store</p></td><td><p>Use the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-vm">VM Connector</a>.</p></td></tr><tr><td><p>default-service-exception-strategy</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/on-error-scope-concept">error-handler</a> with an on-error-propagate strategy.</p></td></tr><tr><td><p>endpoint</p></td><td><p>Use connectors.</p></td></tr><tr><td><p>exception-strategy</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/on-error-scope-concept">error-handler</a>.</p></td></tr><tr><td><p>expression-component</p></td><td><p>Depending on the nature of your expression, you can either use DataWeave (for data access expressions), <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-scripting">Scripting module</a> or the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a> for algorithmic expressions, or the <a href="https://docs.mulesoft.com/java-module/latest/">Java module</a> for expressions which simply access Java.</p></td></tr><tr><td><p>file-queue-store</p></td><td><p>Use the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-vm">VM Connector</a>.</p></td></tr><tr><td><p>flow[<code>processingStrategy</code>]</p></td><td><p>Removed. Non-blocking execution engine ensures that users do not need to tune this.</p></td></tr><tr><td><p>idempotent-message-filter</p></td><td><p>Replaced by <a href="https://docs.mulesoft.com/mule-runtime/4.4/idempotent-message-validator">idempotent-message-validator</a>.</p></td></tr><tr><td><p>idempotent-redelivery-policy</p></td><td><p>New name is <code>redelivery-policy</code>.</p></td></tr><tr><td><p>idempotent-secure-hash-message-filter</p></td><td><p>Replaced by <a href="https://docs.mulesoft.com/mule-runtime/4.4/idempotent-message-validator">idempotent-message-validator</a>.</p></td></tr><tr><td><p>in-memory-store</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-connectors-objectstore">Object Store connector</a> to create <a href="https://docs.mulesoft.com/object-store-connector/latest/object-store-to-define-a-new-os">custom stores</a>.</p></td></tr><tr><td><p>inbound-endpoint</p></td><td><p>Use the event sources or triggers defined on each connector or module.</p></td></tr><tr><td><p>include-entry-point</p></td><td><p>Use the <a href="https://docs.mulesoft.com/java-module/latest/">Java module</a>.</p></td></tr><tr><td><p>interceptor-stack</p></td><td><p>Removed. Use custom policies.</p></td></tr><tr><td><p>invoke</p></td><td><p>Use the <a href="https://docs.mulesoft.com/java-module/latest/">Java module</a></p></td></tr><tr><td><p>jndi-transaction-manager</p></td><td><p>Use the <code>&lt;bti:transaction-manager/&gt;</code>.</p></td></tr><tr><td><p>jrun-transaction-manager</p></td><td><p>Use the <code>&lt;bti:transaction-manager/&gt;</code>.</p></td></tr><tr><td><p>legacy-abstract-exception-strategy</p></td><td><p>Use the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/on-error-scope-concept">error-handler</a></p></td></tr><tr><td><p>managed-store</p></td><td><p>Use <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-connectors-objectstore">Object Store connector</a> to create <a href="https://docs.mulesoft.com/object-store-connector/latest/object-store-to-define-a-new-os">custom stores</a>.</p></td></tr><tr><td><p>message-properties-transformer</p></td><td><p>Use Transform component and DataWeave.</p></td></tr><tr><td><p>model</p></td><td><p>Removed. Use flows instead.</p></td></tr><tr><td><p>mule[<code>version</code>]</p></td><td></td></tr><tr><td><p>outbound-endpoint</p></td><td><p>Element moved from the core namespace to the new transports namespace.</p></td></tr><tr><td><p>poll → watermark</p></td><td><p>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 <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-patterns-watermark">manually set the watermark values</a>.</p></td></tr><tr><td><p>poll</p></td><td><p>Replaced with <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-core-poll">scheduler component</a>.</p></td></tr><tr><td><p>processor</p></td><td><p>Depending on the nature of your expression, you can either use DataWeave (for data access expressions), <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-scripting">Scripting module</a> or the <a href="https://docs.mulesoft.com/mule-sdk/latest/">Mule SDK</a> for algorithmic expressions, or the <a href="https://docs.mulesoft.com/java-module/latest/">Java module</a> for expressions which simply access Java.</p></td></tr><tr><td><p>prototype-object</p></td><td><p>Use Java module or Spring module.</p></td></tr><tr><td><p>queue-profile</p></td><td><p>Use the <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-vm">VM Connector</a>.</p></td></tr><tr><td><p>queue-store</p></td><td><p><a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-module-vm">VM Connector</a>.</p></td></tr><tr><td><p>recipient-list</p></td><td><p>Removed.</p></td></tr><tr><td><p>reconnect-custom-notifier</p></td><td><p>Removed.</p></td></tr><tr><td><p>reconnect-custom-strategy</p></td><td><p>Removed.</p></td></tr><tr><td><p>reconnect-notifier</p></td><td><p>Removed.</p></td></tr><tr><td><p>remove-attachment</p></td><td><p>No longer needed per the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/about-mule-message">Message Structure</a>, attachments</p></td></tr><tr><td><p>remove-property</p></td><td><p>PNo longer needed per the new <a href="https://docs.mulesoft.com/mule-runtime/4.4/about-mule-message">Message Structure</a>, attachments</p></td></tr><tr><td><p>response</p></td><td><p>No longer needed.</p></td></tr><tr><td><p>request-reply</p></td><td><p>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 <code>publish-consume</code> operation.</p></td></tr><tr><td><p>resin-transaction-manager</p></td><td><p>Removed.</p></td></tr><tr><td><p>rollback-exception-strategy</p></td><td><p>Use error-handler with an on-error-propagate strategy.</p></td></tr><tr><td><p>scatter-gather[<code>threading-profile</code>]</p></td><td><p>No longer needed now that Mule 4 is non blocking.</p></td></tr><tr><td><p>seda-model</p></td><td><p>No more SEDA queues in Mule 4. The execution engine in Mule 4 is non-blocking.</p></td></tr><tr><td><p>service</p></td><td><p>Use flows.</p></td></tr><tr><td><p>set-attachment</p></td><td><p>No longer needed. Attachments can be stored as variables.</p></td></tr><tr><td><p>set-property</p></td><td><p>Properties no longer exist in the new message model. You can store attributes from the Mule message in a variable.</p></td></tr><tr><td><p>set-session-variable</p></td><td><p>Session variables have been removed. Users must explicitly pass headers across transport boundaries.</p></td></tr><tr><td><p>simple-in-memory-queue-store</p></td><td><p>Use the new VM Connector.</p></td></tr><tr><td><p>simple-service</p></td><td><p>Use flows.</p></td></tr><tr><td><p>simple-text-file-store</p></td><td><p>Use object store module extension to create custom stores.</p></td></tr><tr><td><p>singleton-object</p></td><td><p>Use Java module or Spring module.</p></td></tr><tr><td><p>spring-object</p></td><td><p>Use Java module or Spring module.</p></td></tr><tr><td><p>synchronous-processing-strategy</p></td><td><p>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.</p></td></tr><tr><td><p>transactional scope</p></td><td><p>Replaced with “try” scope.</p></td></tr><tr><td><p>username-password-filter</p></td><td><p>Removed.</p></td></tr><tr><td><p>validator</p></td><td><p>Removed.</p></td></tr><tr><td><p>weblogic-transaction-manager</p></td><td><p>Use the <code>&lt;bti:transaction-manager/&gt;</code>.</p></td></tr><tr><td><p>websphere-transaction-manager</p></td><td><p>Use the <code>&lt;bti:transaction-manager/&gt;</code>.</p></td></tr><tr><td><p>all-strategy</p></td><td><p>Removed.</p></td></tr><tr><td><p>entry-point-resolver</p></td><td><p>Use the <a href="https://docs.mulesoft.com/java-module/latest/">Java module</a>.</p></td></tr><tr><td><p>filter</p></td><td><p>Filters are replaced by the <a href="https://docs.mulesoft.com/mule-runtime/4.4/migration-filters">Validation module</a>.</p></td></tr><tr><td><p>interceptor</p></td><td><p>Interceptors are replaced with custom policies.</p></td></tr><tr><td><p>message-info-mapping</p></td><td><p>No longer needed</p></td></tr><tr><td><p>point-resolver-set</p></td><td><p>Use the Use the <a href="https://docs.mulesoft.com/java-module/latest/">Java module</a>.</p></td></tr><tr><td><p>router</p></td><td><p>Removed.</p></td></tr><tr><td><p>threading-profile</p></td><td><p>No longer needed. The Runtime now tunes itself.</p></td></tr><tr><td><p>transformer</p></td><td><p>Removed. Most explicit transformations are no longer needed. Use DataWeave for the corner cases.</p></td></tr></tbody></table>
