Mule Migration Assistant is a command-line tool that helps migrate Mule 3.x applications to Mule 4.x. This tool works on a "best-effort" basis to translate every component in the base application. This means that if it does not complete 100% of the migration, manual adjustments are required. A migration report generated when the assistant is ran can help with those adjustments.
Mule Migration Assistant is distributed under the terms of the Apache 2.0 License
Important: Mule Migration Assistant (MMA) is subject to the terms and conditions described for Community connectors.
In order to understand the tool, let's start with a couple of informal definitions:
In simple terms, the tool executes a sequence of tasks over a project and outputs a migrated project and a report about the migration.
The Mule Migration Assistant workflow is designed as follows:
![Mule Migration Assistant Architecture](./architecture.svg "A visual representation of the relation between different components that take part of a recording")
These are the instructions to have the project up and running.
If you would just like to download/access the MMA tool (compiled version), you can download/access available versions from the releases location.
See the following commands in order to clone, build and run this project
$ git clone git@github.com:mulesoft/mule-migration-assistant.git
$ cd mule-migration-assistant/
$ mvn clean package
$ cd runner/target
$ java -jar mule-migration-assistant-runner-*CURRENT VERSION*.jar [parameters]
Parameter | Description | Required |
---|---|---|
projectBasePath | Path of the application to be migrated | Yes |
destinationProjectBasePath | Path where to generate the migrated application | Yes |
muleVersion | Mule 4 version to define on the application | Yes |
parentDomainBasePath | Path of the domain to be migrated | No |
help | Show all the parameters to define on MMA | No |
cancelOnError | Use cancelOnError = true the MMA stop migration if a exception occurs (default false) | No |
projectParentGAV | Use projectParentGAV 'groupId:artifactId:version' to migrate your parent inside the pom.xml | No |
jsonReport (experimental) | Generate migration report in JSON format | No |
noCompatibility (experimental) | Do not use Mule compatibility module | No |
For guidance using MMA to assist in a migration, see the user documentation.
This project is Open Source and therefore welcome contributions, in case you wish to contribute please check our contribution guide