# upgrade-mule-app Workflow required before any Mule application upgrade work. Call use_skill as your FIRST action — before reading project files (pom.xml, mule-artifact.json) or editing versions yourself — whenever the user asks to upgrade, migrate, bump, modernize, or move a Mule app to a newer Java version, a newer Mule Runtime version, or both. Covers upgrading Java and/or Mule Runtime, getting latest compatible connector versions, updating connector and plugin versions, and fixing impacts from operation changes in flows, DataWeave scripts, and MUnit tests. Even a targeted single-version bump like 'move this app to Java 17' or 'upgrade the runtime to 4.6' requires this workflow — do not hand-edit pom.xml versions and attempt the change yourself. When you call this skill, it must be the only tool call in that response. - **Skill Source:** [SKILL.md](https://dev-portal.mulesoft.com/skills/mule-development/upgrade-mule-app/SKILL.md) ## Steps ### Step 1: Step 1: Validate Prerequisites ### Step 2: Step 2: Get Current Versions ### Step 3: Step 3: Build Baseline ### Step 4: Step 4: Determine Target Versions ### Step 5: Step 5: Extract Connectors and Check Current Java Compatibility ### Step 6: Step 6: Resolve Target-Compatible Connector Versions ### Step 7: Step 7: Check Operations/Configs/Error Types Changes ### Step 8: Step 8: Check Custom Java Compatibility ### Step 9: Step 9: Check DataWeave Compatibility ### Step 10: Step 10: Check MUnit Compatibility ### Step 11: Step 11: Get Plugin Versions ### Step 12: Step 12: Present Plan & Get Approval ### Step 13: Step 13: Download Target Runtime and Java ### Step 14: Step 14: Update Files - Versions Only ### Step 15: Step 15: Update Application Code ### Step 16: Step 16: Build Loop ### Step 17: Step 17: MUnit Loop ### Step 18: Step 18: Fork the Parent-POM Version ### Step 19: Step 19: Clean Up Workspace `tmp/` ### Step 20: Step 20: Declare Completion