---
schema_version: "1"
id: 3eb3948c0c1c6e452c7258da7da4fd4bf833cea5e5ca83771cdaac59c559ff8c
title: Migrating Transports
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/mule-runtime/4.3/migration-transports.md
canonical_url: https://docs.mulesoft.com/mule-runtime/4.3/migration-transports
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 0485e160317ee069285ae851f22cada67f16a8c9ee94c00069302c3aa9312f47
description: MuleSoft Documentation Site
release: "4.3"
latest: false
---
---
product: Mule Runtime
version: 4.3
---

# Migrating Transports

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

Mule 3 transports have been replaced by connectors, which follow an operation model in Mule 4. Most
Mule transports are replaceable by a corresponding connector in Mule 4.

Some migration issues are common to all transports. For transport-specific migration documentation,
refer to [Migrating Connectors and Modules to Mule 4](https://docs.mulesoft.com/mule-runtime/4.3/migration-connectors) and its child pages,
instead.

## Endpoint Addresses

In Mule 3, an endpoint could be configured with either transport-specific attributes (for example,
an HTTP endpoint could use `host`, `port`, and `path`) or with the generic `address` attribute.

Whenever the generic `address` attribute was used, it was possible to reference a property, for
example:

```xml
<http:inbound-endpoint address="${External.URL}"/>
```

The properties configuration for `External.URL` looks something like this:

```text
External.URL=http://0.0.0.0:8080/rootPath
```

In Mule 4, the connectors define the connection attributes separately, so any full address property
has to be split into its components.

```xml
<http:listener-config name="listenerConfig">
    <http:listener-connection host="${External.URL.host}" port="${External.URL.port}"/>
</http:listener-config>

<flow>
    <http:listener config-ref="listenerConfig" path="${External.URL.path}"/>

    ...
</flow>
```

The configuration for the properties becomes:

```text
External.URL.host=0.0.0.0
External.URL.port=8080
External.URL.path=/rootPath
```

Connector-specific documentation (such as for the HTTP or Email connector) provides detail on the
exact properties that the connector requires.

## Service Overrides

In Mule 4, service override customizations through custom Java code are not supported in Mule 4.

In Mule 3, it is possible to customize the behavior of a transport through a connector’s
`service-overrides` element. This element provides a way to reference Java classes with custom code
that provides the new functionality.

Mule 3 Example: Connector with `service-overrides`

```xml
<imap:connector name="imapConnector" moveToFolder="processed" deleteReadMessages="false" checkFrequency="200">
    <service-overrides messageReceiver="org.mule.transport.email.functional.RetrieveMessageReceiverPollCounter"/>
</imap:connector>
```

The way to migrate such customizations to Mule 4 depends on what the custom code does, so you might:

- Provide the functionality through another Mule feature or component, such as a
  [DataWeave](https://docs.mulesoft.com/mule-runtime/4.3/dataweave) transformation, a [Java Module](https://docs.mulesoft.com/java-module/latest/), or a
  [Scripting Module](https://docs.mulesoft.com/scripting-module/latest/)).

- Use the [Mule SDK](https://docs.mulesoft.com/mule-sdk/latest/) to create a connector that provides your customized
  transport functionality. As a starting point, you can use open-source connectors as dependencies
  (for example,
  [https://github.com/mulesoft/mule-http-connector](https://github.com/mulesoft/mule-http-connector)).

- Similar to the previous approach, you can fork an open-source connector repository and add your
  custom code to the fork. MuleSoft welcome Pull Requests for your changes.

- Provide a feature request to MuleSoft. You can request that MuleSoft add the functionality that
  your custom code provided through `service-overrides`. Visit
  [MuleSoft Support Ideas](https://ideas.salesforce.com/s/search) to submit such requests.

## See Also

[Migrating Connectors and Modules to Mule 4](https://docs.mulesoft.com/mule-runtime/4.3/migration-connectors)

[Java Integration](https://docs.mulesoft.com/mule-runtime/4.3/intro-java-integration)

[Mule SDK](https://docs.mulesoft.com/mule-sdk/latest/)
