---
schema_version: "1"
id: 4b3cb7b100fd6cf6254f9a11e510a362ef45002ad07aac765d6d157f2f8bf8d2
title: Setting Up Forward Compatibility
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/mule-sdk/latest/forward-compatibility-setup.md
canonical_url: https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility-setup
source_site: docs.mulesoft.com
content_type: documentation
content_hash: a9308503a2bc42294540a6388737112c383000223228f451a2053c4a03316538
description: MuleSoft Documentation Site
release: "1.13"
latest: true
---
---
product: Mule SDK
version: 1.13
is-latest-version: true
keywords: mule, sdk, forward compatibility, setup, mule-sdk-api, parent pom
---

# Setting Up Forward Compatibility

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

Configure your module project for forward compatibility by updating the parent POM and using the new
SDK API artifact.

## Configure the Parent POM

To enable forward compatibility, your module must use the new `mule-java-extension-parent`:

```xml
<parent>
  <groupId>org.mule.extensions</groupId>
  <artifactId>mule-java-extension-parent</artifactId>
  <version>1.11.0</version>
</parent>
```

This parent POM includes the `mule-sdk-api` artifact and configures the build tooling for forward
compatibility.

## Upgrade Existing Modules

> [!IMPORTANT] All forward compatible APIs in `org.mule.sdk.api` require Mule 4.5.0 or later. Before
> upgrading, consider whether having 4.5.0 as your module’s Minimum Mule Version is acceptable. If
> your module must support runtimes older than 4.5.0, you can’t use forward compatibility.

To upgrade an existing module, change the parent POM in your `pom.xml` to use
`mule-java-extension-parent` version 1.11.0 or later.

The new parent POM removes provided-scope dependencies on `org.mule.runtime` modules. Possible
issues appear as compilation errors, resolve them by replacing `org.mule.runtime` imports with their
`org.mule.sdk.api` counterparts.

## Include the SDK API Artifact in Your Module

The `org.mule.sdk:mule-sdk-api` artifact provides a new package namespace: `org.mule.sdk.api`. This
package contains all the SDK annotations, interfaces, and classes needed for module development.

The key difference from traditional `org.mule.runtime` artifacts is that `mule-sdk-api` can be
bundled with your module. This enables your module to compile against newer SDK features while still
supporting older Mule Runtime versions.

When writing new code or migrating existing code, use APIs from the `org.mule.sdk.api` package. For
example:

- `org.mule.sdk.api.annotation.param.Parameter`

- `org.mule.sdk.api.runtime.streaming.StreamingHelper`

- `org.mule.sdk.api.metadata.MetadataContext`

## Configure the Minimum Mule Version

Unlike previous SDK versions, the parent POM version and the `mule-sdk-api` version don’t directly
determine your module’s minimum Mule version. Instead, the minimum Mule version is calculated per
component based on the APIs it uses.

### Baseline Minimum Mule Version

When creating a new module with the archetype, the `min.mule.version` property is added to your POM
with `4.11.0` as the default:

```xml
<properties>
  <min.mule.version>4.11.0</min.mule.version>
</properties>
```

See [Working with Minimum Mule Versions](https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility-min-mule-version) for details on how
versions are calculated.

## See Also

- [SDK Forward Compatibility](https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility)

- [Working with Minimum Mule Versions](https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility-min-mule-version)

- [Getting Started with the Mule SDK for Java](https://docs.mulesoft.com/mule-sdk/latest/getting-started)

- [HTTP-Based Connectors](https://docs.mulesoft.com/mule-sdk/latest/http-based-connectors) for the forward-compatible `org.mule.sdk.api.http`
  client API
