# mulesoft Studio - Full Documentation --- product: Studio --- # Access MuleSoft Government Cloud from Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio allows you to connect to the MuleSoft Government Cloud region. ## Configure Studio to Access The MuleSoft Government Cloud Region To configure Studio to connect to MuleSoft Government Cloud: 1. Open the preferences view in the manner appropriate to your OS: - In macOS, either navigate to **Anypoint Studio** > **Preferences…​** or press `cmd + ,`. - In Windows and Linux, navigate to **Window** > **Preferences…​**. 2. Expand **Anypoint Studio** in the left navigation bar, and select **Anypoint Platform**. ![Anypoint Studio highlighted in the navigation bar.](/mulesoft/current/en-us/reuse/_images/studio-anypoint-platform-settings.png) 3. Under **Region Settings**, select **GOV** from the drop-down menu. ![A dropdown menu with options for selecting a region, including US, EU, GOV, and Other](/mulesoft/current/en-us/studio/_images/gov-region-selection.png) 4. Select **Apply and Close**. ## Configure your MuleSoft Government Cloud User Login Because MuleSoft Government Cloud requires you to use a two-factor authentication (2FA) method, you must configure your identity provider (IdP) information to access it: 1. Open the preferences view in the manner appropriate to your OS: - In macOS, either navigate to **Anypoint Studio** > **Preferences…​** or press `cmd + ,`. - In Windows and Linux, navigate to **Window** > **Preferences…​**. 2. Expand **Anypoint Studio** in the left navigation bar, select **Authentication** > **Add**. ![A window that displays the Anypoint Platform authentication settings, including a username text field, an Add button, and a Remove button](/mulesoft/current/en-us/studio/_images/preferences-authentication-add.png) 3. In the **User Login** UI, select **Configure**. ![An arrow points to a button labeled ](/mulesoft/current/en-us/studio/_images/login-configure.png) 4. In the pop-up window, select **External Identity** and your MuleSoft Government Cloud organization’s domain. ![A user login window with a field for organization domain](/mulesoft/current/en-us/studio/_images/user-login-custom-domain.png) Talk to your organization administrator if you don’t know your organization’s domain. 5. Click **OK**. 6. Add your MuleSoft Government Cloud credentials and sign-in. ## See Also - [MuleSoft Government Cloud Documentation](https://docs.mulesoft.com/gov-cloud/) --- product: Studio --- # Access the Metadata Editor > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Open the Metadata Editor in Anypoint Studio from a component’s Metadata tab, the Transform Message component, or the Package Explorer view. Use the editor to define the metadata of your payload, attributes, and variables. ## Metadata Tab 1. Select a component in your canvas to display its Mule Properties view. 2. Select the Metadata tab on the component’s Mule Properties view. 3. Click the Add Metadata button to start defining the metadata of your payload, attributes, and variables. 4. Select the Mule event component to which you want to define metadata. 5. Click the Edit icon ![Edit icon](/mulesoft/current/en-us/studio/_images/access-metadata-editor-task-93b19.png) to open the Metadata Editor. For example, this is the metadata tab for an HTTP Listener source: ![The metadata tab highlighted displaying the metadata of a flow](/mulesoft/current/en-us/studio/_images/access-metadata-editor-task-320a3.png) > [!NOTE] If you edit inbound endpoint metadata, you can define outbound metadata. ## Transform Message Component 1. Select a Transform Component in your canvas to display its Mule Properties view. 2. Click the Define Metadata link in either the input or output columns of the component, depending on the metadata you want to define. If the previous component in your flow is already defining output metadata, the input section of the Transform Component already recognizes it. You can right click the payload field and select Set Metadata. ![The set metadata option highlighted in a transform message component](/mulesoft/current/en-us/studio/_images/access-metadata-editor-task-b0be6.png) When you set metadata for a Transform Message component, you can select a checkbox to wrap elements in a collection. Selecting the wrap-elements option sets the metadata as a list, where each element on the list is an instance of the structure you defined. So for example, if you set your metadata as an XML structure and click this checkbox, metadata shows as a list that contains N instances of that XML structure. ## Package Explorer View 1. Select **Window > Show View > Package Explorer** if the package explorer isn’t already displayed. 2. Right click a project in the Package Explorer view. 3. Select **Mule > Manage Metadata Types**. ## See Also - [Create a Metadata Class](https://docs.mulesoft.com/studio/create-metadata-class-task) - [Define Input and Output Structure of a Transformation](https://docs.mulesoft.com/mule-runtime/latest/transform-input-output-structure-transformation-studio-task) --- product: Studio --- # Add Another Output to the Transform Message Component > For the full documentation index, see: https://docs.mulesoft.com/llms.txt A single Transform Message component can shape different output parts, such as the payload, a flow variable, or a property. You must define each output part in a separate DataWeave code, written out in a separate tab of the Transform pane. For example: if one tab defines the payload, and another an outbound property, both are parts of the same output Mule message. To add a new output: 1. Click the **Add new target** button ![Add new target icon](/mulesoft/current/en-us/studio/_images/using-dataweave-in-studio-34a3e.png). 2. Specify where in the output Mule message to place the result of this new DataWeave transform. In case you’re creating a new variable or property, you must also set a name for it. ![The new-target window with options to select a variable name and source code](/mulesoft/current/en-us/studio/_images/dw-new-variable.png) > [!NOTE] Execution order of multiple outputs can vary. Ensure each transformation is independent of > the order of execution and the other outputs. ## See Also - [Transform Message Component](https://docs.mulesoft.com/studio/transform-message-component-concept-studio) - [Change the Target Output of a Transformation](https://docs.mulesoft.com/studio/change-target-output-transformation-studio-task) - [Mule Message Structure](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message) - [DataWeave language](https://docs.mulesoft.com/mule-runtime/latest/dataweave) --- product: Studio --- # Add Custom Modules to Your Project > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can add your custom Mule module to your Mule projects in Anypoint Studio. These instructions assume that you developed your Mule module using the Mule SDK, and that you followed the proper setup steps. See the [Mule SDK introductory instructions](https://docs.mulesoft.com/mule-sdk/latest/getting-started) for more details. You can install custom modules using the Studio UI, or by manually adding them as a Maven dependency in your project’s `pom.xml` file. ## From Studio To install a local custom module from Studio: 1. In the menu bar, select the **Manage dependencies** icon ![Manage dependencies icon](/mulesoft/current/en-us/studio/_images/manage-dependencies.png). 2. Under **Mule Project**, select **Modules**: ![The Modules option highlighted in your Mule project](/mulesoft/current/en-us/studio/_images/manage-modules.png) 3. Select the green plus icon (![A green plus sign](/mulesoft/current/en-us/studio/_images/add-icon.png)) and select **From Maven**: ![The from Maven option is highlighted in your Mule project properties window](/mulesoft/current/en-us/studio/_images/add-modules-from-maven.png) 4. In the properties window, configure your custom module’s Maven coordinates: ![A Mule project property window showing fields to input artifact definition and advanced settings](/mulesoft/current/en-us/studio/_images/add-modules-maven-ui.png) This information is available in your module’s `pom.xml` file. ## From Maven As you develop Mule modules as Maven projects, you can install them from a local or online Maven repository: 1. In your Anypoint Studio project, edit the `pom.xml` file with the groupId, artifactId, and version of your Mule module. This information is available in your module’s `pom.xml` file. For example: ```xml org.mule.extensions mule-ee-core-modules-parent 1.1.0-SNAPSHOT com.mulesoft.mule.modules mule-secure-configuration-property-module mule-extension 1.0.0-SNAPSHOT Mule Secure Configuration Property Extension Mule extension for loading encrypted properties ``` It’s also reflected in the folder structure in which the Mule module is installed (`$MAVEN_REPOS_HOME/groupID_path/artifactId/version`). For the previous example, your Anypoint Studio pom.xml file must add the following dependency: ```xml com.mulesoft.mule.modules mule-secure-configuration-property-module 1.0.0-SNAPSHOT mule-plugin ``` The `` element is set to mule-plugin. This automatically installs the mule-plugin into your project’s palette. 2. Save your changes to your Studio project’s `pom.xml` file. After Anypoint Studio downloads the new dependency, you’ll see your new Mule module in the Studio palette. In this example, there is a Secure Properties module listed in the Mule Palette view. There’s also a new Secure Properties Config element available in the Global Elements editor, and the new XML namespace and XML tags are available in the XML configuration file editor. ## See Also - [To Add Modules to Your Project](https://docs.mulesoft.com/studio/add-modules-in-studio-to) - [Get Started with the Mule SDK](https://docs.mulesoft.com/mule-sdk/latest/getting-started) --- product: Studio --- # Add Modules to Your Project > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can add Modules and Connectors to your Mule project using the **Mule Palette**. If you’re editing a Mule Application project: 1. Go to the **Mule Palette**, and click **Search in Exchange**. By default, this list shows the available public modules. If you configured your Anypoint Platform credentials in Studio, you can also see your organization’s private modules. If you have no credentials configured in Studio, you can click **Add Account** to access your organization’s modules. 2. Select your desired modules from the **Available Modules** list by clicking **Add >**. 3. Click **Finish**. The selected module is now part of the **Mule Palette**. Additionally, you can also select the **Add Modules** option, and drag your desired module from the featured list. Modules are dependencies of your Mule project. Adding a module to a Mule project in Studio doesn’t make that module available to other projects in your Studio workspace. If you’re editing a Mule domain project: 1. Go to **Global Elements** from your Mule domain configuration editor and click **Manage Modules**. 2. Click **Add Module**. By default, this list shows the available public modules. If you configured your Anypoint Platform credentials in Studio, you can also see your organization’s private modules. If you have no credentials configured in Studio, you can click **Add Account** to access your organization’s modules. 3. Select your desired modules from the **Available Modules** list by clicking **Add >**. 4. Click **Finish**. The selected Module is now part of your Mule Domain and it shows up in the **Mule Palette** of your Mule application. > [!NOTE] Modules inherited by a Mule domain show as such in the Mule Palette view. > You can’t edit or delete domain modules from your Mule application palette. ## See Also - [To Add Custom Modules to Your Project](https://docs.mulesoft.com/studio/add-custom-modules-in-studio-to) - [To Configure Anypoint Platform Credentials](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) --- product: Studio --- # Add Your Anypoint Platform Account to Access Organization Resources > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Add your Anypoint Platform user account to enable Anypoint Studio to access resources in your organization. You can add as many Anypoint Platform user accounts as you need. To add your account, you must configure your Anypoint Platform user account credentials: 1. In the top menu bar, navigate to **Anypoint Studio** > **Preferences**. 2. Select **Anypoint Studio** in the left navigation bar > **Authentication** > **Add**: ![The Preferences window displays authentication settings, with an option to Add](/mulesoft/current/en-us/studio/_images/preferences-authentication-add.png) 3. Enter your username and password for your Anypoint Platform user, and select **Sign in**. 4. Select **Apply and close**. When adding a new credential for the first time, Studio notifies you that a new main password has been created. Additionally, Studio prompts you to create two recovery questions to use in case you forget your main password. See [Protect Your Credentials with Secure Storage in Anypoint Studio](https://docs.mulesoft.com/studio/secure-storage) for more information. > [!TIP] In every operation related to the platform, you see a toolbar that enables you to change > accounts and/or business groups, if applicable. You can also add more accounts from this toolbar. > > For example, you can add or change user accounts when selecting **Search in Exchange** from the > Mule Palette view: > > ![A form for adding modules to a project, with a username field and an ](/mulesoft/current/en-us/studio/_images/studio-credentials-exchange.png) ## Configure Access for External Identity Providers 1. In the top menu bar, navigate to **Anypoint Studio** > **Preferences**. 2. Select **Anypoint Studio** in the left navigation bar > **Authentication** > **Add**: ![The Preferences window displays authentication settings, with an option to Add](/mulesoft/current/en-us/studio/_images/preferences-authentication-add.png) 3. Select **Configure**: ![A login screen for Anypoint Platform with a highlighted Configure button](/mulesoft/current/en-us/studio/_images/configure-authentication-idp.png) 4. Select **External Identity**. 5. Enter your organization’s domain name, and select **OK**. Consult your organization administrator if you don’t know your organization’s domain. ![A login form for an Anypoint Platform account, with fields for username, password, and organization domain](/mulesoft/current/en-us/studio/_images/authentication-external-identity.png) 6. Select the external identity provider you want to use. 7. Select **OK**. 8. Enter your username and password for your external identity provider. 9. Select **Sign in**. 10. Select **Apply and close**. ## See Also - [Publish a Project to Exchange](https://docs.mulesoft.com/studio/export-to-exchange-task) - [Import an API Specification from Exchange](https://docs.mulesoft.com/studio/import-api-specification-exchange) --- product: Studio keywords: studio, IDE, development, eclipse, anypoint, visual editor, XML editor --- # Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio is MuleSoft’s Eclipse-based integration development environment for designing and testing Mule applications. Anypoint Studio features enhance your productivity when building Mule applications: - Instant run of your Mule application inside a local runtime - Visual editors to configure API specification files and Mule domains - Push changes to a local running app to test changes - Integration with Exchange to create projects from templates and examples, and import definitions and other resources from your Anypoint Platform organization - Embedded unit testing framework - Built-in support to deploy to CloudHub Watch the Anypoint Studio Product Spotlight video to see a quick overview of Studio. ![](https://play.vidyard.com/3tTERQRQzDA4j9i8mqdSKg.jpg) ## Editors Studio editors help you design and edit the definitions of your applications, APIs, properties, and configuration files: - Mule configuration files - API specifications - Properties files - A `pom.xml` file to handle dependencies The Mule configuration file editor opens when you double-click on the application XML file in `/src/main/mule`. The editor contains three tabs which offer different ways to work with your application: - The Message Flow tab ![A flowchart showing a listener, payload, and logger](/mulesoft/current/en-us/studio/_images/index-039ff.png) Contains the canvas in which you can see a visual representation of your flows. You can drag and drop Event Processors from the Mule Palette into the canvas to add them to your flow. Clicking an Event Processor in the canvas opens up the Mule Properties View with the attributes for the selected processor, allowing you to edit them. - The Global Elements tab ![A table that lists global configuration elements, including type, name, and description, with buttons to create, edit, and delete them](/mulesoft/current/en-us/studio/_images/index-a2191.png) Contains the global Mule configuration elements for your modules. In this tab you can create, edit or delete configuration files. - The Configuration XML tab ![XML code for a Mule project](/mulesoft/current/en-us/studio/_images/index-ebe7d.png) Contains the XML that defines your Mule Application. All changes applied here are reflected in the canvas and the Properties view of your event processors in the Message Flow tab. ## Views Views in Studio are a graphical representation of project metadata, or properties for the active editor. Move, close, and add views as you develop your Mule project. Anypoint Studio displays the following default views. ### Package Explorer The Package Explorer view displays the project folders and files that make up a Mule project. ![A file tree showing a project’s structure and dependencies](/mulesoft/current/en-us/studio/_images/index-ee160.png) Click the open arrow next to a Mule project folder to expand or contract it. Double-click a folder or file to open it. ### Mule Palette The Mule Palette view helps you manage the modules and connectors in your project. You can also add new elements from Exchange in this view. ![A Mule Palette with a search bar, options to add modules, a favorites section, and a core section listing modules and their types](/mulesoft/current/en-us/studio/_images/mule-palette-concept-0bf01.png) Available event processors, such as scopes, filters, and flow control routers, along with modules and their related operations are displayed. Drag and drop any event processor to your Favorites or onto the canvas of the Mule Configuration File editor. ### Mule Properties The Mule Properties view allows you to edit the properties of the module that is currently selected in your canvas. ![A form with fields to configure a listener](/mulesoft/current/en-us/studio/_images/index-4cdd4.png) This view includes the DataSense Explorer which supplies real-time information about the data structure of your payload and any available inbound and outbound properties or variables. ### Console The Console view contains the console for the embedded Mule server, which displays a list of events and problems (if any) that Studio reports as you create or run your Mule application. ![A console log that displays status information for a Mule application](/mulesoft/current/en-us/studio/_images/index-0b4a5.png) ### Problems The Problems view displays a list of all issues encountered in your project. ![A table with two message flow errors](/mulesoft/current/en-us/studio/_images/index-7bcca.png) ## Perspectives A Perspective in Studio is a collection of views and editors in a specified arrangement. The default perspective is the Mule Design perspective. Studio also supplies a Mule Debug perspective, and an API design perspective. You can create your own perspectives, and add or remove any of the default views. To add a new view to your current Perspective in Anypoint Studio navigate to **Window** > **Show view** and select the View you want to add. If your View does not appear on the list, click Other…​ to load an entire list of available Views. Specific Mule views such as the Mule Palette, or the Mule Debugger View can be found in the MuleSoft folder. ## Configure FIPS Compliance in Anypoint Studio You can configure Anypoint Studio to use FIPS-compliant cryptographic libraries. This configuration is required for GovCloud customers and any environment that must comply with FIPS 140-2 standards. This page explains how to enable FIPS mode in Studio and how to run Mule applications with FIPS-compliant settings. ### Prerequisites To use FIPS mode in Anypoint Studio, make sure to review these prerequisites: - Anypoint Studio **7.23.0** and later - Mule runtime **4.9** (LTS) or **4.10** and later bundled with Studio - Java **17** configured when using Runtime 4.9 ### Enable FIPS Mode in Anypoint Studio After installing Studio, you can enable FIPS mode to ensure both the Mule runtime and the bundled JVM use FIPS-validated cryptographic providers. ### Enable FIPS Support 1. Navigate to **Preferences**. Click on **Anypoint Studio** and then **Runtimes**. 2. Select the runtime that you want to configure. 3. Select the checkbox **Enable FIPS support in Mule runtime**. Studio automatically configures all required FIPS components. When you enable FIPS mode: - Studio includes the Bouncy Castle FIPS (BCFIPS) libraries in the Mule runtime boot classpath. These libraries provide FIPS-validated cryptographic implementations. - Studio generates a custom `java.security` file that configures the JVM to use BCFIPS providers for all security operations. - Studio creates new keystores in BCFKS (Bouncy Castle FIPS KeyStore) format based on your existing (or default) keystores. BCFKS is the recommended, FIPS-compliant format for storing keys and certificates. ## Run Mule Applications with FIPS Compliance When FIPS mode is enabled, Studio updates each Mule application’s **Run Configuration** with the required FIPS parameters. These parameters instruct the Mule runtime to use the FIPS security providers and the FIPS-compliant keystores generated by Studio. - If a Run Configuration was created **before** FIPS mode was enabled, delete it so Studio can regenerate it using the FIPS parameters. - You can edit the generated parameters if you need to use a different keystore or `java.security` file. - All cryptographic operations—including TLS, encryption, and certificate handling—run in FIPS-compliant mode. ## See Also - [Install Anypoint Studio](https://docs.mulesoft.com/studio/to-download-and-install-studio) - [Configure Anypoint Platform Credentials](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) --- product: Studio --- # Anypoint Studio Release Notes > For the full documentation index, see: https://docs.mulesoft.com/llms.txt These release notes are available for Studio: - [Anypoint Studio 7.29.0 Release Notes](https://docs.mulesoft.com/release-notes/studio/anypoint-studio-7.29.0-release-notes) - [Anypoint Studio 7.20.1 Release Notes](https://docs.mulesoft.com/release-notes/studio/anypoint-studio-7.20.1-with-4.8-runtime-release-notes) For previous versions of Studio 7.x and 6.x that reached [end of life](https://www.salesforce.com/en-us/wp-content/uploads/sites/4/documents/legal/Agreements/versioning-back-support-policy.pdf), see the [Anypoint Studio Release Notes Archive](https://archive.docs.mulesoft.com/release-notes/studio/studio-archive). ## See Also - [Anypoint Studio Troubleshooting](https://docs.mulesoft.com/studio/troubleshooting-studio) - [Known Issues](https://help.salesforce.com/s/issues) --- product: Studio --- # Anypoint Studio Troubleshooting > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Find resources for troubleshooting Anypoint Studio errors, including default browser configuration and Java compatibility issues. - [Troubleshoot Issues with Platform Content in Anypoint Studio](https://docs.mulesoft.com/studio/faq-default-browser-config) - [Troubleshoot Java and Mule Runtime Compatibility Issues](https://docs.mulesoft.com/studio/compatibility-issues-runtime-java) ## See Also - [Known Issues](https://help.salesforce.com/s/issues) --- product: Studio --- # Breakpoints View Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The **Mule Breakpoints** view displays all breakpoints defined in all the Mule projects opened in Studio. ![Breakpoint elements highlighted in the Mule Breakpoints View](/mulesoft/current/en-us/studio/_images/breakpoints-view.png)
1Mute breakpoints
Temporarily disables all breakpoints
2Disable error breakpoint
Enables error breakpoints
Any event processor in the application becomes a breakpoint if it throws an error.
3Remove all breakpoints
When selected, removes all breakpoints but doesn’t remove the event processors under the breakpoint
4Remove breakpoint
Removes the selected breakpoint
5Conditional
Sets the condition to evaluate for the selected breakpoint
The condition must be a boolean.
## See Also - [Breakpoints](https://docs.mulesoft.com/studio/breakpoints-concepts) --- product: Studio --- # Change the Target Output of a Transformation > For the full documentation index, see: https://docs.mulesoft.com/llms.txt By default, the Transform Message component outputs to the message payload. You can change this target, so that the result of your transformation populates another part of the output such as a property or variable. 1. Click the **Edit Current Target** button ![Edit icon](/mulesoft/current/en-us/studio/_images/using-dataweave-in-studio-47984.png). 2. Specify where in the output Mule message to place the result of your DataWeave transform. In case you’re creating a new variable or property, you must also set a name for it. ![The variable name and source code options highlighted in the selection dialog window](/mulesoft/current/en-us/studio/_images/dw-new-variable.png) ## See Also - [Transform Message Component](https://docs.mulesoft.com/studio/transform-message-component-concept-studio) - [Add Another Output Target](https://docs.mulesoft.com/studio/add-another-output-transform-studio-task) - [Mule Message Structure](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message) - [DataWeave language](https://docs.mulesoft.com/mule-runtime/latest/dataweave) --- product: Studio --- # Configure Anypoint Platform Cloud in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Configure Anypoint Studio to deploy your Mule applications to Anypoint Platform, including Private Cloud Edition, regional clouds, and MuleSoft Government Cloud. From Studio, you can: - [Configure Anypoint Platform PCE 3](https://docs.mulesoft.com/studio/pce3-configuration) - [Configure Anypoint Platform PCE 4](https://docs.mulesoft.com/studio/pce4-configuration) - [Configure Canada Cloud and Japan Cloud](https://docs.mulesoft.com/studio/hyperforce-configuration) - [Configure Mule Domains](https://docs.mulesoft.com/studio/domain-support-concept) - [Configure EU Cloud](https://docs.mulesoft.com/studio/hyperforce-configuration) - [Configure MuleSoft Government Cloud](https://docs.mulesoft.com/studio/govcloud-config) - [Deploy to CloudHub](https://docs.mulesoft.com/studio/deploy-mule-application-task) ## See Also - [Anypoint Platform Private Cloud Edition](https://docs.mulesoft.com/studio/pce-configuration) --- product: Studio --- # Configure Anypoint Platform PCE 3.x in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio 7.12 and later supports native integration with PCE version 3.0.0, 3.0.1, and 3.0.2. The configuration steps depend on your operating system. - [macOS](https://docs.mulesoft.com/studio/pce-configuration-macos) - [Windows](https://docs.mulesoft.com/studio/pce-configuration-windows) --- product: Studio --- # Configure Anypoint Platform PCE 4.x in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio 7.19 and later adds support for Anypoint Platform Private Cloud Edition (Anypoint Platform PCE) version 4.0.0. ## Configure Your PCE Certificates into Studio Integrate your Studio installation with the Anypoint Platform components in an Anypoint Platform PCE deployment. ### Determine the Java Version and Location 1. In Studio, go to **Anypoint Studio** > **Settings**. 2. Select **Java** > **Installed JRES**. 3. Check the location of the JRE you use: Java 8 or Java 17. ![JRE location in Anypoint Studio](/mulesoft/current/en-us/studio/_images/pce4-jre-location.png) ### Export the Certificate Using the Platform DNS Run the following command by replacing `` with your actual server URL: `keytool -printcert -sslserver :443 -rfc > /tmp/PCE_Certificate.cer` For example: ```xml keytool -printcert -sslserver $ANYPOINT_DNS:443 -rfc > /tmp/PCE_Certificate.cer ``` Starting with Anypoint Studio 7.17, the default JDK version for Studio is Java 17. To ensure proper functionality, add the certificate to the default JDK version that Studio supports. - If you use an external JDK, add the certificate to the external JDK that you use with Studio. - If you use the default JDK Studio provides, add the certificate to the default JDK, regardless of the JDK version you use in your project. After installing the certificate, if you have Studio open, restart it. ### Import the Certificate Run the following command by replacing `` with the path to your embedded Java in Studio: `sudo keytool -import -trustcacerts -keystore /lib/security/cacerts -storepass changeit -file /tmp/PCE_Certificate.cer` For example, if you’re using the embedded Java 17 on macOS: ```xml sudo keytool -import -trustcacerts -keystore /Applications/AnypointStudio.app/Contents/Eclipse/plugins/org.mule.tooling.jdk.macosx.x86_64_1.3.0/Contents/Home/jre/lib/security/cacerts -storepass changeit -file /tmp/PCE_Certificate.cer` ``` For example, if you’re using the embedded Java 17 on Windows: ```xml keytool -import -trustcacerts -keystore C:[...]\AnypointStudio\plugins\org.mule.tooling.jdk.win32.x86_64_1.3.3\lib\security\cacerts -storepass changeit -file /tmp/PCE_Certificate.cer (1) ```
1The path changes with each Studio version because the JDK plugin version is included in the Windows path, and Studio includes a different JDK plugin version with each release.
### Set a Private Cloud Instance URL 1. In Studio, go to **Anypoint Studio** > **Settings**. 2. Select **Anypoint Studio** > **Anypoint Platform**. ![Anypoint Studio highlighted in the navigation bar.](/mulesoft/current/en-us/reuse/_images/studio-anypoint-platform-settings.png) 3. Select the **Use a Private Cloud Instance URL**. 4. Type the URL of your PCE installation in **Private Cloud Instance URL**. ![\*Private Cloud Instance URL\* field highlighted in the in the \*PCE Settings\* section.](/mulesoft/current/en-us/studio/_images/pce-properties.png) 5. Click **Apply and Close**. 6. Restart Studio. ## Configure your PCE User Login The first time you configure your user’s login, Studio asks you to confirm your PCE certificate: 1. Open the preferences view. Either navigate to **Anypoint Studio** > **Preferences…​** or press `cmd + ,`. 2. Expand **Anypoint Studio** in the left navigation bar, select **Authentication** > **Add**. ![\*Authentication\* option and \*Add\* button highlighted in the \*Preference\* window.](/mulesoft/current/en-us/studio/_images/preferences-authentication-add.png) 3. Select **Yes** in the **Invalid Certificate** message that appears. ![\*Yes\* button highlighted in the \*Invalid Certificate\* message window.](/mulesoft/current/en-us/studio/_images/invalid-certificate-pce.png) 4. Add your PCE credentials and sign-in. 5. Select **Apply and Close**. 6. Restart Studio. --- product: Studio --- # Configure Anypoint Studio Browser Settings > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio comes bundled with a default browser to display elements of the Anypoint Platform UI. For example, when you deploy to CloudHub from Studio, Studio displays the Runtime Manager UI by using a built-in browser. This built-in browser is the default. However, if you log in to Anypoint Platform using multi-factor authentication (MFA), you must configure Studio to use your system’s native browser to render the Anypoint Platform UI: 1. Navigate to **Preferences** > **Anypoint Studio** > **Browser**. 2. Select the type of default browser for Studio: ![The browser preferences window highlighting built-in or native options](/mulesoft/current/en-us/studio/_images/browser-configuration.png)
1Built-in: Uses the built-in browser.
2Native: Uses the native browser of your operative system.
3. Click **Preview** to verify the changed configuration. Additionally, if you use Windows you must perform an additional configuration: 1. Quit Anypoint Studio if you’re running it. 2. Download the latest fixed version of WebView2 from the [Microsoft Developer Portal](https://developer.microsoft.com/en-us/microsoft-edge/webview2/?form=MA13LH). 3. Extract the `.cab` file with the following command in a Command Prompt (CMD): `Extrac32 /E ` 4. Locate your `AnypointStudio.ini` file inside your Anypoint Studio installation directory. 5. Add the following lines to the `AnypointStudio.ini` file: ```none --- -Dorg.eclipse.swt.browser.DefaultType=edge -Dorg.eclipse.swt.browser.EdgeDir= # for example: # -Dorg.eclipse.swt.browser.EdgeDir=C:\Users\my-user\Downloads\Microsoft.WebView2.FixedVersionRuntime.9x.x.xx.xx --- ``` ## See Also - [Configure Platform Credentials](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) - [Configure Proxy Settings](https://docs.mulesoft.com/studio/proxy-settings-task) --- product: Studio --- # Configure Anypoint Studio to Connect Through a Proxy Server > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Configure Anypoint Studio to connect through a proxy server when your computer is behind one and needs internet access to download plugins and install updates. Studio supports both authenticated and non-authenticated proxies. 1. Open the preferences view in the manner appropriate to your OS: - In macOS, either navigate to **Anypoint Studio** > **Preferences…​** or press `cmd + ,`. - In Windows and Linux, navigate to **Window** > **Preferences…​**. 2. Under **General** select **Network Connections**. 3. Select your Active Provider: - **Direct** causes Anypoint Studio to open connections without the use of a proxy server. - **Manual** causes Anypoint Studio to open connections using the settings defined in the options below. - **Native** causes Anypoint Studio to open connections using settings discovered in the OS where you installed Anypoint Studio. 4. Click **Edit** when selecting the proxy entry for each schema to configure its host and port number. If you’re using an authenticated proxy, select **Requires Authentication** and complete the **User** and **Password** fields. 5. If necessary, you can add bypasses to your proxy. This is a list of hosts that should not use any proxy. Click **Add Host…​** to add hostnames to your proxy bypass list. Keep in mind that when setting a manual provider, don’t disable the default `localhost` and `127.0.0.1` bypasses. If you disable the bypasses, the embedded Mule runtime within Studio won’t be able to reach your application. When applying changes to your proxy settings, Anypoint Studio restarts the Mule instance used to obtain metadata and test outbound connections. If this fails, manually restart your instance: navigate to **Preferences** > **Tooling**, and click **Restart Instance**. ## Proxy Settings Reference This section describes the options for configuring network connections from Anypoint Studio. You can access these configuration options from **Preferences…​** > **General** > **Network Connections**. ![Table of Proxy Connections: Connection, Schema, Provider, and Authorization Status](/mulesoft/current/en-us/studio/_images/proxy-settings-reference-4eeb1.png)
OptionDescriptionDefault Value

Active Provider

Specifies the settings profile to be used when opening connections.

  • Direct causes Anypoint Studio to open connections without the use of a proxy server.

  • Manual causes Anypoint Studio to open connections using the settings defined in the options below.

  • Native causes Anypoint Studio to open connections using settings discovered in the OS where Anypoint Studio is running.

Native if Anypoint Studio detects a proxy configuration in your OS.
Direct if no proxy configuration is detected.

Proxy Entries

This table displays entries that are available for all providers. You can check the boxes in the first column for your selected provider to use that entry.

none

Proxy Bypass

This table specifies, either by name or pattern, which hosts should not use any proxy. A direct connection will always be used for matching hosts. You can check the boxes in the first column for your selected provider to use that entry.

localhost and 127.0.0.1 are marked by default for the Manual provider.
Don’t remove this configuration when using a proxy. If you do, the embedded Mule Runtime within Studio won’t be able to reach your application.

--- product: Studio --- # Configure Anypoint Studio to Use a Specific Control Plane Region > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Configure Anypoint Studio to point to a specific control plane region. This enables you to perform tasks such as deploying to CloudHub, importing assets from Exchange, and importing API definitions from Design Center. ## Configure Anypoint Studio to US or EU Clouds Follow these steps to configure Anypoint Studio, for the US or EU Clouds: 1. Go to **Anypoint Studio** > **Settings** > **Anypoint Studio** > **Anypoint Platform**. 2. Under **Select your region**, select either **US** or **EU** from the dropdown menu. 3. Select **Apply and Close**: ![EU cloud selected](/mulesoft/current/en-us/studio/_images/select-eu-cloud.png) As a result, all Anypoint Platform tools embedded in Anypoint Studio display your Anypoint Platform from the US or EU clouds. ## Configure Anypoint Studio to Other Clouds Follow these steps to configure Anypoint Studio, for other clouds: 1. Go to **Anypoint Studio** > **Settings** > **Anypoint Studio** > **Anypoint Platform**. 2. Under **Control Plane Settings**, select **Use this control plane**. 3. In **Control Plane URL**, enter the Anypoint Platform URL for the cloud to deploy your Mule app to: - Canada Cloud: `https://ca1.platform.mulesoft.com` - Japan Cloud: `https://jp1.platform.mulesoft.com` - India Cloud: `https://in1.platform.mulesoft.com` - Australia Cloud: `https://au1.platform.mulesoft.com` - United Kingdom Cloud: `https://gb1.platform.mulesoft.com` 4. Click **Apply and Close**. ![Canada Cloud platform URL in control plane URL field](/mulesoft/current/en-us/studio/_images/select-other-region.png) ## See Also - [Salesforce Hyperforce Overview](https://docs.mulesoft.com/hyperforce/) --- product: Studio --- # Configure Anypoint Studio to Use Your Maven Installation > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio comes bundled with Maven but you can use Studio with an external Maven installation as well. 1. Open Studio 2. Go to Studio preferences: - In macOS, go to **Anypoint Studio > Settings**. - In Windows, go to **Anypoint Studio > Preferences**. 3. In the Preferences panel, go to **Anypoint Studio > Maven**. 4. Deselect **Use embedded Maven Installation**. 5. Click **Browse** next to the **Maven installation home directory** field. 6. Select your Maven root installation path and click **Open**. 7. Click **Test Maven Configuration** to verify your Maven configuration in Studio is correct. ![Maven options highlighted in the Anypoint Studio preferences window](/mulesoft/current/en-us/studio/_images/maven-preferences.png) 8. Click **Apply and Close**. ## See Also - [Maven Preferences Reference](https://docs.mulesoft.com/studio/maven-preferences-reference) --- product: Studio --- # Configure Anypoint Studio to Use Your Own JDK > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio comes bundled with a Java development kit (JDK), but you can configure it to start with a different JDK on Windows, Linux, or macOS. You can find the JDK version used by Studio under **About Anypoint Studio** > **Installation Details**. To start Studio using a different JDK, follow the instructions based on your operating system: - [Windows](https://docs.mulesoft.com/studio/change-jdk-for-studio-wx) - [Linux](https://docs.mulesoft.com/studio/change-jdk-for-studio-lx) - [macOS](https://docs.mulesoft.com/studio/change-jdk-for-studio-ox) ## Select the Appropriate Java and Mule Runtime Versions If you change the Java or Mule runtime versions in your project, consider these facts: - Mule runtime 4.4 and earlier works with Java 8 and 11. - Mule runtime 4.6 works with Java 8, 11, and 17. - Standard support for Java 8 and 11 ends in March 2025 for Mule 4.8 Edge and August 2025 for 4.6 LTS, so plan your upgrade path for apps that are running on Java 8 or 11 accordingly. - Studio 7.21 and later builds and runs projects on Java 17 by default. To use Mule 4.9 and later, upgrade your apps to run on Java 17. ## Mule Runtime and Java Compatibility in Studio This table shows the compatibility between Mule runtime and Java versions in Studio:
Studio VersionMule Runtime VersionJava 8Java 11Java 17

7.22 and later

  • 4.13.x

  • 4.12.x

  • 4.11.x

  • 4.10.x

  • 4.9.x (LTS) and later

  • 4.8.x

  • 4.6.x (LTS)

No

No

Yes

7.20

  • 4.8.x

  • 4.6.x (LTS)

Yes

Yes

Yes

  • 4.4.x

Yes

Yes

No

See the [Studio release notes](https://docs.mulesoft.com/studio/studio-release-notes) for the latest information about compatibility. ## See Also - [Java Support](https://docs.mulesoft.com/general/java-support) --- product: Studio --- # Configure Anypoint Studio to Use Your Own JDK (Linux) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Point Anypoint Studio on Linux to your own JDK by adding the `-vm` option to the `AnypointStudio.ini` file. Studio then starts with the JDK installation that you specify instead of its bundled JDK. 1. Locate your `AnypointStudio.ini` file in `/usr/lib/anypointstudio/anypointstudio.ini`. 2. Add the `-vm` option to point to your specific JDK installation path. ```text -vm /opt/jdk-11.0.11+9/bin/java ``` - The `-vm` option and the installation path must be on separate lines. - The value must be the full absolute or relative path to the Java executable, not just to the Java home directory. - The `-vm` option must occur after the other Studio-specific options (such as `-product`, `--launcher.*`, and so on), but before the `-vmargs` option. --- product: Studio --- # Configure Anypoint Studio to Use Your Own JDK (macOS) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Point Anypoint Studio on macOS to your own JDK by adding the `-vm` option to the `AnypointStudio.ini` file. Studio then starts with the JDK installation that you specify instead of its bundled JDK. 1. Go to your `/Applications` folder, right click the `AnypointStudio` package and select **Show Package Contents**. 2. Go to `Contents` > `Eclipse`, and open the `AnypointStudio.ini` file. 3. Add the -vm option to point to your specific JDK installation path. ```text -vm /Library/Java/JavaVirtualMachines/jdk-11.0.11+9/Contents/Home/bin/java ``` - The `-vm` option and the installation path must be on separate lines. - The value must be the full absolute or relative path to the Java executable, not just to the Java home directory. - The `-vm` option must occur after the other Studio-specific options (such as `-product`, `--launcher.*`, and so on), but before the `-vmargs` option. --- product: Studio --- # Configure Anypoint Studio to Use Your Own JDK (Windows) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Point Anypoint Studio on Windows to your own JDK by adding the `-vm` option to the `AnypointStudio.ini` file. Studio then starts with the JDK installation that you specify instead of its bundled JDK. 1. Locate your `AnypointStudio.ini` file inside your Anypoint Studio installation directory. 2. Add the `-vm` option to point to your specific JDK installation path. ```text -vm C:\Program Files\Java\jdk-11.0.11+9\bin\javaw.exe ``` - The `-vm` option and the installation path must be on separate lines. - The value must be the full absolute or relative path to the Java executable, not just to the Java home directory. - The `-vm` option must occur after the other Studio-specific options (such as `-product`, `--launcher.*`, and so on), but before the `-vmargs` option. If you encounter **Java was started but returned exit code=1** while starting Anypoint Studio, modify the `-vm` argument to point to the `jvm.dll`: ```text -vm C:\Program Files\Java\jdk-11.0.11+9\jre\bin\server\jvm.dll ``` --- product: Studio --- # Configure Private Cloud Edition in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Configure Anypoint Platform Private Cloud Edition (Anypoint Platform PCE) in Anypoint Studio by following the instructions for your PCE version. - [Configure Anypoint Platform PCE 4.x in Studio](https://docs.mulesoft.com/studio/pce4-configuration) - [Configure Anypoint Platform PCE 3.x in Studio](https://docs.mulesoft.com/studio/pce3-configuration) --- product: Studio --- # Configure Private Cloud Edition in Anypoint Studio (macOS) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio 7.4 through 7.7 support native integration with Anypoint Platform Private Cloud Edition (PCE) versions 1.6 and 2.0 and 3.0 Anypoint Studio 7.8 and later only support native integration with PCE version 3.0.0 Starting with Anypoint Studio 7.17, the default JDK version for Studio is Java 17. To ensure proper functionality, add the certificate to the default JDK version that Studio supports. - If you use an external JDK, add the certificate to the external JDK that you use with Studio. - If you use the default JDK Studio provides, add the certificate to the default JDK, regardless of the JDK version you use in your project. After installing the certificate, if you have Studio open, restart it. ## Configure Your PCE Certificates into Studio Follow these steps to integrate your Studio installation with the Anypoint Platform components in a PCE deployment: 1. Extract your CA certificate using OpenSSL: ```bash openssl s_client -connect :443 -showcerts > .pem ``` - Where `` is the domain name of your PCE instance. - And `.pem` is the name that you define for the file to which you exported your certificate. For example: ```bash openssl s_client -connect your.dsm.name.com:443 -showcerts > my-certificate.pem ``` 2. Add your `.pem` file certificate to your Studio embedded Java cacerts keystore: ```bash keytool -importcert \ -keystore \ (1) -storepass \ (2) -alias \ (3) -file .pem (4) ```
1cacerts_path is your Anypoint Studio artifact.
For example:
  • Java 11: AnypointStudio.app/Contents/Eclipse/plugins/org.mule.tooling.jdk.macosx.x86_64_1.1.5/Contents/Home/lib/security/cacerts.

  • Java 8: AnypointStudio.app/Contents/Eclipse/plugins/org.mule.tooling.jdk.v8.macosx.x86_64_1.1.5/Contents/Home/jre/lib/security/cacerts.

2pass is your cacerts keys store password.
Java default cacerts password is changeit.
3alias is the name your certificate gets when you save it in the keystore. For example, my-certificate.
4certificate_name is the path to the .pem file generated and saved in the previous step.
3. Add your certificate to your macOS keystore and set it as always trusted: ```bash security add-trusted-cert -r trustRoot -k "${HOME}/Library/Keychains/login.keychain-db" \ .pem ``` Optionally, you can use the KeyChainAccess UI: 1. On your computer, open your `KeychainAccess.app`. 2. In the left navigation bar, select **System**. 3. Drop the `.pem` file that you generated in the previous task into the list of certificates. 4. Double-click your imported `.pem` file and select **Always Trust** from the **When using this certificate** drop-down menu. ![\*Always Trust\* option highlighted in the drop-down menu.](/mulesoft/current/en-us/studio/_images/always-trust-certificate.png) 4. In Studio, open the preferences view. Navigate to **Anypoint Studio** > **Preferences…​** or press `cmd + ,`. 5. Expand **Anypoint Studio** in the left navigation bar, and select **Anypoint Platform**. ![Anypoint Studio highlighted in the navigation bar.](/mulesoft/current/en-us/reuse/_images/studio-anypoint-platform-settings.png) 6. Select the **Use a Private Cloud Instance URL**. 7. Type the URL of your PCE installation in the **Private Cloud Instance URL** field. ![\*Private Cloud Instance URL\* field highlighted in the in the \*PCE Settings\* section.](/mulesoft/current/en-us/studio/_images/pce-properties.png) 8. Click **Apply and Close**. 9. Restart Studio. ## Configure your PCE User Login The first time you configure your user’s login, Studio asks you to confirm your PCE certificate: 1. Open the preferences view. Either navigate to **Anypoint Studio** > **Preferences…​** or press `cmd + ,`. 2. Expand **Anypoint Studio** in the left navigation bar, select **Authentication** > **Add**. ![\*Authentication\* option and \*Add\* button highlighted in the \*Preference\* window.](/mulesoft/current/en-us/studio/_images/preferences-authentication-add.png) 3. Select **Yes** in the **Invalid Certificate** message that appears. ![\*Yes\* button highlighted in the \*Invalid Certificate\* message window.](/mulesoft/current/en-us/studio/_images/invalid-certificate-pce.png) 4. Add your PCE credentials and sign-in. 5. Select **Apply and Close**. 6. Restart Studio. --- product: Studio --- # Configure Private Cloud Edition in Anypoint Studio (Windows) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio 7.12 and later supports native integration with Anypoint Platform Private Cloud Edition (PCE) versions 3.0.0, 3.0.1, and 3.0.2. On Windows, add your PCE certificate to the JDK that Studio uses. Starting with Anypoint Studio 7.17, the default JDK version for Studio is Java 17. To ensure proper functionality, add the certificate to the default JDK version that Studio supports. - If you use an external JDK, add the certificate to the external JDK that you use with Studio. - If you use the default JDK Studio provides, add the certificate to the default JDK, regardless of the JDK version you use in your project. After installing the certificate, if you have Studio open, restart it. ## Configure Your PCE Certificates Into Studio Follow these steps to integrate your Studio installation with the Anypoint Platform components in a PCE deployment: 1. Open your browser and navigate to your PCE instance URL. 2. Your browser displays a **Your connection is not private** error. 3. Click the **Not secure** section in your URL bar, and select **Certificate**. ![\*Not secure\* section and \*Certificate\* option highlighted in the browser](/mulesoft/current/en-us/studio/_images/get-pce-certificate-windows.png) 4. In the **Certificate** UI, navigate to the **Details** tab and select **Copy to File…​**. ![\*Details\* tab and \*Copy to File\* button highlighted in the \*Certificate\* window](/mulesoft/current/en-us/studio/_images/copy-certificate-windows.png) 5. In the **Certificate Export Wizard** select **Base-64 encoded X.509 (.CER)**, and click **Next**. ![\*Base-64 encoded X.509 (.CER)\* option and \*Next\* button highlighted in the \*Certificate Export Wizard\* window](/mulesoft/current/en-us/studio/_images/base64-certificate-windows.png) 6. Select a destination folder in your computer and click **Finish**. ![Destination folder and \*Next\* button highlighted in the \*Certificate Export Wizard\* window](/mulesoft/current/en-us/studio/_images/export-certificate-windows.png) 7. Navigate to your exported `.cer` file, double-click it, and select **Install Certificate…​**. ![\*Install Certificate…​\* button highlighted in the \*Certificate\* window](/mulesoft/current/en-us/studio/_images/install-certificate-studio.png) 8. In the **Certificate Import Wizard**, select **Place all certificates in the following store** and type **Trusted Root Certification Authorities**. ![\*Place all certificates in the following store\* option and \*Next\* button highlighted in the \*Certificate Export Wizard\* window](/mulesoft/current/en-us/studio/_images/trusted-root-certificate-windows.png) 9. Select **Next** and then **Finish**. 10. Select **Yes** when the security warning asks for confirmation to install the certificate. ![\*Yes\* button highlighted in the \*Security Warning\* window](/mulesoft/current/en-us/studio/_images/install-certificate-security-warning-windows.png) 11. Add your `.cer` file certificate to your Studio embedded Java cacerts keystore: ```none bin\keytool -importcert ^ -keystore [cacerts_path] ^ (1) -storepass [pass] ^ (2) -alias [alias] ^ (3) -file [certificate_name].cer (4) ```
1cacerts_path is your Anypoint Studio artifact.
For example:
  • Java 11: AnypointStudio\plugins\org.mule.tooling.jdk.win32.x86_64_1.1.5\lib\security\cacerts.

  • Java 8: AnypointStudio\plugins\org.mule.tooling.jdk.v8.win32.x86_64_1.1.5\jre\lib\security\cacerts.

2pass is your cacerts keys store password.
Java default cacerts password is changeit.
3alias is the name your certificate gets when you save it in the keystore.
4certificate_name is the path to the .cer file generated and saved in the previous step.
12. In Studio, open the preferences view. Navigate to **Window** > **Preferences…​**. 13. Type the URL of your PCE installation in the **Private Cloud Instance URL** field. ![\*Private Cloud Instance URL\* field highlighted in the \*Preferences\* window](/mulesoft/current/en-us/studio/_images/pce-properties.png) 14. Select **Apply and Close**. 15. Restart Studio. ## Configure your PCE User Login The first time you configure your user’s login, Studio asks you to confirm your PCE certificate: 1. Open the preferences view. Navigate to **Anypoint Studio** > **Preferences…​**. 2. Expand **Anypoint Studio** in the left navigation bar, select **Authentication** > **Add**. ![\*Authentication\* tab and \*Add\* button highlighted in the \*Preferences\* window](/mulesoft/current/en-us/studio/_images/preferences-authentication-add.png) 3. Add your PCE credentials and sign-in. 4. Select **Apply and Close**. --- product: Studio --- # Configure XULRunner as Anypoint Studio Default Layout Engine (Linux) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Set XULRunner as the default layout engine for Anypoint Studio on Linux by pointing the Studio configuration file to your XULRunner binaries. 1. Download `XULRunner` (we recommend [v24.0](http://ftp.mozilla.org/pub/xulrunner/releases/24.0/runtimes/)). 2. Unzip your package and install it. 3. Go to `/usr/lib/anypointstudio/` and open your `AnypointStudio.ini` file. 4. Add a `-Dorg.eclipse.swt.browser.XULRunnerPath=` variable with the full path to your XULRunner binaries: \-Dorg.eclipse.swt.browser.XULRunnerPath={YourXULRunnerFolder} > [!TIP] XULRunner binaries are located in the folder where you extracted the XULRunner package. ## See Also - [Configure XULRunner as Anypoint Studio Default Layout Engine (Windows)](https://docs.mulesoft.com/studio/studio-xulrunner-wx-task) - [Configure XULRunner as Anypoint Studio Default Layout Engine (macOS)](https://docs.mulesoft.com/studio/studio-xulrunner-unx-task) --- product: Studio --- # Configure XULRunner as Anypoint Studio Default Layout Engine (macOS) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Set XULRunner as the default layout engine for Anypoint Studio on macOS by pointing the Studio configuration file to your XULRunner binaries. 1. Download `XULRunner` (we recommend [v24.0](http://ftp.mozilla.org/pub/xulrunner/releases/24.0/runtimes/)). 2. Unzip your package and install it. 3. Go to your `/Applications` folder, right click the AnypointStudio.app package and select `Show Package Contents`. 4. Navigate to `Contents > Eclipse` and open your AnypointStudio.ini file. 5. Add a `-Dorg.eclipse.swt.browser.XULRunnerPath=` variable with the full path to your XULRunner binaries: \-Dorg.eclipse.swt.browser.XULRunnerPath={YourXULRunnerFolder} > [!TIP] XULRunner binaries are located in a subfolder within the directory where you extracted > the XULRunner package: `XUL.framework/Versions/Current/` ## See Also - [Configure XULRunner as Anypoint Studio Default Layout Engine (Windows)](https://docs.mulesoft.com/studio/studio-xulrunner-wx-task) - [Configure XULRunner as Anypoint Studio Default Layout Engine (Linux)](https://docs.mulesoft.com/studio/studio-xulrunner-lnx-task) --- product: Studio --- # Configure XULRunner as Anypoint Studio Default Layout Engine (Windows) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Set XULRunner as the default layout engine for Anypoint Studio on Windows by pointing the Studio configuration file to your XULRunner binaries. You can also disable ActiveX Filtering if web content crashes while rendering. 1. Download `XULRunner` (we recommend [v24.0](http://ftp.mozilla.org/pub/xulrunner/releases/24.0/runtimes/)). 2. Unzip your package and install it. 3. Go to your Anypoint Studio installation directory and open your `AnypointStudio.ini` file. 4. Add a `-Dorg.eclipse.swt.browser.XULRunnerPath=` variable with the full path to your XULRunner binaries: \-Dorg.eclipse.swt.browser.XULRunnerPath={YourXULRunnerFolder} > [!TIP] XULRunner binaries are located in the folder where you extracted the XULRunner package. Additionally, if you are experiencing unexpected crashes when rendering web content, you must disable **ActiveX Filtering**: 1. In Internet Explorer, select the **Tools** button. 2. Select `Internet options`. 3. Go to the `Security` tab, select the **Internet** zone and click on the `Custom level…` button. 4. Navigate to the `ActiveX controls and plug-ins` option and select **Disable** ## See Also - [Configure XULRunner as Anypoint Studio Default Layout Engine (Linux)](https://docs.mulesoft.com/studio/studio-xulrunner-lnx-task) - [Configure XULRunner as Anypoint Studio Default Layout Engine (macOS)](https://docs.mulesoft.com/studio/studio-xulrunner-unx-task) --- product: Studio --- # Connect the Java Debugger in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Studio disconnects the Java debugger by default. Connect it in the Studio preferences if you need to debug Java code in your Mule project. 1. Open the preferences view in the manner appropriate to your OS: - In macOS, either navigate to **Anypoint Studio** > **Preferences…​** or press `cmd + ,`. - In Windows and Linux, navigate to **Window** > **Preferences…​**. 2. Expand **Anypoint Studio** in the left navigation bar, and select **Debugger**, 3. Select **Connect Java Debugger**. ![A window displaying preferences for the Java debugger](/mulesoft/current/en-us/studio/_images/connect-java-debugger.png) 4. Select **Apply and Close**. Note that connecting the Java debugger in Studio can cause performance degradation in your subsequent redeployments. --- product: Studio --- # Create a Metadata Class > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Create a metadata class in the Metadata Editor to define the structure of your data in Anypoint Studio. Depending on the data format, you define the structure from a sample, a schema, or a built-in editor. 1. Click the Add button in your Metadata Editor. ![Add button highlighted in the metadata editor window](/mulesoft/current/en-us/studio/_images/dw-define-type2.png) 2. Type in an ID for the new metadata type and click Create Type. 3. Select a data format using the type dropdown list in your Metadata Editor. If the type of your data is undeclared or not understood, the type default to `application/java`, and a warning is logged. Depending on the selected option, there are different ways to define the data structure. With some formats, the structure can be inferred from an example, others require a schema. For some schemas, a built-in editor UI is available.
FormatSampleSchemaEditor

JSON

Yes

Yes

No

XML

Yes

Yes

No

Java

Yes

Yes

No

CSV

Yes

No

Yes

Fixed Width

Yes

No

Yes

Copybook

Yes

Yes

No

Flat File

No

Yes

No

Simple

No

No

Yes

Excel

No

No

Yes

## See Also - [Metadata Editor](https://docs.mulesoft.com/studio/metadata-editor-concept) --- product: Studio --- # Create a Mule Domain Project and Associate Your Applications > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Create a Mule domain project in Anypoint Studio and associate your Mule applications with it. Applications that use the same domain share its global configurations. ## Create Mule Domains 1. Go to File > New > Mule Domain Project. You can also right click in your Package Explorer view and select New > Mule Domain Project. 2. Set a name for your project. This is also the artifactId of your domain’s POM file. When editing your Mule domain, all related applications in your classpath get updated accordingly. ## Associate a Mule Application to a Mule Domain 1. Right click your Mule application project in your Packager Explorer view. 2. Select Mule and Open Mule Project Properties. 3. Select your domain project from the Domain drop-down menu. > [!TIP] The drop-down menu only displays Mule domain projects in your workspace. > To point to an external domain in a remote M2 repository click Custom…​ and configure your > domain coordinates. Keep in mind that the Mule domains must be either available in your Studio Workspace or installed in the repository declared on your application project. ## Install your Mule Domain in an M2 Repository 1. In a terminal, cd into your domain project’s folder. 2. Type `mvn clean install`. ## See Also - [Add Modules to Your Project](https://docs.mulesoft.com/studio/add-modules-in-studio-to) --- product: Studio --- # Create an API Specification Project in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Studio enables you to create a RAML API specification, an OAS 2.0 or 3.0 API specification, or an API fragment, and automatically sync it with MuleSoft VCS. > [!NOTE] Studio uses the EGit plugin to edit API specifications offline. Studio doesn’t support the > EGit plugin for Mule application projects tracked with your own VCS. To start creating an API specification project in Studio, log in to Anypoint Platform. See [Add Your Anypoint Platform Account to Access Organization Resources](https://docs.mulesoft.com/studio/set-credentials-in-studio-to). 1. In the taskbar of the Anypoint Studio display, select **File** > **New** > **API Specification Project**. 2. Select the tab of type of API specification project to create: - Create a new API specification by selecting the **New API Specification** tab and the type of API. ![The New API Specification tab and file type drop-down menu highlighted in the New API Specification window](/mulesoft/current/en-us/studio/_images/create-api-specification.png) - To create a new API fragment, select the **New API Fragment** tab, and then select the type of API fragment. ![The New API Fragment tab and the type of API fragment highlighted in the New API Specification window](/mulesoft/current/en-us/studio/_images/create-api-fragment.png) 3. Type a name for your project. 4. Select **Finish**. Studio prompts you to switch to the API design perspective. In the API design perspective, use the API editor to write your API specification or API fragment. Additionally, you can use the API Console view to mock a live service so you can test your API specification. Studio uses VCS to track the development of your API specification project and keep it synchronized with MuleSoft VCS. ## Create Branches Using a different branch enables you to use a modified API definition in certain cases, without modifying the main branch in MuleSoft VCS. To create a different branch in Studio: 1. In the Package Explorer view, right-click your API specification project and select **Team** > **Switch To** > **New Branch**. ![New branch highlighted in the context menu](/mulesoft/current/en-us/studio/_images/switch-to-new-branch.png) 2. In the **Create Branch** window, configure your new branch: ![\*Branch name\* field, \*Configure upstream for push and pull\* option, and \*Check out new branch\* option highlighted in the \*Create Branch\* window](/mulesoft/current/en-us/studio/_images/create-new-branch.png)
1In the branch name field, type the name of your new branch.
2You can select the Configure upstream for push and pull option if you want to also pull changes from MuleSoft VCS into your local branch.

When configuring this option, you must select the behavior you want Git to have when it pulls the changes from MuleSoft VCS.

3Select the Check out new branch for Git to switch to this new branch as soon as you create it.
3. Select **Finish**. With a newly created branch, you can start committing your changes. ## Commit Changes to Your API Specification Project The VCS in Studio tracks every change you make to your project and shows them in the **Unstaged Changes** area of your **Git Staging** view. You can track your changes to a file by right-clicking it in the **Unstaged Changes** section and selecting **Compare with index**: ![\*Compare with index\* menu option highlighted in the \*Unstaged Changes\* window.](/mulesoft/current/en-us/studio/_images/compare-with-index.png) After applying your changes, add them to your index: ![\*Add selected files to the index\* and \*Use the Add all files including not selected ones to the index\* icons highlighted in the comparison window.](/mulesoft/current/en-us/studio/_images/compare-to-index-view.png)
1Use the Add selected files to the index icon to stage for commit the files that you selected.
2Use the Add all files including not selected ones to the index icon to stage for commit all unstaged changes.
When you staged the changes that you want to commit, write a commit message in the **Commit Message** section: ![\*Commit Message\* section highlighted.](/mulesoft/current/en-us/studio/_images/add-commit-message.png)
1Select Commit and Push to also push the change to MuleSoft VCS.

See Push Your Branch to MuleSoft VCS below for more information.

2Select Commit to add the commit to your local copy.
See [Git Staging View Reference](https://docs.mulesoft.com/studio/git-staging-view-reference) for more information about this view. ## Merge and Push Your API Specification Project Merge the changes made to your API specification to your main branch and sync it with MuleSoft VCS. 1. In the Package Explorer view, right-click your API specification project and select **Team** > **Merge** > **Push Branch**. ![\*Merge\* option highlighted in the context menu.](/mulesoft/current/en-us/studio/_images/merge-menu.png) 2. Select the local branch to which you want to merge your changes: ![Local branch highlighted in the \*Merge\* window.](/mulesoft/current/en-us/studio/_images/merge-view.png) 3. Select **Merge**. ## Push Your Branch to MuleSoft VCS You can choose to publish your local branch to MuleSoft VCS after you committed all your changes to your local branch: 1. In the Package Explorer view, right-click your API specification project and select **Team** > **Switch To** > **Push Branch**. ![\*Push branch\* option highlighted in the Mule project context menu.](/mulesoft/current/en-us/studio/_images/push-branch.png) 2. Verify the changes that you are pushing to MuleSoft VCS. ![\*Push Branch\* window options highlighted.](/mulesoft/current/en-us/studio/_images/push-branch-view.png)
1The Source section shows the changes that you are pushing to MuleSoft VCS.
2The Remote section shows the coordinates to the remote you are pushing to.
3The Branch section shows the local branch that you are pushing.
4You can select the Configure upstream for push and pull option if you want to also pull changes from MuleSoft VCS into your local branch.
When configuring this option, you must select the behavior you want Git to have when it pulls the changes from MuleSoft VCS.
5Select the Force overwrite branch in remote if it exists and has diverged only if you know that your local changes must overwrite the changes in MuleSoft VCS.
This option force pushes your changes to the branch in MuleSoft VCS.
3. Select **Preview** to see a summary of the changes you are pushing. 4. Select **Push** In certain scenarios, someone else might have modified the version in MuleSoft VCS while you modified the same version locally. This triggers conflicts in Git. See [Solve Conflicts](https://docs.mulesoft.com/studio/solving-conflicts-api-projects) for more information. ## See Also - [Import an API Specification from Exchange](https://docs.mulesoft.com/studio/import-api-specification-exchange) --- product: Studio keywords: anypoint studio, datasense, metadata, meta data, query metadata, dsql, data sense query language --- # DataSense: Discover Message Metadata as You Design Applications > For the full documentation index, see: https://docs.mulesoft.com/llms.txt DataSense is a feature of Anypoint Studio that uses Mule event metadata to help you design applications. Rather than forcing you to manually discover this metadata, Anypoint Studio automatically acquires it so that you can map or use this data in your application. ## Understand How DataSense Uses Mule Event Metadata You must understand how your components use metadata in a flow to ensure data reliability in your Mule application. This understanding enables you to detect errors early during project design. Additionally, it helps you identify when a component needs metadata that isn’t exposed to it within its scope, thus promoting data reusability. ## Use Datasense to Map Data Consider a flow in which you include an Anypoint Connector preceded or followed by a Transform Message component. The Mule runtime engine uses the working connection to the resource to retrieve and supply DataWeave metadata about the payload and properties. This feature saves you the effort of manually inspecting Mule event structure. For example, imagine that you must connect your organization’s Salesforce account to Slack to notify your team about a new opportunity. To do this, you can drop both Salesforce and Slack connectors on your Studio canvas and configure them to connect to your organization’s accounts. Then, you can drop a Transform Message component between the connectors. Mule automatically captures the data type and structure information from each provider and prescribes the input and output for your data mapping. With this prescription in place, you can configure the mapping, populating the DataWeave code. ![A diagram depicting a workflow for transforming an object into JSON](/mulesoft/current/en-us/studio/_images/datasense-perceptive-flow-design-concept-cf42d.png) ## Use Datasense for Autocomplete Imagine that you’re obtaining status update data from the Slack connector. You want to log the message you’re sending to Slack, but you aren’t familiar with the property names used by this connector. Instead of referring to Slack documentation, you can insert a Logger message processor after the Slack connector and begin to type in it, which activates autocomplete. For example, if you type `#[payload.` and press `Ctrl+Spacebar`, you get a list of all the properties and methods associated with that payload. In the list, you also get the properties returned by your request to the Slack connector. ![The DataSense autocomplete feature highlighted in the payload](/mulesoft/current/en-us/studio/_images/payload-autocomplete.png) ## When to Manually Define Metadata You can manually define the metadata that all the components of a Mule application expose. You must do this if required (for example, for a metadata type that you defined). Or you must define metadata manually if it’s most cohesive to an annotated value (for example, when a component uses or expects a specific metadata type). When working with flows and subflows, you must declare their metadata contract to specify the shape of the event you require and the shape of the event you return to the caller. On the contrary, do not define metadata when using the Transform Message component because DataWeave defines the contract between the producer and the consumer of data. In this situation, if you explicitly declare a metadata type, you mask the actual metadata type of the data coming from your Transform Message component. ## See Also - [DataSense Explorer](https://docs.mulesoft.com/studio/datasense-explorer) --- product: Studio --- # Debug Mule Applications with the Anypoint Studio Debugger > For the full documentation index, see: https://docs.mulesoft.com/llms.txt With Anypoint Studio debugger, you can run your application from Studio in debug mode and configure breakpoints to stop application execution at a specific message processor. In the **Mule Debugger** view, inspect the content of the message as it exists at that point in the flow and evaluate a DataWeave expression against it. The debugger works with Enterprise Edition runtimes and doesn’t connect to Mule Kernel runtimes. When you run your application in debug mode for the first time, Anypoint Studio prompts you to load the **Mule debug** perspective. The **Mule debug** perspective is a list of views that help you debug your application: - **Mule Debugger** - **Evaluate DataWeave Expressions** - **Mule Breakpoints** ## Debug Your Project in Studio To debug your application in Studio: 1. Right-click your project in **Package Explorer**. 2. Select **Debug As** > **Mule Application**. Studio requests permission to switch to the **Mule debug** perspective. 3. Click **Yes**. Alternatively, run your application in debug mode by right-clicking in the canvas and selecting **Debug Project**, or by clicking ![A bug icon](/mulesoft/current/en-us/studio/_images/to-run-debug-mode-e7b7b.png) (**Debug**) on the toolbar. ## Configure Studio Debugger Enable precise control over application debugging by setting the debugger connections and maximum values. To modify the default configuration values, click **Run** > **Debug configurations** and select the **Debug** tab.
OptionDescriptionDefault Value

Connection Properties

Configure the Studio debugger to listen for incoming TCP connections. Click Suspend to pause debugger listening activities.

  • TCP connections: localhost

  • Port: 6666

Debugger Maximum Consumption Stream Properties

Control the maximum amount of data the debugger can consume from a stream when inspecting or debugging applications.

2 MB

Debugger Maximum Payload Collection Size

Determine the maximum size of the payload data that the debugger collects and displays during a debugging session. Manage the memory usage of the debugger to ensure it doesn’t consume excessive system resources to avoid performance degradation or crashes, especially when dealing with large data payloads.

100 bytes

## See Also - [Mule Debugger View Reference](https://docs.mulesoft.com/studio/mule-debugger-view-reference) --- product: Studio --- # Define Input and Output Structure of a Transformation > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Define the input and output structure of a transformation so that the Transform Message component knows which fields are available when you construct mappings by drag and drop in the graphical view. If you plan to create your transformation entirely by writing DataWeave code, you can skip defining input and output and reference elements directly. ## Define Data Structure on Other Components 1. Make sure that all other elements in the flow are fully configured. When input and output of a component can be predicted based on its configuration, these are exposed to the rest of the flow. For example, when a Salesforce connector is configured to carry out a specific operation, its output structure is known and exposed. 2. If input or output of certain components can’t be predicted, manually define the output and input of key components via their Metadata Tab. For example, an HTTP listener might receive requests containing any payload. ## Define Data Structure in Transform Message Component 1. Right click on the root of the input or the output tree, then select Set Metadata. 2. Manually define the data structure. ## Define Data Structure Via XML See [DataWeave XML Reference](https://docs.mulesoft.com/mule-runtime/latest/transform-dataweave-xml-reference). ## Reader Configuration In case your input needs to be parsed in a special way, you can set up certain properties for the reader object. Each input format has different configurable properties, or none. There are two ways to set these listed below. - Configure other components on the flow, by accessing their corresponding Metadata tab. - On the Transform Message component, right click on the root of the input pane and select **Reader Configuration** ![A menu with a button labeled Reader Configuration](/mulesoft/current/en-us/studio/_images/dw-reader-configuration-select.png) > [!NOTE] This option only exists if the selected data type format allows for configurable reader > properties. If the payload is of type `unknown`, you must change its type first. For a detailed reference of what properties can be set in the Reader Configuration of each format, see the corresponding **reader properties** section: - [CSV](https://docs.mulesoft.com/dataweave/latest/dataweave-formats#csv) - [XML](https://docs.mulesoft.com/dataweave/latest/dataweave-formats#xml) - [Flat File](https://docs.mulesoft.com/dataweave/latest/dataweave-formats#flat-file) > [!NOTE] You can also add this information through properties in the XML source of your Mule > project. ## Writer Configuration In case your output needs to be constructed in a special way, you can set up certain properties of the writer object. Each output format has different configurable properties, or none. These properties must be written on the `%output` directive of your DataWeave code. For a detailed reference of what properties can be set in the Writer Configuration of each format, see the corresponding **reader properties** section: - [CSV](https://docs.mulesoft.com/dataweave/latest/dataweave-formats#csv) - [XML](https://docs.mulesoft.com/dataweave/latest/dataweave-formats#xml) - [JSON](https://docs.mulesoft.com/dataweave/latest/dataweave-formats#json) - [Flat File](https://docs.mulesoft.com/dataweave/latest/dataweave-formats#flat-file) ## See Also - [Workflow: Create a Mapping](https://docs.mulesoft.com/studio/workflow-create-mapping-ui-studio) - [Transform Message Component](https://docs.mulesoft.com/studio/transform-message-component-concept-studio) - [DataWeave Language](https://docs.mulesoft.com/mule-runtime/latest/dataweave) - [DataWeave Types](https://docs.mulesoft.com/dataweave/latest/dataweave-types) - [DataWeave Formats](https://docs.mulesoft.com/dataweave/latest/dataweave-formats) - [DataWeave XML reference](https://docs.mulesoft.com/mule-runtime/latest/transform-dataweave-xml-reference) --- product: Studio --- # Define Metadata for Components with the Metadata Editor > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The Anypoint Studio metadata editor lets you define metadata for components that don’t expose it automatically, either manually, through an example, or through a schema. Several elements in your Mule flow automatically expose metadata about the expected input and output. This metadata is handled by DataSense and exposed during design time on every component of your flows, helping you debug your application and know if the expected data structure differs from what’s truly being sent. It also provides smart autocomplete options. To use the drag and drop UI of the Transform Message Component, you must define its input and output metadata. All metadata classes that you defined in the current Mule project are displayed in the Metadata Editor for you to select one if appropriate: ![A form for selecting a metadata type, with options to add, delete, and filter user-defined types](/mulesoft/current/en-us/studio/_images/dw-define-type1.png) When defining the structure through the editor, you’re implicitly creating a schema for that type. These schemas are stored in your project’s `src/main/resources` folder, and you can open these and edit them freely on Anypoint Studio. After you create a new type, you can associate any new metadata you create with this new type to avoid having to define it again. ## See Also - [To Access the Metadata Editor](https://docs.mulesoft.com/studio/access-metadata-editor-task) - [To Create Metadata Class](https://docs.mulesoft.com/studio/create-metadata-class-task) --- product: Studio --- # Deploy a Mule Application to CloudHub > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Deploy your Mule application from Anypoint Studio to CloudHub, and redeploy it after you update the code. Before you deploy, make sure that your application meets the CloudHub requirements. ## Before You Begin To successfully deploy your Mule application to CloudHub, consider the following requirements: - The host and port number of your HTTP Listener flow sources are properly configured. If you’re using the HTTP Listener as sources for your flow, you must set its host to **0.0.0.0** and its port to **${http.port}**. CloudHub then dynamically allocates a port at deployment time. - All your external classes and resources are properly declared in the `mule-artifact.json` file of your Mule application. Due to Mule 4.x classloading isolation mechanism, all external classes and resources must be explicitly declared in the "exportedPackages" and "exportedResources" fields on the mule-artifact.json file before packaging and deploying the application. See the [How to Export Resources](https://docs.mulesoft.com/mule-runtime/latest/how-to-export-resources) task to learn more about working with external resources in your Mule application. - The Java version selected in your project must match the Java version of CloudHub to avoid deployment fails. ## Deploy to CloudHub 1. Right click the project folder on your Package Explorer View. 2. Select Anypoint Platform and then Deploy to CloudHub. If you don’t have your Anypoint Platform credentials configured in Anypoint Studio, you must provide your log in information before continuing. 3. Configure the CloudHub instance to which your application is being deployed. Anypoint Studio uses your package name as the name for your application on CloudHub. This name is part of the domain of your deployed application. For example, naming your application "deployment-1" makes your application public domain "deployment-1.cloudhub.io." You can also configure the runtime version. By default, Studio uses the application version you’re using in your project during development. To reduce compatibility risks, you must deploy to the runtime version used to create your Mule project or the closest alternative. Additionally you can configure the amount of worker and worker size for the CloudHub instance you’re going to use, enable Insight, static IPs, configure log levels, and properties placeholders for your application. ## Redeploy to CloudHub After you deploy your application from Anypoint Studio for the first time, you can keep modifying the application code and repeat the steps 1 and 2 to redeploy your updated application. When you get to the CloudHub instance configuration window, the "Overwrite Existing Application" option would already be selected for you. This allows you to redeploy the application. > [!NOTE] Learn more about > [alternative ways to deploy your Mule application to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub). ## See Also - [Configure Anypoint Platform Credentials](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) --- product: Studio --- # Design, Publish, and Implement API Specifications in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Design, publish, and implement API specifications so your Mule applications always refer to a single source of truth. Studio works with Design Center, Exchange, and Maven to support this workflow for AsyncAPI, OAS, and RAML specifications. Use this workflow: 1. Design an API specification. You can either create and publish an API specification with the [Visual Editor](https://docs.mulesoft.com/design-center/design-create-publish-api-visual-editor) or with the [Text Editor](https://docs.mulesoft.com/design-center/design-create-publish-api-raml-editor). You can also [create an API specification project in Studio and sync it with MuleSoft VCS](https://docs.mulesoft.com/studio/create-api-specification-studio). 2. Publish your API specification to Exchange. Make your newly designed API available to your entire organization as an Exchange dependency. As you change your API, you can publish new versions of your API specifications to Exchange. See [best practices for API versioning](https://docs.mulesoft.com/exchange/to-change-raml-version#best-practices-api-versioning). 3. Import and implement the API specification from Exchange to Studio. You can either import and implement an API specification from [Exchange](https://docs.mulesoft.com/studio/import-api-specification-exchange) or from [Maven](https://docs.mulesoft.com/studio/import-api-specification-maven). Studio imports your API specification as a dependency. This means that your Mule application project now references the specific API version that you’re implementing. Studio checks your API and notifies you when there’s a new version available. This workflow applies to AsyncAPI, OAS, and RAML API specifications. AsyncAPI specifications require Studio 7.18.0 or later, and Mule runtime engine 4.5.0 or later. OAS and RAML API specifications require Studio 7.8.x or later, and Mule runtime engine 4.1.4 or later. With Studio 7.18 and later, you can [import an AsyncAPI specification from Exchange](https://docs.mulesoft.com/studio/import-api-specification-exchange) and implement it in your Mule project. ## API Specifications as Exchange Dependencies Manage APIs for your Mule application the same way you manage the modules that compose your application. By leveraging Exchange as your unified repository for all your Mule application dependencies, you can check the latest versions of your dependencies, ensuring that your application is up-to-date with the latest API requirements. Because the implementation of your API can change with each iteration, you must keep track so that you can update your Mule application to match newer specifications. To help you track these changes, treat your API specifications as dependencies of your project. This way, every time the specification design changes, the API publishes a new API version that you can manage from Studio. You can also update your application to match the new API version. Each API version that you import from Exchange is stored as a reference to the API version dependency in Exchange, rather than as a local copy in your project’s structure. By referencing the API version in Exchange, Studio can periodically check the status of the version and notify you when a new version is available. ### Scaffold AsyncAPI, RAML, and OAS API Specifications Design your API using AsyncAPI, OAS, or RAML specifications in Anypoint Design Center: - [Create an API Specification with the Visual API Editor](https://docs.mulesoft.com/design-center/design-create-publish-api-visual-editor) - [Create an API Specification with the Text Editor](https://docs.mulesoft.com/design-center/design-create-publish-api-raml-editor) > [!NOTE] You can design an AsyncAPI API in Design Center with the > [Text Editor](https://docs.mulesoft.com/design-center/design-create-publish-api-raml-editor). When you import these specifications as dependencies of your flows, you can automatically generate (scaffold) the flows in your canvas based on the endpoints described in the API specification. Studio leverages APIkit to scaffold the flow and make it easier for you to start developing a Mule application from an API specification. > [!NOTE] Studio doesn’t currently support scaffolding API specs that reference OAS, JSON schema, or > AsyncAPI fragments imported from Exchange as project dependencies. To scaffold a spec with these > fragments, you must provide the fragments inline within the spec or through fragment files that > you create manually within your project directory. This limitation doesn’t affect RAML fragments > from Exchange, which are fully supported. ## API Specifications as Local Copies in Your Projects Import a RAML API specification either [from your hard drive](https://docs.mulesoft.com/studio/import-api-specification-local-file) or [directly from MuleSoft VCS](https://docs.mulesoft.com/studio/import-api-specification-design-center) into the `/src/main/api/` directory in the structure of your project. This process creates a local copy of the API in your project’s structure. The imported API works as a standalone attachment to your project, meaning that every additional upgrade requires a manual import. When the API imported as a local copy into your project’s structure is updated outside your Studio environment, reimport the API into your project. Studio regenerates all the flows based on the updated specification. > [!NOTE] Duplicated copies of your specifications can be created on your local drive. You can only > keep RAML API specifications as local copies within your project’s structure. ## API Specifications as API Specification Projects in Studio To start an API specification project in Studio and sync it with MuleSoft VCS, see [Create an API Specification Project in Anypoint Studio](https://docs.mulesoft.com/studio/create-api-specification-studio). Studio uses version control system (VCS) capabilities to keep your API specifications synchronized between your Studio workspace and MuleSoft VCS. Import an API specification from MuleSoft VCS as an API specification project with VCS-enabled capabilities to edit your API specification using Studio and sync your changes with MuleSoft VCS: 1. Design an API specification in Design Center. You can either create and publish an API specification with the [Visual Editor](https://docs.mulesoft.com/design-center/design-create-publish-api-visual-editor) or with the [Text Editor](https://docs.mulesoft.com/design-center/design-create-publish-api-raml-editor). 2. Import the API specification from Anypoint Platform through MuleSoft VCS into Studio. You can import the API specification as an editable asset by [Synchronizing an API Specifications with MuleSoft VCS](https://docs.mulesoft.com/studio/sync-api-projects-design-center). You can also edit an API specification that you imported as an API dependency in your project: 1. Import the API specification [from Exchange to Studio](https://docs.mulesoft.com/studio/import-api-specification-exchange). Studio imports your API specification as a dependency. This means that your Mule application project now references the specific API version that you’re implementing. Studio monitors your API and notifies you when there’s a new version available. 2. Select the API specification imported in your project and [Edit your API specification from Studio](https://docs.mulesoft.com/studio/sync-imported-api-specifications-design-center) to later sync your changes to MuleSoft VCS. > [!NOTE] Studio uses the EGit plugin to edit API specifications offline. Studio doesn’t support the > EGit plugin for Mule application projects tracked with your own VCS. ## See Also - [Create an API Specification Project in Anypoint Studio](https://docs.mulesoft.com/studio/create-api-specification-studio) - [Import and Implement an API Specification](https://docs.mulesoft.com/studio/import-api-specification) - [Track the Number of Billable Flows in Anypoint Studio](https://docs.mulesoft.com/studio/flow-counting-studio) - [Test Your API Specification Using the API Console](https://docs.mulesoft.com/studio/test-specification-api-console) --- product: Studio --- # Download and Install Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Download and install Anypoint Studio 7.x, the MuleSoft IDE for designing, building, and testing Mule applications, on Windows, macOS, or Linux. You can download two versions of Anypoint Studio 7.x:
StudioVersionRelease NotesMule Runtime SupportJava Support

7.28.x

Latest

4.10 and later

17

7.20.x

Previous

4.6

8, 11, and 17

To download and install Anypoint Studio, follow the instructions based on your operating system: - [Windows](https://docs.mulesoft.com/studio/to-download-and-install-studio-wx) - [macOS](https://docs.mulesoft.com/studio/to-download-and-install-studio-ox) - [Linux](https://docs.mulesoft.com/studio/to-download-and-install-studio-lx) > [!NOTE] Anypoint Studio 6.x reached End of Life. ## See Also - [Salesforce Versioning and Back Support Policy](https://www.salesforce.com/en-us/wp-content/uploads/sites/4/documents/legal/Agreements/versioning-back-support-policy.pdf) --- product: Studio --- # Download and Install Anypoint Studio (Linux) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Download Anypoint Studio and install it on Linux by extracting the archive file and running Studio in a new or existing workspace. ## Before You Begin Installing Anypoint Studio - To support the Studio Theme on Linux, you must have the GTK version 3 installed. - Download the Studio installation file from the [Download Site](https://www.mulesoft.com/lp/dl/anypoint-mule-studio). ## Installation 1. Open the extracted Anypoint Studio. 2. Choose a directory for extraction. You can choose a directory under your home directory, such as `~/anypoint-studio`. 3. Open a terminal window. 4. Navigate to the download directory. 5. Use the `tar` command to extract the contents of the archive file. For example, if the file name is **anypoint-studio-7.21.0.tar.gz**, run: \`tar -xvzf anypoint-studio-7.21.0.tar.gz -C ~/anypoint-studio\` This command extracts the contents of the archive to the `~/anypoint-studio` directory. 6. Go to the extracted directory. 7. Run Studio. 8. Click **OK** to accept the default workspace. ## Workspaces Considerations - You must use an absolute path when defining your workspace because Studio doesn’t expand the `~` tilde used in Unix and Linux systems. - If you choose to use an existing workspace, the workspace must be created with Studio 7.0 or later. --- product: Studio --- # Download and Install Anypoint Studio (macOS) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Download Anypoint Studio and install it on macOS by moving the extracted package to your Applications directory and opening it in a new or existing workspace. 1. Download the Anypoint Studio installation file from the [Download Site](https://www.mulesoft.com/lp/dl/anypoint-mule-studio). 2. Extract the Anypoint Studio package and move it to your `/Applications` directory. 3. Open the extracted Anypoint Studio. 1. It is possible that Gatekeeper flags Studio as an unsafe application: ![You may see an error message that says Apple can’t check the file for malicious software and it won’t open](/mulesoft/current/en-us/studio/_images/studio-blocked-gatekeeper.png) 2. To open Studio, navigate to **System Preferences** > **Security and Privacy** and in the **General** tab select **Open Anyway**: ![An ](/mulesoft/current/en-us/studio/_images/open-anyway-gatekeeper.png) 4. Click OK to accept the default workspace. - You must Use an absolute path when defining your workspace because Anypoint Studio does not expand the `~` tilde used in Unix and Linux systems. - If you choose to use an existing workspace, the workspace must be created with Studio 7.0 or later. --- product: Studio --- # Download and Install Anypoint Studio (Windows) > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Download Anypoint Studio and install it on Windows by extracting the installation file to the `C:\` root folder and opening Studio in a new or existing workspace. You can also exclude Studio from Windows Defender scans to improve performance. 1. Download the Anypoint Studio installation file from the [Download Site](https://www.mulesoft.com/lp/dl/anypoint-mule-studio). 2. Extract the Windows installation file into the `C:\` root folder. > [!NOTE] To avoid installation errors: > > - Anypoint Studio is distributed as a compressed installation file and does not include a > separate Windows installer. Extract the file to install Studio. > > - Ensure that you extract the installation file into the `C:\` folder so that the > `AnypointStudio.exe` file is located in the `C:\AnypointStudio\` folder after installation. > > - Ensure that the extraction path is short and does not contain spaces. Do not extract Studio > to `C:\Program Files` or to the `Downloads` folder. > > - Windows limits many file paths to 260 characters. Studio stores plugins in deeply nested > folders, so a long extraction path can leave the installation incomplete. > > - Ensure that your user has read and write permissions for the `C:\` directory. > > - If you use a Windows antivirus application, ensure that the `plugins/` and `features/` > directories are in the **trusted** category. 3. Open the extracted Anypoint Studio. When Studio first runs, the embedded OpenJDK Platform libraries might cause a Windows Security alert. Ensure to allow the OpenJDK Platform library from Temurin publisher through your Windows firewall. 4. Click **OK** to accept the default workspace. - If you choose to use an existing workspace, the workspace must be created with Studio 7.0 or later. ## Exclude Studio from Windows Defender Scans While Windows Defender is a tool for keeping your computer safe, it can slow down the performance of Studio because it scans files in real-time as they are accessed, which causes delays. To prevent performance issues, you can completely exclude Studio from Windows Defender real-time protection: 1. Run Studio. A Windows Defender real-time protection notice asks whether to exclude Studio folders and processes: ![“A Windows Defender real-time protection popup asks whether to exclude Studio folders and processes.](/mulesoft/current/en-us/studio/_images/windows-defender-exclusions.png) - The `/.p2` folder stores Studio plugins. - The second folder shows the path of the workspace that you select when launching Studio. - The third folder points to the Anypoint Studio application location. 2. Optionally, select the **Remember my decision** checkbox. 3. Click **Yes**. 4. Click **Yes** again when Windows PowerShell requests permission to make the change: ![“Windows Powershell popup requests that you confirm the change”](/mulesoft/current/en-us/studio/_images/windows-powershell-access-request.png) > [!NOTE] If you select the **Remember my decision** checkbox and click **No**, Windows Defender > real-time protection scans Studio folders and processes as you work with them. --- product: Studio --- # Edit an Imported API Specification and Publish the Changes > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Edit an API specification that you imported as a dependency by opening it as an API specification project in Studio. Then synchronize your changes with MuleSoft VCS and publish the new version to Exchange. Before you begin, ensure that you have the necessary permissions to edit the API specification, and that you don’t already have an API specification project for that API specification in your Studio workspace. 1. In the Package Explorer view, right-click the API dependency of your API specification project, select the name of the API you want to edit, and select **Import API Spec from MuleSoft VCS**. ![\*Edit API specification\* option highlighted in the dependency context menu.](/mulesoft/current/en-us/studio/_images/edit-api-spec.png) By default, Studio pulls the `main` branch in MuleSoft VCS. If the API version that you imported from Exchange belongs to a different branch in MuleSoft VCS, you must switch to that branch before continuing. 2. Apply the changes to your API specification. 3. Synchronize your changes with MuleSoft VCS before publishing to Exchange. Refer to [Commit Changes to Your API Specification Project](https://docs.mulesoft.com/studio/sync-api-projects-design-center#commit-to-branch) for more information. 4. In the Package Explorer view, right-click your API specification project and select **Publish to Exchange**. 5. Update the asset and API version: ![A window showing an API diagram, project files, and a menu with options including ](/mulesoft/current/en-us/studio/_images/update-asset-version.png) 6. Click **Finish**. 7. In the Package Explorer view, right-click the Mule project where you imported the API specification that edited, and select **API Specs** > the name of your API > **Update Version**. !["A window displaying the API Specs section](/mulesoft/current/en-us/studio/_images/update-version-api-dc.png) 8. Select the new version of your API specification and select **Apply and Close**. Studio updates the API specification to the selected version and asks you if you want to regenerate the flow based on the new version. To manually generate a flow for the updated API, right-click the Mule project where you updated the API specification, and select **API Specs** > the name of your API > **Generate Flows**. --- product: Studio --- # Edit API Specifications Offline and Sync Them with MuleSoft VCS > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Import a RAML, OAS 2.0, or OAS 3.0 API specification from MuleSoft VCS into an API specification project in Anypoint Studio to edit it offline. Then stage and push your changes as you would with any version control system (VCS). This feature only works when importing an API from MuleSoft as shown in the following process. To import an API specification to write a Mule application implementation see [Import and Implement an API Specification from MuleSoft VCS](https://docs.mulesoft.com/studio/import-api-specification-design-center). Your API specification project must have a different name than any other project in your workspace. > [!NOTE] Studio uses the EGit plugin only for the VCS feature of editing API specifications > offline. Studio does not support the EGit plugin for Mule application projects that you might > track using your own VCS. ## Import an API Specification From MuleSoft VCS To Edit Locally 1. Ensure that no other project in your workspace has the same name as the API project you want to import. 2. In the taskbar at the top of the Anypoint Studio display, select **File** > **Import**. 3. Select **Anypoint Studio** > **API Specification from MuleSoft VCS**. 4. In the **Import From MuleSoft VCS** window, select your Anypoint Platform username and the Anypoint Platform business group where the API specification is located. ![A window with fields for importing an API from MuleSoft VCS, including a list of available APIs](/mulesoft/current/en-us/studio/_images/username-and-bg-studio.png) If you are not logged in, click the **Add Account** button to add your Anypoint Platform account. If you have not configured your Anypoint Platform credentials, the username and business group options are unavailable. If you want to use a different account, click the **Add Account** button and log in again. 5. From the list of available APIs, select the one you want. 6. Click **Finish**. Studio imports the API specification as an API specification project so that you can work on your API specification project offline. ## Create Branches You can create your own branch based on the branch you pulled from MuleSoft VCS. Using a different branch allows you to modify the API definition without risking pushing those changes to the main branch in MuleSoft VCS. To create a different branch in Studio: 1. In the Package Explorer view, right-click your API specification project and select **Team** > **Switch To** > **New Branch**. ![New branch highlighted in the context menu](/mulesoft/current/en-us/studio/_images/switch-to-new-branch.png) 2. In the **Create Branch** window, configure your new branch: ![\*Branch name\* field, \*Configure upstream for push and pull\* option, and \*Check out new branch\* option highlighted in the \*Create Branch\* window](/mulesoft/current/en-us/studio/_images/create-new-branch.png)
1In the branch name field, type the name of your new branch.
2You can select the Configure upstream for push and pull option if you want to also pull changes from MuleSoft VCS into your local branch.

When configuring this option, you must select the behavior you want Git to have when it pulls the changes from MuleSoft VCS.

3Select the Check out new branch for Git to switch to this new branch as soon as you create it.
3. Select **Finish**. With a newly created branch, you can start committing your changes. ## Commit Changes to Your API Specification Project The VCS in Studio tracks every change you make to your project and shows them in the **Unstaged Changes** area of your **Git Staging** view. You can track your changes to a file by right-clicking it in the **Unstaged Changes** section and selecting **Compare with index**: ![\*Compare with index\* menu option highlighted in the \*Unstaged Changes\* window.](/mulesoft/current/en-us/studio/_images/compare-with-index.png) After applying your changes, add them to your index: ![\*Add selected files to the index\* and \*Use the Add all files including not selected ones to the index\* icons highlighted in the comparison window.](/mulesoft/current/en-us/studio/_images/compare-to-index-view.png)
1Use the Add selected files to the index icon to stage for commit the files that you selected.
2Use the Add all files including not selected ones to the index icon to stage for commit all unstaged changes.
When you staged the changes that you want to commit, write a commit message in the **Commit Message** section: ![\*Commit Message\* section highlighted.](/mulesoft/current/en-us/studio/_images/add-commit-message.png)
1Select Commit and Push to also push the change to MuleSoft VCS.

See Push Your Branch to MuleSoft VCS below for more information.

2Select Commit to add the commit to your local copy.
See [Git Staging View Reference](https://docs.mulesoft.com/studio/git-staging-view-reference) for more information about this view. ## Merge Your Changes into the Main Branch You can merge the changes made in your local branch to the main branch to push to MuleSoft VCS: 1. In the Package Explorer view, right-click your API specification project and select **Team** > **Merge** > **Push Branch**. ![\*Merge\* option highlighted in the context menu.](/mulesoft/current/en-us/studio/_images/merge-menu.png) 2. Select the local branch to which you want to merge your changes: ![Local branch highlighted in the \*Merge\* window.](/mulesoft/current/en-us/studio/_images/merge-view.png) 3. Select **Merge**. ## Push Your Branch to MuleSoft VCS You can choose to publish your local branch to MuleSoft VCS after you committed all your changes to your local branch: 1. In the Package Explorer view, right-click your API specification project and select **Team** > **Switch To** > **Push Branch**. ![\*Push branch\* option highlighted in the Mule project context menu.](/mulesoft/current/en-us/studio/_images/push-branch.png) 2. Verify the changes that you are pushing to MuleSoft VCS. ![\*Push Branch\* window options highlighted.](/mulesoft/current/en-us/studio/_images/push-branch-view.png)
1The Source section shows the changes that you are pushing to MuleSoft VCS.
2The Remote section shows the coordinates to the remote you are pushing to.
3The Branch section shows the local branch that you are pushing.
4You can select the Configure upstream for push and pull option if you want to also pull changes from MuleSoft VCS into your local branch.
When configuring this option, you must select the behavior you want Git to have when it pulls the changes from MuleSoft VCS.
5Select the Force overwrite branch in remote if it exists and has diverged only if you know that your local changes must overwrite the changes in MuleSoft VCS.
This option force pushes your changes to the branch in MuleSoft VCS.
3. Select **Preview** to see a summary of the changes you are pushing. 4. Select **Push** In certain scenarios, someone else might have modified the version in MuleSoft VCS while you modified the same version locally. This triggers conflicts in Git. See [Solve Conflicts](https://docs.mulesoft.com/studio/solving-conflicts-api-projects) for more information. ## See Also - [OpenAPI Specification 3.0 Support Release Notes](https://docs.mulesoft.com/release-notes/platform/oas3) --- product: Studio --- # Edit Your API Asset Metadata for Exchange > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio enables you to edit the `exchange.json` file of your API specification project. The `exchange.json` file contains metadata required by Anypoint Exchange to describe your API asset. To edit your `exchange.json` file: 1. Select it from your API specification project in your Project Explorer view: ![An arrow points to the flight-api.raml file in a package explorer](/mulesoft/current/en-us/studio/_images/exchange-json-package-explorer.png) 2. Use the editor to update the values of your `exchange.json` file: ![A form with fields to edit exchange.json file information, including name, main file, artifact ID, group ID, asset version, and API version](/mulesoft/current/en-us/studio/_images/exchange-json-studio-editor.png)
1You cannot edit the first item, Name, because this is the artifact name of your API specification asset.
2Use the second item, Main file, to choose the main file of your API specification asset.
3You cannot edit the third item, Artifact ID, because this is the artifact ID of your API specification asset.
4You cannot edit the fourth item, Group ID, because this is the group ID of your API specification asset.
5Use the fifth item, Asset Version, to update your API specification asset version.
6Use the sixth item, API Version, to update the API version of your API specification asset.
7Use the green plus icon to add a new dependency to your API specification asset.
Additionally, you can edit the XML of your `exchange.json` file by selecting the editor’s **exchange.json** tab: ![A code window displaying a JSON file labeled exchange.json](/mulesoft/current/en-us/studio/_images/exchange-json-editor.png) ## See Also - [Edit API Specifications Offline and Sync Them with MuleSoft VCS](https://docs.mulesoft.com/studio/sync-api-projects-design-center) - [Update an Imported API Specification to the Latest Version](https://docs.mulesoft.com/studio/sync-update-api-spec) - [Publish an API Project to Exchange](https://docs.mulesoft.com/studio/publish-api-project-to-exchange) --- product: Studio --- # Evaluate DataWeave Expression View Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The Studio debugger enables you to watch for selected DataWeave expressions in all active breakpoints. If the expression occurs at any of the active breakpoints, the debugger evaluates the expression, then displays the result in the **Mule Debugger** view. ![A window with numbered steps that guide you through evaluating a DataWeave expression, clearing an expression, and adding expressions to watch](/mulesoft/current/en-us/studio/_images/expression-view-reference.png)
1Expression field
Specify the DataWeave expression to watch for in the expression field.
2Clear
Clears all results from the expression evaluations.
3Evaluate
Evaluates the expression you specified in the expression field against the metadata of your flow.
4Add to watch
Adds the current DataWeave expression as an expression watch
## See Also - [DataWeave Expression Watches](https://docs.mulesoft.com/studio/evaluate-dw-expressions) --- product: Studio --- # Evaluate DataWeave Expressions While Debugging > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Evaluate DataWeave expressions in the Studio debugger while your flow’s execution is paused. You can evaluate a condition or inspect any message property at a breakpoint. If your expression is a declaration, the debugger returns `boolean`. Otherwise, it returns the value. For example, you can set: - One expression to evaluate if the method for a request is `GET`: ```none #[attributes.method == "GET"] ``` - And another expression to inspect the payload of the message: ```none #[payload] ``` The first expression returns either `true` or `false`, while the second expression displays the value of the payload at that particular breakpoint. You can also save these evaluations as expression watches so that the debugger displays the result of these evaluations every time the execution of your flow stops at a breakpoint. ## Evaluate a DataWeave Expression 1. After the debugger stops the execution at your breakpoint, write the Dataweave expression in the **Evaluate DataWeave Expression** view, and select **Evaluate**: ![Debugger with message flow, listener, set payload, logger, and DataWeave expression evaluator with Evaluate Expression button](/mulesoft/current/en-us/studio/_images/evaluate-dw-expression.png) The result of the evaluation displays in the **Evaluate DataWeave Expression** view. ![A code editor displaying the method to set the payload and media type in DataWeave](/mulesoft/current/en-us/studio/_images/evaluation-result.png) You can also edit the event properties or attributes: 1. In the **Evaluate DataWeave Expression** view, right-click the property value or attribute, and select **Update value…​**: ![A contextual menu with options to navigate to the class, duplicate the expression, add the watch, or copy the value](/mulesoft/current/en-us/studio/_images/update-value-dw-expression.png) 2. Edit the value and select **Set**. ![A window with an editing field and a Set button](/mulesoft/current/en-us/studio/_images/set-new-value-dw-expression.png) ## Add a DataWeave Expression Watch To instruct Studio debugger to watch for an expression: 1. In the **Evaluate DataWeave Expression** view, write your DataWeave expression, and select **Add to watch**: ![An arrow directs you to a button labeled ](/mulesoft/current/en-us/studio/_images/add-dw-expression-watch.png) Studio displays the new expression watch in the **Mule Debugger** view: ![A debugger window displaying a null payload](/mulesoft/current/en-us/studio/_images/show-expression-watch.png) --- product: Studio --- # Export and Import Anypoint Studio Preferences > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can export your Anypoint Studio preferences and import them into a new version: for example, if you had to download a fresh copy of Studio and you want to recover your previous configurations. ## Export Your Studio Configurations 1. In Studio, go to **Preferences**. 2. Ensure that you applied all the configurations that you want to export. 3. Select the export icon: ![An arrow pointing up and out of a box](/mulesoft/current/en-us/studio/_images/export-icon.png). ![A preferences window with options for general settings](/mulesoft/current/en-us/studio/_images/export-preferences.png) 4. Configure the preferences that you want to export: ![A window showing the Export Preferences dialog, enabling the export of preferences to the local file system](/mulesoft/current/en-us/studio/_images/export-preferences-configure.png)
1Select Export all to export all of your preferences, or select the specific configurations that you want to export.
2Define a location and name for your exported preferences.
5. Select **Finish**. ## Import Your Studio Configurations When importing preferences, you must restart Studio to apply changes. 1. In Studio, go to **Preferences**. 2. Select the import icon: ![An arrow pointing into a box](/mulesoft/current/en-us/studio/_images/import-icon.png). ![A window that consolidates program-wide preferences, such as those for background processes, editor behavior, and save intervals](/mulesoft/current/en-us/studio/_images/import-preferences.png) Configure the preferences that you want to import: ![A window with options to import preferences from a local file, filter by type, and view a description](/mulesoft/current/en-us/studio/_images/import-preferences-configure.png)
1Define the location for your preferences.
2Select Import all to import all of your preferences, or select the specific configurations that you want to import.
3. Select **Finish**. --- product: Studio --- # Git Staging View Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The Git Staging view allows you to control the version control system (VCS) process to edit RAML and OAS 2.0 and 3.0 API specifications offline and push your changes to MuleSoft VCS. ## Unstaged Changes section ![A box with numbered buttons for adding, deleting, and changing the view of unstaged changes](/mulesoft/current/en-us/studio/_images/unstaged-changes-section.png)
1A plus sign icon Add selected files to the index
Adds the selected file to your index to commit.
2Two plus signs stacked on top of each other Add all files including not selected ones to the index
Adds all the modified files in your unstaged changes section to the index to commit.
3A list with a downward arrow to the right Presentation
Changes the view for the unstaged and staged sections. Other views are:
  • List view.

  • Tree view.

  • Compact Tree.

4An arrow points down to a menu with three horizontal bars Sort by state
Sorts the files in the unstaged section based on their state.
![A menu with options to open a working tree version, compare with index, add to index, replace with HEAD revision, assume unchanged, and untrack](/mulesoft/current/en-us/studio/_images/unstaged-changes-section-right-click.png)
1An arrow pointing to a document Open Working Tree Version
Opens the selected file with your local changes.
2Two icons, one with a plus sign and an arrow, the other a window with a bar at the top Compare with Index
Compares your changes to the index version of the selected file.
3A plus sign icon Add to Index
Adds the selected file to your index to commit.
4Replace with HEAD Revision
Discards uncommitted changes to your file.
5An arrow pointing to the right of a bar Assume Unchanged
Excludes the selected file from VCS management.
Use this option when you want to ignore a file that you want to change locally but not push to MuleSoft VCS.
6A pair of glasses with a red button on the bottom right corner Untrack
## Staged Changes section ![The white box labeled ](/mulesoft/current/en-us/studio/_images/staged-changes-section.png)
1A rectangular button Remove selected files from the index
Removes the selected file from the index.
2Two rectangular buttons are stacked on top of each other Remove all files including not selected ones from the index
Removes all files in the staged section from the index.
![A menu with four options: Open Working Tree Version, Compare with Working Tree, Remove from Index, and Replace with HEAD Revision](/mulesoft/current/en-us/studio/_images/staged-changes-section-right-click.png)
1An arrow pointing to a document icon Open working Tree Version
Opens the version of your file with your local changes.
2Two icons, one with a plus sign and an arrow, the other a window with a bar at the top Compare with Working Tree
Compares your staged changes to the changes in your local copy.
3A rectangular button Remove from Index
Removes the selected file from the index.
4Replace with HEAD Revision
Discards uncommitted changes to your file.
## Commit Message section ![A form for committing and pushing changes, with fields for the author, committer, and commit message](/mulesoft/current/en-us/studio/_images/commit-message-section.png)
1An icon showing a document with an arrow pointing right Amend (Edit previous commit)
Lets you change the commit message of your previous commit.
2A pen writing on a line of text Add Signed-off-by
3A closed padlock with a keyhole Sign Commit
4Two icons, one a square with a circle in the center, the other a square with a rectangle and two plus signs inside Add Change-ID
--- product: Studio --- # Graphically Construct a Mapping > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use the graphical UI of the Transform Message component to map fields and structures and to set fixed values or functions. Studio adds the necessary lines to your DataWeave code for each action. ## Map a Field Drag an element on the input structure over to another on the output structure, this casts a line that joins them. ![A diagram illustrates the process of converting a JSON payload to a string output](/mulesoft/current/en-us/studio/_images/using-dataweave-in-studio-8e6e0.png) ## Map a Structure Drag a high-level structure that contains lists of elements or inner fields onto another in the output. This creates a shaded region covering all the mapped structure. Fields that have identical names in these structures are automatically mapped too. ![A diagram that displays the data fields for items and their respective data types](/mulesoft/current/en-us/studio/_images/using-dataweave-in-studio-6b171.png) ## Set a Fixed Value or Function 1. Double click on a field in the output tree. This adds a function icon ![A dot next to the letters f and x](/mulesoft/current/en-us/studio/_images/using-dataweave-in-studio-66cdc.png) next to it. 2. A new line is added to the DataWeave code that assigns a default `null` value to the field. This line is highlighted. Change its value to anything you want. ![Code displaying a null text value within a JSON object](/mulesoft/current/en-us/studio/_images/dw-click.png) You can add: - A fixed string value by using " ". - A reference to an input field. - A DataWeave statement that includes functions. ## See Also - [Transform Message Component](https://docs.mulesoft.com/studio/transform-message-component-concept-studio) - [Workflow: Create a Mapping](https://docs.mulesoft.com/studio/workflow-create-mapping-ui-studio) - [DataWeave language](https://docs.mulesoft.com/mule-runtime/latest/dataweave) --- product: Studio --- # Hide Inaccessible Fields in the Anypoint Studio Debugger > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Configure the Studio debugger to hide inaccessible fields and methods in Mule projects that run on Java 17 or later. Hiding these items focuses the debugger on data you can access and reduces output clutter. You can set these options: - Hide inaccessible fields: Focus on relevant and accessible data to make the debugging process more efficient. Avoid accessing fields you can’t interact with. - Hide public methods invoked to retrieve inaccessible field values: Reduce the verbosity of the debugger output. When the debugger can’t directly access a field, it attempts to call public methods that can provide the value of that field. If enabled, the debugger doesn’t show the method used to retrieve the field value to minimize clutter and noise on the screen and make the debugging process cleaner and more focused. - Use public methods with assignable return types to retrieve inaccessible field values: Ensure consistency and predictability in data accessibility and manipulation. ![Inaccessible field preferences highlighted in the debugger tab.](/mulesoft/current/en-us/studio/_images/mute-disable-error-breakpoints.png) --- product: Studio --- # Import a Mule Project from Exchange > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Import an example Mule project from Exchange into your Studio workspace and edit it to fit your needs. Exploring the available examples is a useful way to learn how to design and code more complex Mule applications. ## Before you Begin - Make sure that you set up your Anypoint Platform credentials. See [To Configure Anypoint Platform Credentials](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) to learn how to do this. ## Import an Exchange Example into Studio 1. Click the **Open Exchange** button on the top navigation bar ![An infinity symbol](/mulesoft/current/en-us/studio/_images/import-project-exchange-c2fce.png). 2. In the Exchange window, select the **MuleSoft** organization from the left navigation bar. 3. Click the **All Types** drop-down menu and select **Examples**. 4. Select the example you want to import, and in the example’s page, click **Open** from the right menu. ![An icon of a folder with a downward arrow, labeled ](/mulesoft/current/en-us/studio/_images/import-project-exchange-7f6a4.png) ## See Also - [To Publish a Project to Exchange](https://docs.mulesoft.com/studio/export-to-exchange-task) - [Import and Export Projects](https://docs.mulesoft.com/studio/import-export-packages) --- product: Studio --- # Import and Export Projects > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Import and export your Mule projects or project elements in Anypoint Studio. Studio supports importing packaged Mule applications and projects from the file system. Because Studio is Eclipse-based, keep in mind that among the import/export options, there are ways to import or export projects that are not tailored for Mule projects and that are not recommended for use. ## Import Projects to Studio Studio presents two importing options. ![A dialog box will appear, presenting you with a list of import options, such as General, Anypoint Studio, and Packaged Mule Applicatio](/mulesoft/current/en-us/studio/_images/import-export-packages-ad8ef.png)
OptionAction

Packaged Mule Application (.jar)

Imports a .jar file containing a new Mule project.

Anypoint Studio Project from File System

Imports a folder and its contents as a new Mule project.

### Import a Mule Application (Deployable Archive) 1. Select **Import** from the **File** menu. 2. In the Import wizard, click to expand the Mule folder, select **Packaged Mule Application (.jar)**, and click **Next**. 3. In the **File** field, click the ellipses (…​) button to explore your local drive. Then select the Mule Deployable Archive file (that is, the `.jar` file) you want to import. If you want, you can change project’s name. 4. Click **Finish**. > [!NOTE] When you import a project that was developed in Studio 7.1.x or older versions of Studio > 7, Studio will prompt you to **Update your Workspace**. > See [Update Workspaces](https://docs.mulesoft.com/studio/update-workspace) for more details. ### Import a Mule Application (Project From File System) 1. Select **Import** from the **File** menu. 2. In the Import wizard, click to expand the Mule folder, select **Anypoint Studio Project from File System**, and click **Next**. 3. In the **Project Root** field, click the ellipses (…​) button to explore your local drive, and select the root folder for the Mule project that you want to import. If you want, you can change the project’s name and choose a different runtime version in which to run it. > [!NOTE] You can choose a different runtime version if you have other embedded runtime versions > installed in Studio. > See _Mule Runtimes for Anypoint Studio Update Site_ in > [About Anypoint Studio Update Sites](https://docs.mulesoft.com/studio/studio-update-sites) to learn how to install other > versions of the runtime in Studio. ## Export Projects From Studio Studio lets you package and export your project as a Mule deployable file. ![A window with a list of options for you to export](/mulesoft/current/en-us/studio/_images/import-export-packages-a1b21.png)
OptionAction

Anypoint Studio Project to Mule Deployable Archive (includes Studio metadata)

Exports a Mule project to a .jar deployable file.

### Export a Studio Project to a Deployable Mule Application 1. Select **Export** from the **File** menu. 2. In the Import wizard, click to expand the Mule folder, select **Anypoint Studio Project to Mule Deployable Archive (includes Studio metadata)**, and click **Next**. 3. Select the project that you want to export and click **Next**. 4. In the **JAR file** menu, click the ellipses (…​) button to explore your local drive, and select the folder to which you want to export your deployable JAR file. Additionally, you can choose **Attach Project Sources** to include metadata that Studio requires to reimport the deployable file as an open Mule project into your workspace. You must keep the **Attach Project Sources** option selected to be able to import the packaged JAR file back into a Studio workspace. This is the same as using the `-DattachMuleSources` flag when packaging using the Mule Maven Plugin. See [Create an Application Package to Import into Anypoint Studio](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#create-an-application-package-to-import-into-anypoint-studio) in the Mule Maven Plugin documentation for more information. ### Export a Studio Project to a Shareable Lightweight Package 1. Select **Export** from the **File** menu. 2. In the Import wizard, click to expand the Mule folder, select **Anypoint Studio Project to Mule Deployable Archive (includes Studio metadata)**, and click **Next**. 3. Select the project that you want to export and click **Next**. 4. In the **JAR file** menu, click the ellipses (…​) button to explore your local drive, and select the folder to which you want to export your JAR deployable file. 5. Deselect the **Include project modules and dependencies** option. This option skips bundling the actual modules and external dependencies required to run the Mule application in a Mule runtime engine, creating a lightweight JAR file package that does not include any dependencies specified in the Mule application’s `pom.xml` file. The generated JAR file is not a functional deployable archive and cannot be deployed to a Mule runtime engine, but instead offers a way to archive only the source files that make up the Mule application. This is the same as using the `-lightWeightPackage` flag when packaging using the Mule Maven Plugin and is useful if you want to distribute your project to other Studio installations because it only keeps a reference to all its dependencies. When you import a lightweight package into Studio, all your dependencies are automatically downloaded. See [Create a Lightweight Package](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#create-a-lightweight-package) in the Mule Maven Plugin documentation for more information. ## See Also - [To Import a Mule Project from Exchange](https://docs.mulesoft.com/studio/import-project-exchange) --- product: Studio --- # Import and Implement an API Specification > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Import and implement an API spec into either a new Mule project or an existing one in Studio from Exchange, Maven, your local drive, or MuleSoft VCS. Studio supports the following API specs:
API SpecVersionMore Information

AsyncAPI

2.6

See AsyncAPI Specifications for more information about designing even-driven APIs using AsyncAPI in API Designer.

OpenAPI Specification (OAS)

2.0 and 3.0

RESTful API Modeling Language (RAML)

0.8 and 1.0

\* After importing and implementing the API spec, it’s part of your project as a standalone attachment. \*\* After importing and implementing the API spec, it’s part of your project as a dependency. See [API development in Studio](https://docs.mulesoft.com/studio/api-development-studio) for more information about these two different approaches. ## See Also - [Import and Implement an API Specification from Exchange](https://docs.mulesoft.com/studio/import-api-specification-exchange) - [Import and Implement an API Specification from Maven](https://docs.mulesoft.com/studio/import-api-specification-maven) - [Import and Implement an API Specification from a Local File](https://docs.mulesoft.com/studio/import-api-specification-local-file) - [Import and Implement an API Specification from MuleSoft VCS](https://docs.mulesoft.com/studio/import-api-specification-design-center) --- product: Studio --- # Import and Implement an API Specification from a Local File > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Import a RAML API specification from your local machine into a new Mule project. You can’t add a local API specification to an existing Mule project. This task only works for RAML types of API specifications. 1. In the taskbar of the Anypoint Studio display, select **File** > **New** > **Mule Project**. 2. Type a name for your project. 3. Select a Mule runtime engine version. 4. In the **API Specification** section, select the **From MuleSoft VCS or Local Files** tab. 5. In the **Location** field, type the location of your local API, or click the **…​** button and select **Browse Files**. You can import either a RAML file or an entire .zip file bundle if your API has schemas and examples. 6. Click **Finish**. Studio scaffolds your API specification. If you choose not to create flows out of your API specification, unselect the **Scaffold Flows From These API Specifications** checkbox. You can import more than one API. You can select the API you want to scaffold flows and check the **Scaffold selected API specifications** checkbox so that Studio generates the flow based on the imported API. ## See Also - [Design, Publish, and Implement API Specifications in Anypoint Studio](https://docs.mulesoft.com/studio/api-development-studio) - [Sync Your API Projects with MuleSoft VCS Using API Sync](https://docs.mulesoft.com/studio/api-sync) - [Add Your Anypoint Platform Account to Access Organization Resources](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) --- product: Studio --- # Import and Implement an API Specification from Exchange > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Import an AsyncAPI, OAS, or RAML API spec into a new or existing Mule project. If you’re using Mule runtime engine (Mule) 4.1.3 and earlier, or if you prefer to import an API specification that isn’t available in Exchange, you can import an API spec [from a local file](https://docs.mulesoft.com/studio/import-api-specification-local-file) or [from MuleSoft VCS](https://docs.mulesoft.com/studio/import-api-specification-design-center). If you can’t access Exchange from your work environment, you can import an API specification from your local Maven installation. ## Import and Implement an API Specification from Exchange Into a New Project 1. In the taskbar, select **File** > **New** > **Mule Project**. 2. Type a name for your project. 3. In the **Runtime** section, select the Mule runtime version appropriate for your project: 1. Select a Mule runtime engine version 4.1.4 or later for an OAS or RAML API spec. 2. select a Mule runtime engine version 4.5.0 or later for an AsyncAPI spec. 4. In the **API Specification** section, select the **From Exchange or Maven** tab. 5. Click the **Add** icon (![A plus sign icon](/mulesoft/current/en-us/studio/_images/add-icon.png)), and select **From Exchange**. 6. Select your Anypoint Platform username. If you’re not logged in, click **Add Account** to add your Anypoint Platform account. 7. From the list of available APIs, select one or more and click **Add**. To list all available APIs, type a `*` character in the search bar and press Enter. 8. To select the version of the API to import, use the **Selected Modules** table. 9. Click **Finish**. By default, Studio scaffolds your API spec. To prevent Studio from creating flows out of your API spec, unselect **Scaffold Flows From These API Specifications**. Manage the API specifications linked to Exchange in your project from the API specification project management view by clicking the **Manage Mule Project APIs** icon (![A stylized letter i with a curved roof over it](/mulesoft/current/en-us/studio/_images/manage-project-api-icon.png)) in the taskbar. ## Import and Implement an API Specification from Exchange Into an Existing Project 1. Right-click on your project in the Package Explorer, select **Manage Dependencies**, and then select **Manage APIs**. 2. Click the **Add** icon (![A plus sign icon](/mulesoft/current/en-us/studio/_images/add-icon.png)), and select **From Exchange**. 3. Select your Anypoint Platform username. If you’re not logged in, click **Add Account** to add your Anypoint Platform account. 4. Select the API from the list of available APIs and click **Add**. You can choose more than one API to import. To list all available APIs, type a `*` character in the search bar and press Enter. You can select the version of the API to import in the **Selected Modules** table. 5. Click **Finish**. By default, Studio scaffolds your API spec. To prevent Studio from creating flows out of your API spec, unselect **Scaffold Flows From These API Specifications**. Manage the API specifications linked to Exchange in your project from the API specification project management view by clicking the **Manage Mule Project APIs** icon (![A stylized letter i with a curved roof over it](/mulesoft/current/en-us/studio/_images/manage-project-api-icon.png)) in the taskbar. > [!NOTE] If you want Studio to list your API when searching in Exchange, you must mark your API > specification published as an asset as **stable**. ## Rescaffold an API Specification in a Mule Project After changing your API spec, such as adding a new endpoint, rescaffold the spec to update your Mule project. 1. Right-click on the XML file of your Mule project. 2. Select **API Specs**, the name of your Mule project, and **Generate Flows**. If the rescaffolding process of your project is successful, your implementation XML file includes a new flow. ## Implement AsyncAPI Specifications Studio supports the implementation of AsyncAPI 2.6 specs. When creating an implementation project, Studio imports and scaffolds an AsyncAPI spec hosted on Anypoint Exchange into an implementation project that you can develop further according to your business needs. Async APIs rely on message brokers to send and receive messages between different services or components in a decoupled manner. The services can send and receive messages without knowing the specific details of the recipient or sender, thus enabling asynchronous communication. For communicating with the recipient and sender, the message brokers use specific protocols. See [Supported Message Brokers](https://docs.mulesoft.com/apikit/latest/apikit-asyncapi-module-reference#supported-message-brokers) in APIkit for AsyncAPI Module Reference. > [!NOTE] You must have access to a supported AsyncAPI specification hosted on Anypoint Exchange. If > your AsyncAPI specification isn’t published to Exchange, see > [Publishing API Specifications](https://docs.mulesoft.com/design-center/design-publish). To create an AsyncAPI > specification before publishing to Exchange, see > [AsyncAPI Specifications](https://docs.mulesoft.com/design-center/design-async-api). ### Scaffolding Fundamentals for AsyncAPI Implementations When scaffolding an AsyncAPI specification into a Mule project, Studio: - Introspects the AsyncAPI specification - Considers one spec at a time - Treats the imported spec as a modification of an existing spec and evaluates it for rescaffolding - Creates a new Mule project with a separate flow for each **publish** operation in the specification - Generates an empty XML file with the name of your Mule project if the AsyncAPI spec doesn’t include a **publish** operation - Produces the configuration properties `file dev-properties.properties` file in the `src/main/resources` directory of your Mule project - Makes the APIkit for AsyncAPI module available for use in the project The module provides the following operations: - **Subscribe** (``): AsyncAPI **subscribe** operations in the specification are available for configuration as AsyncAPI **publish** operations. - **Message listener** (``): AsyncAPI **publish** operations in the specification are configurable **message listener** operations. The system publishes messages to a channel, and the Mule application listens for these messages. The scaffolder transforms each **publish** operation into a **message listener** operation allowing the Mule application to read from the specified channel and process the published messages. If a **message listener** receives an invalid message, it’s sent to the dead-letter queue (you must set up one dead-letter queue). - Generates a `global-configs.xml` file with connection configurations for **message listener** and **publish** operations in the AsyncAPI module and for any connectors the module depends on. Errors can occur during the scaffolding process: - If no channels are defined in the specification - If unsupported message broker protocols are used For supported protocols, see [Supported Message Brokers](https://docs.mulesoft.com/apikit/latest/apikit-asyncapi-module-reference#supported-message-brokers) in APIkit for AsyncAPI Module Reference. For supported bindings and channels, see [Supported Bindings and Parametrized Channels](https://docs.mulesoft.com/apikit/latest/apikit-for-asyncapi-supported-bindings). Studio supports scaffolding these schema fragment files if they’re referenced from API specs:
API TypeAvroJSONRAMLWSDL

AsyncAPI

Yes

Yes

No

No

OData v2

No

No

Yes

No

REST

No

No

Yes

No

SOAP

No

No

No

Yes

If you add a fragment that isn’t supported, the scaffolder doesn’t add these fragments as project dependencies when you import the spec from Exchange. However, you can scaffold schemas that are specified inline within the spec. ### Considerations About Importing and Scaffolding AsyncAPI Specs and Fragments - You can’t create AsyncAPI specs or fragments in Studio. - AsyncAPI APIs use message brokers for communication. For supported protocols, see [Supported Message Brokers](https://docs.mulesoft.com/apikit/latest/apikit-asyncapi-module-reference#supported-message-brokers) in APIkit for AsyncAPI Module Reference. - If the imported Async API has an Avro fragment, see [Using Avro Schemas with APIkit for AsyncAPI](https://docs.mulesoft.com/apikit/latest/apikit-asyncapi-avro-support). ## Example AsyncAPI 2.6 Specification Following is an example that you can replicate to get started with event-driven APIs. The following API specification example defines a typical event-driven process that uses Anypoint MQ and Kafka protocols. Sections in the example specification are: - AsyncAPI Identifies the API model as AsyncAPI and specifies the title and version of the API spec. - Servers Defines message brokers that determine the connectors to use (indirectly) when publishing events or subscribing to events through operations in the AsyncAPI module: - `AMQ-prod` configures an Anypoint MQ Broker - `Kafka-prod` configures a locally hosted Kafka broker - Operation Defines the action that the application takes and whether the event is consumed or published. - Channels Defines the bindings: - `order-placed`, `order-cancelled`, and `order-confirmed` configures Anypoint MQ channels for publishing and subscribing to orders - `order-backordered` configures a Kafka channel for publishing and subscribing to backorders - Components Defines the structure of messages for the different types of orders, which include OrderPlaced, OrderCancelled, OrderConfirmed, and BackOrder. ```yaml asyncapi: "2.6.0" info: title: Orders AsyncAPI version: "1.0.0" description: Orders API license: name: Anypoint MQ url: https://license.com contact: name: Max Muley email: max@salesforce.com url: http://salesforce.com defaultContentType: application/json tags: - name: Orders API description: API for orders servers: AMQ-prod: url: https:://your_MQ_server_URL_here protocol: anypointmq protocolVersion: v1 description: Anypoint MQ broker kafka-prod: url: your_kafka_URL_here protocol: kafka description: kafka broker sfpubsub-prod: protocol: salesforcepubsub protocolVersion: v1 url: api.pubsub.salesforce.com description: Salesforce pub sub for Platform events production solace-server: protocol: solace variables: port: enum: - "1000" bindings: solace: msgVpn: your_solace_vpn_here bindingVersion: 0.4.0 protocolVersion: 1.0.0 url: mySolaceURL channels: order-placed: description: new orders channel servers: - AMQ-prod publish: operationId: listen-order-placed description: listen for new order events summary: Order Placed Event message: $ref: "#/components/messages/OrderPlaced" subscribe: operationId: publish-order-placed description: publish new order events summary: Order Placed Event message: $ref: "#/components/messages/OrderPlaced" order-updated: description: updated orders channel servers: - solace-server publish: operationId: listen-order-updated description: listen for updated order events summary: Order updated Event bindings: solace: bindingVersion: 0.3.0 destinations: - destinationType: queue queue: name: listen-order-updated topicSubscriptions: - acmeretail/onlineservices/order/updated/v1/*/* - acmeretail/onlineservices/order/updated/v2/*/* message: $ref: "#/components/messages/OrderUpdated" subscribe: operationId: publish-order-updated description: publish updated order events summary: Order updated Event bindings: solace: bindingVersion: 0.3.0 destinations: - destinationType: queue queue: name: C360.CUSTOMERS topicSubscriptions: - acmeretail/onlineservices/order/updated/v1/*/* - acmeretail/onlineservices/order/updated/v2/*/* message: $ref: "#/components/messages/OrderUpdated" order-cancelled: description: orders cancelled channel servers: - AMQ-prod publish: operationId: listen-order-cancellations description: listen for order cancellation events summary: Order Cancelled Event message: $ref: "#/components/messages/OrderCancelled" subscribe: operationId: publish-order-cancellations description: publish order cancellation events summary: Order Cancelled Event message: $ref: "#/components/messages/OrderCancelled" order-confirmed: description: orders confirmed channel servers: - sfpubsub-prod publish: operationId: listen-order-confirmations description: listen for order confirmation events summary: Order Confirmed Event message: $ref: "#/components/messages/OrderConfirmedSub" subscribe: operationId: publish-order-confirmations description: publish order confirmation events summary: Order Confirmed Event message: $ref: "#/components/messages/OrderConfirmedPub" order-backordered: servers: - kafka-prod description: orders backordered channel publish: operationId: listen-order-backordered description: listen for backorder events summary: Backorder Event message: $ref: "#/components/messages/BackOrder" subscribe: operationId: publish-order-backordered description: publish backorder events summary: Backorder Event message: $ref: "#/components/messages/BackOrder" components: messages: OrderPlaced: payload: type: object properties: orderId: type: string customerName: type: string email: type: string items: type: array items: type: object properties: productId: type: string productName: type: string quantity: type: integer price: type: number required: [productId, productName, quantity, price] additionalProperties: false required: [orderId, customerName, email, items] additionalProperties: false OrderConfirmedPub: summary: order message pub contentType: application/json payload: type: array orderconfirmation: type: object properties: orderId__c: type: string email__c: type: string required: [orderId, email] additionalProperties: false OrderConfirmedSub: summary: order message sub contentType: application/json payload: type: object properties: event: type: object properties: orderId__c: type: string email__c: type: string required: [orderId, email] additionalProperties: false OrderCancelled: payload: type: object properties: orderId: type: string email: type: string reason: type: string required: [orderId, email, reason] additionalProperties: false BackOrder: payload: type: object properties: orderId: type: string email: type: string required: [orderId, email] additionalProperties: false OrderUpdated: contentType: application/json description: Shows changes to customer information including name, address and loyalty status payload: "$ref": "#/components/schemas/Order_JSON" schemaFormat: application/vnd.aai.asyncapi+json;version=2.0.0 x-ep-application-domain-id: p4oo2ehrcpf x-ep-application-domain-name: OnlineServices x-ep-custom-attr-confidential: "true" x-ep-event-id: 66gdcid5pht x-ep-event-name: Customer Created x-ep-event-state-id: "2" x-ep-event-state-name: RELEASED x-ep-event-version: 2.0.2 x-ep-event-version-displayname: "" x-ep-event-version-id: 29btjydowi0 x-ep-shared: "true" schemas: Order_JSON: "$schema": http://json-schema.org/draft-07/schema# properties: customer_id: description: The unique identifier of the customer type: string insight_description: description: A brief description of the insight type: string insight_type: description: The type of insight (e.g., demographic, behavioral, transactional) type: string insight_value: description: The value or result of the insight type: string timestamp: description: The timestamp when the insight was generated format: date-time type: string required: - customer_id - insight_type - insight_description - insight_value - timestamp title: CustomerInsight type: object x-ep-application-domain-id: a3hbbd7unz2 x-ep-application-domain-name: Customer360 x-ep-schema-id: 6dqkacw0k70 x-ep-schema-name: Customer Insight x-ep-schema-state-id: "1" x-ep-schema-state-name: DRAFT x-ep-schema-version: 0.1.0 x-ep-schema-version-displayname: "" x-ep-schema-version-id: u15ylfss2qx x-ep-shared: "false" ``` ## See Also - [Design, Publish, and Implement API Specifications in Anypoint Studio](https://docs.mulesoft.com/studio/api-development-studio) - [Sync Your API Projects with MuleSoft VCS Using API Sync](https://docs.mulesoft.com/studio/api-sync) - [Add Your Anypoint Platform Account to Access Organization Resources](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) --- product: Studio --- # Import and Implement an API Specification from Maven > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio enables you to import a RAML or OAS 2.0 and 3.0 API specification into either a new Mule project or an existing one. If you’re using Mule runtime engine (Mule) 4.1.3 and earlier, or if you prefer to import an API specification that’s not in Exchange, follow the steps presented in [import an API specification from a local file](https://docs.mulesoft.com/studio/import-api-specification-local-file) or [import an API specification from MuleSoft VCS](https://docs.mulesoft.com/studio/import-api-specification-design-center) depending on your preferred use case. ## Import and Implement an API Specification From Maven into a New Project 1. In the taskbar of the Anypoint Studio display, select **File** > **New** > **Mule Project**. 2. Type a name for your project. 3. Select a Mule runtime engine version 4.1.4 or later. 4. In the **API Specification** section, select the **From Exchange or Maven** tab, click the **Add** icon (![2%](/mulesoft/current/en-us/studio/_images/add-icon.png)) and select **From Maven**. You can either specify the Maven coordinates of your API specification, or you can install a local file into your Maven repository. ### Add an API Specification From Maven Coordinates If your API specification is in your corporate Maven repository, you can add it as a dependency. 1. In the **Import From Maven** screen, configure your API specification artifact definition: - Group ID - Artifact ID - Version 2. In the **Advanced Settings** section, verify that the **Classifier** value for your dependency is the same as your API specification type (RAML, for example). 3. Click **OK**. Studio scaffolds your API specification. If you choose not to create flows out of your API specification, unselect the **Scaffold Flows From These API Specifications** checkbox. After you import them, you can manage the API specifications in your project that are linked to Exchange from the API specification project management view by clicking the _Manage Mule Project APIs_ icon (![2%](/mulesoft/current/en-us/studio/_images/manage-project-api-icon.png)) in the taskbar. ### Add an API Specification From a Local File If you can’t download the API specification dependency from your corporate Maven repository, or if your API specification isn’t available in Maven, make your specification available as a dependency by installing it to your local Maven installation: 1. In the **Import From Maven** screen, next to the **Install a local dependency** field, click **Install**. 2. In the **File** field, either type the location of your file or click **Browse** to find it in your files. If you select **Browse**, change the file type to **any**. You can add either a RAML or OAS 2.0 and 3.0 specification, or a ZIP bundle file as your API specification, and click **Open**. 3. Set up the rest of your Maven coordinates for your API specification. 4. In the **Advanced Settings** section, verify that the **Classifier** value for your dependency is the same as your API specification type (RAML, for example). 5. Click **Install** and **OK**. Studio scaffolds your API specification. If you choose not to create flows out of your API specification, unselect the **Scaffold Flows From These API Specifications** checkbox. You can manage the API specifications in your project that are linked to Exchange from the API specification project management view by clicking the **Manage Mule Project APIs** icon (![2%](/mulesoft/current/en-us/studio/_images/manage-project-api-icon.png)) in the taskbar. ## Import and Implement an API Specification from Maven Into an Existing Project 1. In the Package Explorer view, select your project. 2. Click the **Add** icon (![2%](/mulesoft/current/en-us/studio/_images/add-icon.png)) and select **From Maven**. 3. You can either specify the Maven coordinates of your API specification, or you can install a local file into your Maven repository. ### Add an API Specification From Maven Coordinates If your API specification is in your corporate Maven repository, you can add it as a dependency. 1. In the **Import From Maven** screen, configure your API specification artifact definition: - Group ID - Artifact ID - Version 2. In the **Advanced Settings** section, verify that the **Classifier** value for your dependency is the same as your API specification type (RAML, for example). 3. Click **OK**. Studio scaffolds your API specification. If you choose not to create flows out of your API specification, unselect the **Scaffold Flows From These API Specifications** checkbox. After you import them, you can manage the API specifications in your project that are linked to Exchange from the API specification project management view by clicking the _Manage Mule Project APIs_ icon (![2%](/mulesoft/current/en-us/studio/_images/manage-project-api-icon.png)) in the taskbar. ### Add an API Specification From a Local File If you can’t download the API specification dependency from your corporate Maven repository, or if your API specification isn’t available in Maven, make your specification available as a dependency by installing it to your local Maven installation: 1. In the **Import From Maven** screen, next to the **Install a local dependency** field, click **Install**. 2. In the **File** field, either type the location of your file or click **Browse** to find it in your files. If you select **Browse**, change the file type to **any**. You can add either a RAML or OAS 2.0 and 3.0 specification, or a ZIP bundle file as your API specification, and click **Open**. 3. Set up the rest of your Maven coordinates for your API specification. 4. In the **Advanced Settings** section, verify that the **Classifier** value for your dependency is the same as your API specification type (RAML, for example). 5. Click **Install** and **OK**. Studio scaffolds your API specification. If you choose not to create flows out of your API specification, unselect the **Scaffold Flows From These API Specifications** checkbox. You can manage the API specifications in your project that are linked to Exchange from the API specification project management view by clicking the **Manage Mule Project APIs** icon (![2%](/mulesoft/current/en-us/studio/_images/manage-project-api-icon.png)) in the taskbar. ## See Also - [Design, Publish, and Implement API Specifications in Anypoint Studio](https://docs.mulesoft.com/studio/api-development-studio) - [Sync Your API Projects with MuleSoft VCS Using API Sync](https://docs.mulesoft.com/studio/api-sync) - [Maven Preferences Reference](https://docs.mulesoft.com/studio/maven-preferences-reference) --- product: Studio --- # Import and Implement an API Specification from MuleSoft VCS > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Import a RAML API specification from MuleSoft VCS into either a new Mule project or an existing one. ## Import and Implement an API Specification from MuleSoft VCS Into a New Project 1. In the taskbar, select **File** > **New** > **Mule Project**. 2. Type a name for your project. 3. Select a Mule runtime engine version 4.1.4 or later. 4. In the **API Specification** section, select the **Download RAML from MuleSoft VCS** tab. 5. In the **Location** field, click **…​** and select **MuleSoft VCS**. 6. Select your Anypoint Platform username. If you’re not logged in, click **Add Account** to add your Anypoint Platform account. 7. In the **Browse MuleSoft VCS for APIs** window, select the Anypoint Platform business group where the API specification is located. If you configure your Anypoint Platform credentials, the username and business group options are unavailable. If you want to use a different account, click **Add Account** and log in again. 8. Select an API from the list of available APIs and click **OK**. 9. Click **Finish**. Studio scaffolds your API specification. If you choose not to create flows out of your API specification, deselect **Scaffold Flows From These API Specifications**. ## Import and Implement an API Specification from MuleSoft VCS into an Existing Project Importing an API specification from MuleSoft VCS into an existing project deletes all your resources from your `src/main/resources/api` directory. 1. In the Package Explorer view, right-click on your project and select **Anypoint Platform** > **Download RAML from MuleSoft VCS**. 2. Select your Anypoint Platform username. If you’re not logged in, click **Add Account** to add your Anypoint Platform account. 3. In the **Browse MuleSoft VCS for APIs** window, select the Anypoint Platform business group where the API specification is located. If you configure your Anypoint Platform credentials, the username and business group options are unavailable. If you want to use a different account, click **Add Account** and log in again. 4. Select an API from the list of available APIs and click **OK**. 5. Click **Finish**. Studio scaffolds your API specification. If you choose not to create flows out of your API specification, deselect **Scaffold Flows From These API Specifications**. ## See Also - [API Development in Studio](https://docs.mulesoft.com/studio/api-development-studio) - [Configure Anypoint Platform Credentials](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) --- product: Studio --- # Install Mule Runtime Engine in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio bundles the latest Mule runtime engine (Mule) version available for each release. If you choose to use a different Mule runtime version than the one bundled in your Studio distribution, you can install it and update your projects to the latest version. > [!NOTE] Studio doesn’t support downgrading Mule runtime to an earlier patch version. If you change the Java or Mule runtime versions in your project, consider these facts: - Mule runtime 4.4 and earlier works with Java 8 and 11. - Mule runtime 4.6 works with Java 8, 11, and 17. - Standard support for Java 8 and 11 ends in March 2025 for Mule 4.8 Edge and August 2025 for 4.6 LTS, so plan your upgrade path for apps that are running on Java 8 or 11 accordingly. - Studio 7.21 and later builds and runs projects on Java 17 by default. To use Mule 4.9 and later, upgrade your apps to run on Java 17. ## Mule Runtime and Java Compatibility in Studio This table shows the compatibility between Mule runtime and Java versions in Studio:
Studio VersionMule Runtime VersionJava 8Java 11Java 17

7.22 and later

  • 4.13.x

  • 4.12.x

  • 4.11.x

  • 4.10.x

  • 4.9.x (LTS) and later

  • 4.8.x

  • 4.6.x (LTS)

No

No

Yes

7.20

  • 4.8.x

  • 4.6.x (LTS)

Yes

Yes

Yes

  • 4.4.x

Yes

Yes

No

See the [Studio release notes](https://docs.mulesoft.com/studio/studio-release-notes) for the latest information about compatibility. ## Prerequisites - If you have strict firewall rules, ensure that you allow the following URLs: - `https://repository.mulesoft.org/nexus/repository/studio-releases-orbit/` - `http://repository.mulesoft.org/connectors/releases/` - `http://download.eclipse.org/technology/m2e/releases` - `http://download.eclipse.org/eclipse/updates` - `http://subclipse.tigris.org/` - `http://findbugs.cs.umd.edu/eclipse/` ## Installing a Different Mule Version 1. In the menu bar, select **Help** > **Install New Software.** 2. Select **Mule Runtime for Anypoint Studio - https://repository.mulesoft.org/nexus/repository/studio-releases-orbit/org/mule/tooling/studio-runtimes/**: 3. Select the Mule version you want to install and select **Next**. 4. Accept the terms and conditions and click **Finish**. 5. Restart Studio after the installation is completed. After installing a different Mule version, you can proceed to update your project to use that version. ## Changing the Mule Version of an Existing Project 1. In the Package Explorer view, right-click your project, and select **Mule** > **Open Mule Project Properties**: ![open mule project properties](/mulesoft/current/en-us/studio/_images/open-mule-project-properties.png) 2. Use the dropdown menu next to **Server Runtime** to select a new Mule version: ![select project runtime version](/mulesoft/current/en-us/studio/_images/select-project-runtime-version.png) 3. Select **Apply and Close**. ## Uninstall a Mule Version To uninstall a version of Mule: 1. In the menu bar, select **Anypoint Studio** > **About Anypoint Studio**. 2. Select **Installation Details**: ![studio installation details](/mulesoft/current/en-us/studio/_images/studio-installation-details.png) 3. Select the runtime version you want to uninstall and click **Uninstall…​**. ![uninstall runtime version](/mulesoft/current/en-us/studio/_images/uninstall-runtime-version.png) ## See Also - [Java Support](https://docs.mulesoft.com/general/java-support) --- product: Studio --- # Maven Preferences Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Personalize how Anypoint Studio works with Maven by setting Maven preferences. Studio reads the Maven `settings.xml` file, which defines the configurations Maven uses during its operation and tailors the build process for all the projects on your system. With the `settings.xml` file, you can configure: - Dependency and plugin repositories - Proxy servers - Authentication - Plugins See [Maven setting references](https://maven.apache.org/settings.html) for additional information. To configure Maven setting preferences, open Studio preference settings. In the Preferences panel, go to **Anypoint Studio** > **Maven**. See [Maven Reference](https://docs.mulesoft.com/studio/maven-preferences-reference) for additional information about configuring MuleSoft repositories. ![\*Maven Preferences Reference\* window accessed from the \*Settings…​\* option, from the \*Anypoint Studio\* menu](/mulesoft/current/en-us/studio/_images/maven-preferences-reference.png)
PreferenceDescriptionDefault Value

Display runtime version not available warnings

When enabled, it warns you when the runtime version configured in your pom.xml file is different from the one configured in your project.

Enabled

Use embedded Maven installation

When enabled, it uses the Maven installation embedded in Anypoint Studio.

Enabled

Maven installation home directory

The directory of your local Maven installation.
You can only edit this preference when you disable Use embedded Maven installation.

Empty

Override settings security path

When selected, this option overrides Maven default settings_security.xml path.
Selecting this option requires you to define your custom path to your settings_security.xml file in the Path to settings_security.xml field.

Disabled

Override Maven local repository location

When selected, this option overrides Maven default local repository location.
Selecting this option requires you to define your custom path to your Maven local repository.

Disabled

MAVEN_OPTS environment variable

MAVEN_OPTS contains parameters to start up the JVM or to pass memory options to Maven before it runs.

Empty

Base command line for builds

The Maven command to execute every time you build or run a Mule project in your local machine.

mvn clean package -nsu -DskipMunitTests

## Configure Global Settings Studio manages the servers used in the global settings and you can configure Studio to use an external Maven installation. By doing so, Studio automatically detects and populates the IDs from the `settings.xml` file stored in `${maven.installation.home}/conf/settings.xml`. ![“\*Global Settings\* option highlighted in the Studio setting preferences window”](/mulesoft/current/en-us/studio/_images/maven-global-settings.png) If there is no file on this path, you can create a new `settings.xml` file in another location: 1. Select **Override global settings path**. 2. Click **Browse**. 3. Select your `settings.xml` file and click **Open**. + The IDs are listed. 4. Click **Apply and Close**. ## Configure Update Policies You can configure Maven update policies depending on your needs. ![“\*Update Policies\* option highlighted in the Studio setting preferences window”](/mulesoft/current/en-us/studio/_images/maven-update-policies.png) See the `` in the [**Repositories** section](https://maven.apache.org/settings.html#repositories) of Maven Settings Reference for additional information. ## Configure User Settings Studio manages the servers for downloading dependencies or plugins, defines the credentials of such servers when needed, and automatically detects and populates the IDs from the `settings.xml` file located in `${user.home}/.m2/settings.xml`. ![“\*User Settings\* option highlighted in the Studio setting preferences window”](/mulesoft/current/en-us/studio/_images/maven-user-settings.png) If there is no file on this path, you can create a new `settings.xml` file in another location: 1. Select **Override user settings path**. 2. Click **Browse**. 3. Select your `settings.xml` file and click **Open**. + The IDs are listed. 4. Click **Apply and Close**. ### Add a Server To add a new server to your `settings.xml` file: 1. In the **User Settings** window, click **Add**. 2. Enter the server ID, and your username and password. 3. Click **OK**. ![“\*Add server\* option highlighted in the Studio setting preferences window”](/mulesoft/current/en-us/studio/_images/maven-add-new-server.png) ## See Also - [Add Modules to Your Project](https://docs.mulesoft.com/studio/add-modules-in-studio-to) --- product: Studio --- # Move Transformations to Separate Files > For the full documentation index, see: https://docs.mulesoft.com/llms.txt By default, the DataWeave code from a Transform Message component is expressed inline within your Mule XML file. You can instead keep each in a separate file ( `.dwl` ) and have your XML reference them. These files are packaged with your Mule application when built. To export the DataWeave code to a `.dwl` file: 1. Click the **Edit Current Target** button. ![Code showing a list of payment data fields, including coin, payments, and type](/mulesoft/current/en-us/studio/_images/dw-multiple-outputs-edit.png) 2. Select the 'File' radio button. ![A dialog box with options for selecting a target file](/mulesoft/current/en-us/studio/_images/dataweave-externalfile2.png) 3. Type a name for your `.dwl` file. 4. Click OK. A file is created under the `src/main/resources` folder in your project containing your DataWeave code. ## See Also - [DataWeave language](https://docs.mulesoft.com/mule-runtime/latest/dataweave) - [Transform Message Component](https://docs.mulesoft.com/studio/transform-message-component-concept-studio) --- product: Studio --- # Mule Debugger View Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The Mule Debugger view in Anypoint Studio provides tools to control a running Mule application, such as running to the next processor, evaluating DataWeave expressions, and starting or stopping schedulers. Use this reference to learn what each tool does. ![A debugger with a toolbar that has ten buttons and a section labeled ](/mulesoft/current/en-us/studio/_images/debugger-reference.png)
1Terminate
Stop the running application.
2Evaluate DataWeave wxpression
Click to evaluate a Dataweave expression.
3Next processor
Runs the application and stops at the next processor in the flow, even if that processor has no breakpoint.
4Run to processor
Runs the application and stops at the selected processor, even if there is no breakpoint at that processor. Emulates the behavior of the run to cursor option in Java debuggers.
5Resume
Runs the application until the next breakpoint. If there are no other breakpoints in the execution, it runs until executing the entire flow.
6Start scheduler
When configuring a scheduler processor in your Mule application, this option triggers the scheduler according to the frequency set in the scheduler’s configuration.
7Stop scheduler
When configuring a scheduler processor in your Mule application, this option stops the initiated scheduler. This function only works if the Scheduler has been initiated using the start scheduler function.
8Add expression to watches
Adds the current DataWeave expression to the watch list.
9Remove expression to watches
Removes the selected DataWeave expression from the watch list.
10Remove all expressions from watches
Removes all DataWeave expression from your watch list.
--- product: Studio --- # MUnit Coverage Reports in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Run a coverage report from Anypoint Studio to obtain detailed insights of the effectiveness of MUnit tests on your Mule applications. The following configurations apply when you execute your MUnit tests in Studio. They don’t apply when running tests from Maven in a CI/CD environment. To run coverage reports from Maven, see [Configure MUnit Coverage in Maven](https://docs.mulesoft.com/munit/latest/coverage-maven-concept). ## Enable Coverage Reports in Anypoint Studio To see which flows, and which percentage of event processors in those flows the test covers, click the **Coverage** button: ![MUnit Coverage tab highlighted in the MUnit section](/mulesoft/current/en-us/studio/_images/using-munit-coverage-in-anypoint-studio.png) The **Overall coverage** value represents the percentage of Mule application event processors that the MUnit test executes. Click **Generate Report** to get the report that details the flows and event processors in the Mule configuration files included in the MUnit test. ![Files included in the report highlighted](/mulesoft/current/en-us/studio/_images/munit-coverage-report-in-anypoint-studio.png)
ColumnDescription

Resource

Name of the Mule configuration file

Containers

Number of flows in the Mule configuration file

Weight

Proportion of event processors within the Mule configuration file compared to the total number of event processors across all configuration files

Coverage

Percentage of event processors in the Mule configuration file that the MUnit test executes

Additionally, you can click on each **Resource** to get a more specific and granular report of the Event Processors executed in that resource: ![MUnit Coverage Report with the Granular report highlighted](/mulesoft/current/en-us/studio/_images/munit-granular-coverage-report-in-anypoint-studio.png)
ColumnDescription

Name

Name of the container

Type

Type of the container

Covered Processors

Processors in the container executed during the MUnit test

Processors

Total amount of processors in the container

Coverage

Percentage of the event processors in the container executed in the MUnit test

## Disable Coverage Reports Disable the coverage calculation from your project run configuration so you test your flow without a coverage report. Right-click **Package Explorer** and choose **Run As** > **Run Configurations**. Select your MUnit run configuration file to access your suite configuration, and deselect the **Run coverage** option in your coverage settings. ![MUnit run and Run coverage highlighted](/mulesoft/current/en-us/studio/_images/disable-munit-coverage-in-anypoint-studio.png) ## Exclude XML Files from MUnit Coverage Report Exclude one or more XML files from an MUnit Coverage report when testing your application. For example, exclude a third-party XML file that doesn’t comply with your quality standards to improve your final report score. 1. Go to the flow to change. 2. Click **Run** > **Run Configuration**. 3. Click the name of your project. 4. In the **Ignored files** section, click **Add**. ![Add Ignored File window highlighted in the Test tab](/mulesoft/current/en-us/studio/_images/add-ignored-files.png) 5. Type the name of the XML file to exclude from the Coverage report and click **OK**. 6. Click **Apply** and **Run**. ## See Also - [MUnit Coverage Report](https://docs.mulesoft.com/munit/latest/munit-coverage-report) --- product: Studio --- # Pause and Inspect Your Flow with Breakpoints > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can add breakpoints to your message processors so that the Studio debugger stops the execution of your flow at that particular processor. You can later inspect the content of the message as it exists at that point in the flow. A breakpoint stops the execution of the flow when the message reaches it. You can also configure a breakpoint to execute when a specific condition in the message is met, or whenever an error occurs. See the following types of breakpoints for more details. ## Default Breakpoints When you add a breakpoint, Studio enables the breakpoint by default. To add a default breakpoint, right-click a message processor and select **Add Breakpoint**: ![The Add breakpoint option highlighted in the context menu of a flow](/mulesoft/current/en-us/studio/_images/add-breakpoint.png) To disable the breakpoint, right-click the message processor and select **Disable Breakpoint**: ![The Disable breakpoint option highlighted in the context menu of a flow](/mulesoft/current/en-us/studio/_images/disable-breakpoint.png) Although you disable the breakpoint, Studio does not delete it. In the canvas, the breakpoint’s corresponding event processor displays a gray circle instead of a red circle: ![A gray circle shows a disabled breakpoint](/mulesoft/current/en-us/studio/_images/disabled-breakpoint.png) When you have many breakpoints, you can use the **Mule Breakpoints** view in the **Mule Debug** perspective. The **Mule Breakpoints** view lists all the message processors that have breakpoints and indicates with a check mark all the enabled breakpoints. You can select and unselect the check marks to enable or disable the breakpoints you need: ![The elements of the Mule Breakpoints view in the Mule Debug perspective](/mulesoft/current/en-us/studio/_images/breakpoint-activation.png) When you run your application in debug mode, Studio stops the flow execution at the breakpoint you added, enabling you to inspect the message’s content in the **Mule Debugger** view. ## Conditional Breakpoints A conditional breakpoint activates when a predefined condition evaluates to `true` when Studio executes the event processor with the breakpoint. You define the condition using a DataWeave expression. To add a conditional breakpoint: 1. Right-click the message processor and select **Add Breakpoint**: ![The Add breakpoint option highlighted in the context menu of a flow](/mulesoft/current/en-us/studio/_images/add-breakpoint.png) 2. In the **Mule Breakpoints** view, select the breakpoint to which you want to add a condition, and select **Conditional**: ![Set Payload and Conditional elements highlighted In the Mule Breakpoints view](/mulesoft/current/en-us/studio/_images/set-conditional-breakpoint.png) 3. Enter the condition that must be met to activate the breakpoint. For example, the following expression activates the breakpoint if the method used in the request is `GET`: ```none attributes.method == "GET" ``` You can change the condition without stopping the application’s execution. ## Error Breakpoints Enabling error breakpoints causes any event processor in the application to become a breakpoint if it throws an error. Studio stops the flow execution whenever an error occurs. The **Mule Debugger** view displays the content of the message as it exists at that point in the flow that the error occurred. Studio enables error breakpoints by default. You can’t add specific error breakpoints to stop the flow execution when a specific error occurs. To disable error breakpoints, select the **Disable error breakpoints** (![Disable error breakpoints icon](/mulesoft/current/en-us/studio/_images/to-set-error-breakpoints-55f71.png)") button in the **Mule Breakpoints** view: ![Disable error breakpoints button highlighted in the Mule Breakpoints view](/mulesoft/current/en-us/studio/_images/disable-error-breakpoint.png) ## Temporarily Mute Breakpoints You can activate the **Mute Breakpoints** option in the **Mule Breakpoints** view to temporarily disable the debugger from stopping at your enabled breakpoints: ![The Mute breakpoints icon highlighted in the Mule Breakpoints view](/mulesoft/current/en-us/studio/_images/mute-breakpoints.png) By default, muting your breakpoints also disables the error breakpoints. You can configure this behavior in **Preferences** > **Anypoint Studio** > **Debugger** by unselecting the **Mute Breakpoints disables Error Breakpoints** check mark: ![The Mute breakpoints disables Error Breakpoints checkbox highlighted in the Anypoint Studio Preferences menu](/mulesoft/current/en-us/studio/_images/mute-disable-error-breakpoints.png) --- product: Studio keywords: anypoint studio, datasense, metadata, meta data, query metadata, dsql, data sense query language --- # Preview Message Data Structure at Design Time with DataSense Explorer > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The DataSense Explorer is a feature in Studio that allows you to preview the Message data structure at different points of the flow, while still in design time. Select a specific element in the flow, then click the DataSense Explorer icon and explore the structure of the data that enters and leaves it. ![The DataSense Explorer icon highlighted in the Studio menu](/mulesoft/current/en-us/studio/_images/datasense-logo.png) The DataSense Explorer allows you to navigate the Mule Event and the Mule Message. It takes the known output fields of flow elements and the DataSense metadata of compatible connectors into account to predict the Mule Event contents at any given point in the flow. You can easily find what information is available where, even the variables that are implicitly created by certain flow elements which you might not be aware of. ![An input box with a text field, dropdown menu, and a list of variables](/mulesoft/current/en-us/studio/_images/datasense-explorer2-1.png) ## See Also - [DataSense](https://docs.mulesoft.com/studio/datasense-concept) --- product: Studio --- # Preview the Output of a Transformation > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can provide sample input data to your Transform Message component to see how the transformation affects it. You don’t need to deploy your project to use this feature. A sample output is updated in real time as you make changes both to the sample input and the transformation. 1. Click on the root of the input pane and select **Edit Sample Data**. ![A dropdown menu with options to set metadata, clear metadata, edit sample data, and configure the reader](/mulesoft/current/en-us/studio/_images/dataweave-edit-sample-data.png) A new tab opens with an empty scaffolding of your input structure. Values are populated with the string `????` as a placeholder. > [!NOTE] When the input is of type POJO, samples must be written in DataWeave format. This is > not a transformation in itself, just a way to express how data is structured. 2. Replace placeholder values with sample values to see how they are mapped out to the preview pane. ![A code editor displaying a JSON file with fields for item amount, payment, product, salesperson, and shop](/mulesoft/current/en-us/studio/_images/dw-populate-sample-data.png) > [!TIP] To reset the sample to the original scaffolding with placeholders, click the > **rescaffold button** > ![A menu icon with three horizontal lines and a right arrow](/mulesoft/current/en-us/studio/_images/dw-rescaffold-button.png). > Note that any sample data you provided is lost. 3. Enable the preview pane by clicking on the **Preview** button on the top-right of the editor. As you make changes in the DataWeave code or your sample data, notice how the output data structure changes. > [!NOTE] If your transformer has multiple outputs (for example, to both the payload and a > variable), the **Preview** pane displays the one corresponding to the currently selected > transformation. 4. Test your transformation for any special characters or structures that might arrive, verify that the output is what you expected. > [!NOTE] Note that samples defined in this pane work only within the **Transform Message** > component, they don’t alter the metadata that’s propagated to other components in the flow, > and their values aren’t propagated onwards. They aren’t used in your running application as > default values nor in any other way. ## See Also - [Workflow: Create a Mapping](https://docs.mulesoft.com/studio/workflow-create-mapping-ui-studio) - [Transform Message Component](https://docs.mulesoft.com/studio/transform-message-component-concept-studio) - [DataWeave Language](https://docs.mulesoft.com/mule-runtime/latest/dataweave) --- product: Studio --- # Propagate Metadata to Other Flows > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Studio enables you to propagate metadata in your source flow to other, target flows referenced within your application. Depending on metadata already in the target flow, you might need to configure the specific metadata to propagate from the source flow. ## Propagate Metadata to a Flow Without Custom Metadata When you add a Flow Reference component to your source flow and reference a target flow with no custom metadata configured, Studio automatically propagates the metadata in your source flow as custom metadata in your target flow. 1. In the taskbar at the top of the Anypoint Studio display, select **File** > **New** > **Mule Project**. 2. Type a name for your new project and select **Finish**. 3. Drag two flow components to your empty canvas and name them `flow-1` and `flow-2`: ![Two diagrams illustrating different flows, each with a source, process, and error handling step](/mulesoft/current/en-us/studio/_images/both-flows-metadata.png) 4. Drag a Set Payload component to `flow-1` and configure the payload: ```JSON { "value": { "ID": 1, "departureDate": "2016/12/20", "emptySeats": 200, "plane": { "type": "Boeing 747", "totalSeats": 400 } } } ``` ![A configuration window with a code block displaying JSON data](/mulesoft/current/en-us/studio/_images/set-payload-config.png) 5. Drag a Logger component to `flow-2` and configure it to log `payload`: ![A Logger configuration with a payload message](/mulesoft/current/en-us/studio/_images/logger-payload-metadata.png) 6. Drag a Flow Reference component to the end of `flow-1` and configure it to reference _\`flow-2\`_: ![A dialog box displays an error message and a text field for entering a flow name](/mulesoft/current/en-us/studio/_images/flow-reference-metadata.png) 7. Note that the metadata tab in `flow-2` is now populated with autogenerated metadata, and the input tab in the metadata explorer reflects the payload format that the Set Payload component determines in `flow-1`: ![A screenshot displaying a message flow with metadata and an object featuring ID, departure date, empty seats, and plane fields](/mulesoft/current/en-us/studio/_images/logger-metadata-case-1.png) ## Propagate Metadata When Extracting an Operation From Your Flow to a New Flow When you extract an operation from your source flow to propagate to a new target flow or subflow, Studio enables you to configure the metadata that you want to propagate to the newly created flow: 1. In the taskbar at the top of the Anypoint Studio display, select **File** > **New** > **Mule Project**. 2. Type a name for your new project and select **Finish**. 3. Drag a flow component to your empty canvas and name it `flow-1`. 4. Drag a Set Payload component to `flow-1` and configure the payload: ```JSON { "value": { "ID": 1, "departureDate": "2016/12/20", "emptySeats": 200, "plane": { "type": "Boeing 747", "totalSeats": 400 } } } ``` ![A form with fields for MIME type, metadata, notes, and help, including a text box labeled Value with code inside](/mulesoft/current/en-us/studio/_images/set-payload-flow-1.png) 5. Drag a Logger component to the end of `flow-1` and configure it to log `#[payload.value.departureDate]`: ![A message with a payload value and departure date](/mulesoft/current/en-us/studio/_images/logger-metadata-case-2.png) 6. Right-click your Logger component and select **Extract To…​** > **Flow**: ![A menu with options for a flow, including extracting the flow to a sub-flow](/mulesoft/current/en-us/studio/_images/extract-operation-metadata.png) 7. Name your target flow `flow-2`. 8. Select **Metadata Preferences** to configure the input and output metadata. Note that Studio automatically recognizes the metadata of your flow. ![A window displays the input and output metadata for a message flow, which includes an object with attributes for ID, departure date, empty seats, and plane](/mulesoft/current/en-us/studio/_images/extract-flow-metadata.png) 9. Select **OK**. 10. Your Logger component is now in `flow-2`, the metadata tab is populated with autogenerated metadata, and the input tab in the metadata explorer reflects the payload format that the Set Payload component configures in `flow-1`: ![A message flow with a metadata section and an input-output view that displays a message payload with object and value attributes](/mulesoft/current/en-us/studio/_images/extract-flow-metadata-final.png) ## Propagate Metadata to a Flow with Custom Metadata Already Configured When you add a Flow Reference component to your source flow and reference another, target flow that has custom metadata already configured, Studio prompts you to select the metadata that you want to propagate: 1. In the taskbar at the top of the Anypoint Studio display, select **File** > **New** > **Mule Project**. 2. Type a name for your new project and select **Finish**. 3. Drag two flow components to your empty canvas and name them `flow-1` and `flow-2`: ![Two diagrams illustrating different flows, each with a source, process, and error handling step](/mulesoft/current/en-us/studio/_images/both-flows-metadata.png) 4. Drag a Set Payload component to `flow-1` and configure the payload: ```JSON { "value": { "ID": 1, "departureDate": "2016/12/20", "emptySeats": 200, "plane": { "type": "Boeing 747", "totalSeats": 400 } } } ``` ![A configuration window with a code block displaying JSON data](/mulesoft/current/en-us/studio/_images/set-payload-config.png) 5. Create a JSON file with the name _\`arrival-type-example.json\`_ in your `src/main/resources/examples` directory with the following format: arrival-type-example.json ```JSON { "value": { "ID": 1, "arrivalDate": "2016/12/20", "plane": { "type": "Boeing 747", "totalSeats": 400 } } } ``` 6. Select `flow-2` > **Metadata** tab > **Add Metadata**: ![A screenshot displays a message flow with a button to add metadata](/mulesoft/current/en-us/studio/_images/add-metadata-flow-2.png) 7. Select **Input: Payload** > **Edit**: ![An arrow points to an icon for editing metadata](/mulesoft/current/en-us/studio/_images/configure-input-metadata.png) 8. Select **Add**, create a new metadata type called _\`arrivalType\`_, and select **Create type**: ![A window containing a form for the creation of a new metadata type, including a type ID field and a 'Create Type' button](/mulesoft/current/en-us/studio/_images/create-metadata-type.png) 9. Select the type **JSON** > **Example** and select the **…​** button to browse to `src/main/resources/examples/arrival-type-example.json`: ![A window with options to select a metadata type, including JSON and a text field for an example](/mulesoft/current/en-us/studio/_images/create-json-metadata-type.png) 10. Click **Select**. 11. Drag a Logger component to `flow-2` and configure it to log `payload`: ![A Logger configuration with a payload message](/mulesoft/current/en-us/studio/_images/logger-payload-metadata.png) 12. Drag a Flow Reference component to the end of `flow-1` and configure it to reference _\`flow-2\`_: ![A dialog box displays an error message and a text field for entering a flow name](/mulesoft/current/en-us/studio/_images/flow-reference-metadata.png) 13. Select the Flow Reference component **Metadata** tab, and select **Set Metadata**: ![A screenshot of a flow reference panel with the option to add metadata](/mulesoft/current/en-us/studio/_images/set-metadata-example.png) Studio warns you that setting the metadata from `flow-1` will overwrite the existing `arrivalType` metadata type configured for `flow-2`: ![A dialog box labeled Custom metadata inquires if you wish to replace the existing flow-2 metadata](/mulesoft/current/en-us/studio/_images/overwrite-metadata.png) 14. Select **Customize** to configure the desired metadata to propagate to the flow. Note that Studio recognizes the actual metadata as that set in `flow-1`, and the expected metadata as that configured in `flow-2`. ![A window that displays input and output metadata, with checkboxes for expected object values](/mulesoft/current/en-us/studio/_images/custom-metadata-configure-overwrite.png) Customizing the actual and expected metadata for a referenced flow is helpful if you want to define a specific set of metadata to propagate. --- product: Studio --- # Protect Your Credentials with Secure Storage in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio 7.11 and later uses Secure Storage, provided by Eclipse, to encrypt and save your credentials. Anypoint Studio 7.10 and earlier versions stored the information of authenticated users in the workspace, meaning that you could have different authenticated users per workspace. Studio provides a main password provider that automatically generates a main password for all your user credentials. When adding a new credential, Studio uses your main password to encrypt and save that credential into a secure storage file in your file system. The architecture of Secure Storage enables user authentication to be shared across all Eclipse-based workspaces and Anypoint Studio instances. ## Main Password Providers The available main password providers depend on your operative system. Studio assigns a priority to the available main password providers and enables you to choose which one to use. By default, Studio assigns a higher level of priority to the password provider that uses your OS’s underlying capabilities to generate and encrypt your main password. When adding a new credential to Studio, it automatically uses the main password generated by the password provider with the highest priority to encrypt your credential, and stores it in a secure storage file located in your filesystem. Windows Integration (64 bit) Available on Windows. This provider creates and encrypts a main password based on your Windows login information and stores it in secure storage. Windows Integration then uses this main password automatically to decrypt your credentials. OS X Keystore Integration Available on macOS. OS X Keystore Integration uses a random value that is stored in the Keychain Access app. This provider uses the main password automatically to decrypt your credentials. Linux Integration (64 bit) Available in Linux. This provider uses a random value and relies on the `libsecret` library that must be present and working on your Linux distribution. This provider uses the main password automatically to decrypt your credentials. UI Prompt Available in Windows, macOS, and Linux. This provider prompts you to create a main password and uses it to encrypt your credentials. This provider requires you to enter your main password every time you open Studio. When you add a new credential for the first time, Studio notifies you that a new main password has been created. Additionally, Studio prompts you to create two password hints to use in case you forget your main password. The password hints are security questions that you must treat as a second password. If you lose your main password, your password hints are the only other method to recover your credentials. Each provider supplies its own main password. When you use a provider to encrypt a new credential, you can only use that provider to recover the encrypted credential. After a main password is created, Studio caches the main password until it is closed, or you manually clear the password from Studio cache. ## Secure Storage File This file holds all your user credentials in an encrypted form. By default, the secure storage file is located in `$HOME/.eclipse/org.eclipse.equinox.security/secure_storage` and is shared across all Eclipse-based workspaces and Anypoint Studio instances. ## Update the Main Password You can change the main password for a particular provider. When changing a main password, all the encrypted data by this provider is re-encrypted with the new main password. ### Before you Begin To avoid decryption issues, ensure that all other instances of Anypoint Studio and any other Eclipse-based application are not running. To regenerate your main password: 1. Navigate to **Preferences** > **General** > **Security** > **Secure Storage**. 2. Select **Change Password…​**: ![A table of secure storage providers, their descriptions, priorities, and instructions to change or reset your password](/mulesoft/current/en-us/studio/_images/secure-storage-change-password.png) 3. When Studio prompts you to create password hints, select **Yes**: ![A popup window will ask if you want to provide a password hint](/mulesoft/current/en-us/studio/_images/new-password-created.png) > [!CAUTION] If you don’t supply new password hints, then the existing hints persist, > referencing the existing main password, and you will not be able to recover your new main > password. 4. When Studio confirms that the password is successfully updated, select **Apply and Close**. ## Customize the Location of the Secure Storage and Password Files To change the location of the password and secure storage files: 1. Locate your `AnypointStudio.ini` file: - In Windows: 1. Go to your Anypoint Studio installation directory. - In macOS: 1. Go to your `/Applications` folder, right-click the `AnypointStudio` package, and select **Show Package Contents**. 2. Go to `Contents` > `Eclipse`, and open the `AnypointStudio.ini` file. - In Linux: 1. Go to `/usr/lib/anypointstudio/anypointstudio.ini`. 2. Add the following options to bypass the password provider mechanism: ```none -eclipse.keyring (1) -eclipse.password (2) ```
1Configures the location of the Secure Storage file.
2Configures the location of the password file, which Studio uses as the main password.
> [!CAUTION] You can only decrypt your credentials with the same password file used to encrypt them. ## Decryption Errors ### No Password Provided Exception: `org.eclipse.equinox.security.storage.StorageException: No password provided` This error occurs when Studio loads and caches the main password for the provider and tries to decrypt a value that was encrypted with another main password. This happens when a user of one instance of Studio or another Eclipse-based application changes the main password at the same time that a user in another instance of Studio saves a new credential using the previously cached main password. ### Given Final Block Not Properly Padded `org.eclipse.equinox.security.storage.StorageException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.`. This error occurs when the currently cached main password cannot decrypt a value because that value was encrypted using the previously cached main password. This happens when a user using one instance of Studio or another Eclipse-based application changes the main password, and another instance of Studio or the application attempts to read encrypted values by using the previous cached main password. --- product: Studio --- # Publish a Project to Exchange > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio enables you to write documentation for your new projects and to connect to Exchange to publish your project as a new asset. ## Publish Assets with Documentation When you create a new project in Anypoint Studio, Studio includes an **exchange-docs** folder with a **home.md** file. You can document the front page of your new asset in Markdown format after publishing your asset to Exchange. > [!NOTE] Learn more about Markdown at > [https://www.markdownguide.org/](https://www.markdownguide.org/). Studio enables you to add more pages, images, and an icon: 1. Create a new project in Anypoint Studio. 2. In the **Package Explorer** view, open **Exchange-docs** > **Home.md**. 3. Use the default Studio text editor or choose an external editor by right-clicking on **Open with…​** > **Other** and selecting an external app. 4. Optionally, create additional pages to add to your asset documentation by right-clicking on the **Exchange-docs** folder and selecting **New** > **File**. > [!NOTE] The name of the file will be the name of the page in Exchange. 5. If you have more than two pages, create a `config.json` file using the following format to provide a page order: {"pageOrder": \["home","page1","page2"\]} If no format is provided, the home page will be followed by the other pages in alphabetical order. 6. Assign an icon to your project by adding an image (.jpg, .png, .bmp) with the name icon (for example, **icon.png**) before publishing your project for the first time. 7. Create a **Resources** folder in the **Exchange-docs** folder to add extra resources to your documentation, such as images, or other types of files (size limit of 2MB). 8. To publish your project, right-click on your project in the **Package Explorer**, and click on **Anypoint Platform** > **Publish to Exchange**. 9. Log in to the platform if needed, fill in the required fields, and click **Finish**. 10. After uploading the asset, click on the link provided to verify that your asset and documentation are available in Exchange. ## Publish a Project to Exchange 1. Right-click your project folder in your **Package Explorer** view. 2. Select **Anypoint Platform** > **Publish to Exchange**. ![A menu with the option to publish to Exchange](/mulesoft/current/en-us/studio/_images/publish-project-to-exchange.png) 3. Either select your Anypoint Platform user and business group or create a new Anypoint Platform account by clicking **Add Account**. Additionally, you can click the **Add Account** button to use a new Anypoint Platform account. 4. Verify that the required identification and version information for your project is present and correct: ![A form to publish a project to Exchange, with fields for user information, project details, and project type](/mulesoft/current/en-us/studio/_images/configure-asset-properties.png)
1Name: The name of your API specification.
2Description: (optional) A description of your API specification.
3Group ID: The organization ID of your Anypoint Platform organization.
4Artifact ID: The name of your project, minus its version. By default, Studio uses the artifact ID configured in your pom.xml file.
5Version: The version of the asset you are publishing.
6Project type: If you are publishing a new version of an already published asset, you cannot change the project type.
5. Select **Next**. 6. Configure the tags, categories, and custom fields for your project: ![A computer window with options to add tags, categories, and custom fields](/mulesoft/current/en-us/studio/_images/tags-and-categories-configuration.png) Categories cannot be created from Studio directly. Refer to the [Manage Categories](https://docs.mulesoft.com/exchange/to-manage-categories) documentation to learn how to create Categories for your organization. Custom fields cannot be created from Studio directly. Refer to the [Manage Custom Fields](https://docs.mulesoft.com/exchange/to-manage-custom-fields) documentation to learn how to create custom fields for your organization. 7. Check the **Save updated project information to the pom.xml** box to update your `pom.xml` file with the data provided. This option syncs your local project information with the data you entered. If not checked, your project is deployed with the provided data, but your local project remains with the original information and is not updated. 8. Select **Finish**. Once you select **Finish**, the publication of your project as a new asset in Exchange begins. You can follow the progress of this publication process in the Console view, but you cannot cancel it. ## See Also - [Configure Anypoint Platform Credentials](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) --- product: Studio --- # Publish an API Project to Exchange > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can publish your API project as a new version of an API specification to Exchange. To publish your API project as an API in Exchange: 1. In the Package Explorer view, right-click your API specification project and select **Manage API Specification** > **Publish to Exchange**. ![A menu that provides options to manage an API specification, including run, debug, and restore](/mulesoft/current/en-us/studio/_images/publish-api-project-to-exchange.png) 2. Configure the following properties for your API to be an Exchange asset: ![A form for configuring an API specification to publish to an exchange, with fields for user, specification name, artifact ID, group ID, last published version, asset version, last published API version, and API version](/mulesoft/current/en-us/studio/_images/configure-api-spec.png)
1In Specification name, type the name of your API
2In Artifact ID, type the name of your API artifact
3In Group ID, choose the group ID to which your API artifact belongs
4In Assert Version, type the version of your API asset
5In API Version, type the version of your API specification
3. Select **Finish**. --- product: Studio --- # Reuse Flow Metadata in Referenced Flows > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio 7.12 infers the metadata of your flow so that, when you use a Flow Reference component to reference another flow, you can set the metadata from your flow as custom metadata for your referenced flow. Using the Flow Reference component in Anypoint Studio enables you to automatically rather than manually propagate metadata in your flow to the flow referenced by it. When you use Studio to scaffold your flows based on a RAML specification, Studio infers the metadata of your flow based on your RAML specification’s types. However, because Union types are not supported, Studio does not infer your Union type values as metadata. For example, consider a flow named `flow-1` that uses a Set Payload component to create a JSON payload: Actual Metadata Sample ```JSON { "value": { "ID": 1, "departureDate": "2016/12/20", "emptySeats": 200, "plane": { "type": "Boeing 747", "totalSeats": 400 } } } ``` When you add a Flow Reference component to a second flow, `flow-2`, Studio detects the metadata in `flow-1` as the actual metadata that the referenced flow receives and automatically assigns it as custom metadata in `flow-2` if the flow does not already have custom metadata declared for it. Because the metadata in `flow-2` is set once, it can’t update automatically if you modify the metadata in `flow-1`. For this example, if you choose to modify the actual metadata sample for the Set Payload component in `flow-1`, you must update the custom metadata in `flow-2`. Consider now that `flow-2` has custom metadata configured already using the following JSON example: Expected Metadata Sample ```JSON { "value": { "ID": 1, "code": "GQ574", "price": 399, "departureDate": "2016/12/20", "origin": "ORD", "destination": "SFO", "emptySeats": 200, "plane": { "type": "Boeing 747", "totalSeats": 400 } } } ``` Studio considers the custom metadata of `flow-2` as the expected metadata for the referenced flow, and the metadata set by the Set Payload component in `flow-1` as its actual metadata. You can choose to either overwrite the expected metadata with the actual metadata, or customize it so that you choose what metadata you want to overwrite, and which metadata you want to preserve. --- product: Studio --- # Run Anypoint Studio in FIPS 140-3-Compliant Environments > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can run Anypoint Studio in environments configured for FIPS 140-3-compliant cryptography, so your teams keep development workflows aligned with security requirements. Support for FIPS makes Studio compatible with compliant operating systems and Java cryptographic configurations. If your environment enforces FIPS policies, Studio uses approved cryptographic providers and stricter security controls. Verify that the Mule runtime version you use in Studio is also FIPS 140-3 compliant. Some non-compliant algorithms or legacy settings require updates in project and runtime configurations. --- product: Studio --- # Search Inside Your API Specification Dependencies > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use API Search in Anypoint Studio to find specific text inside your API specification dependencies. API specifications that you import from Exchange or Maven move from `src/resources/api/` to a ZIP file in your project’s classpath, so the File Search option can’t search them. You can access the API Search menu from the taskbar at the Anypoint Studio display, either by selecting **Search** > **Search…​** or by pressing `Ctrl+h`: ![The API search tab highlighted in the search window](/mulesoft/current/en-us/studio/_images/api-search.png) To search inside of your API specification dependencies: 1. Type the text that you want to search for, following these conventions: - Use `*` to search for any chain of characters in your search criteria. For example, `/*customer` matches both possible endpoints `/customers` and `/{customerId}`. - Append `?` to search for any character after a specific pattern. For example, `/?customer` matches `/{customerId}` but not `/customers` because there must be a character between the search criteria that you defined between the `?` literal. - Use `\` to escape any of the reserved literals used in search patterns. For example, if you want to search for strings containing `*`, `?`, or `\` you must escape them: `\*`, `\?`, and `\\`. 2. If you want to specify a specific name pattern for the files you want to search through, type the pattern in the **File name patterns** field, following these conventions: - Use `*` to search for any chain of characters in your search criteria. For example, `*.raml` searches in all file names that end with the `.raml` extension. - Use `?` to allow any character after a specific pattern. For example, `customer?1.raml` searches inside file such as `customer01.raml`, `customer11.raml`, or `customer21.raml`. - Use `!` to exclude certain filenames or patterns. For example, `!examples.raml` searches inside all files except `examples.raml`. 3. Click the **Choose…​** button to filter per file type. 4. Select one of the following types of API specifications in your project: - **API dependencies** searches inside API specifications imported from Exchange or Maven. - **Local API Files** searches inside API specifications added from a local file or from MuleSoft VCS. 5. Click **Search**. You can also search for all API specifications inside your open projects. You can select **Navigate** > **Open API Resource** in the taskbar at the Anypoint Studio display, or press `Cmd+Shift+p` (macOS) or `Ctrl+Shift+P` (Windows/Linux): ![API search field highlighted in the Open API Resource window](/mulesoft/current/en-us/studio/_images/open-api-resource.png) 1. Type the name of the API resource that you’re looking for: ![API resource search field highlighted in the Open API Resource window](/mulesoft/current/en-us/studio/_images/open-api-resource-result.png) Studio displays all possible matches for the API resource that you typed. 2. Select the resource you were looking for and click **OK**. --- product: Studio --- # Select a Different Java Version to Run the Embedded Mule Runtime > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can select any of your installed JREs as the default Java runtime environment that Studio uses to run your Mule project. You can select the version of the JDK to use for the project that is compatible with the Mule runtime version the project runs on. If you change the Java or Mule runtime versions in your project, consider these facts: - Mule runtime 4.4 and earlier works with Java 8 and 11. - Mule runtime 4.6 works with Java 8, 11, and 17. - Standard support for Java 8 and 11 ends in March 2025 for Mule 4.8 Edge and August 2025 for 4.6 LTS, so plan your upgrade path for apps that are running on Java 8 or 11 accordingly. - Studio 7.21 and later builds and runs projects on Java 17 by default. To use Mule 4.9 and later, upgrade your apps to run on Java 17. ## Mule Runtime and Java Compatibility in Studio This table shows the compatibility between Mule runtime and Java versions in Studio:
Studio VersionMule Runtime VersionJava 8Java 11Java 17

7.22 and later

  • 4.13.x

  • 4.12.x

  • 4.11.x

  • 4.10.x

  • 4.9.x (LTS) and later

  • 4.8.x

  • 4.6.x (LTS)

No

No

Yes

7.20

  • 4.8.x

  • 4.6.x (LTS)

Yes

Yes

Yes

  • 4.4.x

Yes

Yes

No

See the [Studio release notes](https://docs.mulesoft.com/studio/studio-release-notes) for the latest information about compatibility. ## Select the Java Version for All Your Studio Projects 1. In Studio, click **Anypoint Studio**, and **Preferences**. 2. Under **Java**, **Installed JREs**, select the JRE version to use. ![A table listing installed Java runtime environments with names, locations, and types](/mulesoft/current/en-us/studio/_images/installed-jres.png) If your installed JRE version doesn’t appear, you must configure it: 1. Go to **Add** and select your installed JRE type: - `MacOS X VM` for macOS. - `Standard VM` for macOS, Windows, and Linux. 2. Click **Next**. 3. In **JRE Home**, click **Directory** and select the folder where you have installed JRE. For example, `/Library/Java/JavaVirtualMachines/jdk-11.0.3.jdk/Contents/Home` 4. In **JRE Name** type in a descriptive name for the JRE. For example, `Java SE 11`. 5. Click **Finish**. ## Migrate Your Project to a Different Java Version Studio 7.17.0 and later are compatible with Java 17. Upgrade modules and apps in your projects to obtain its latest features. 1. Right-click your Studio project. 2. Go to **Build Path**, and click **Configure Build Path**. 3. In the **Libraries** tab, select your **JRE System Library** and click **Edit**. 4. Select the **Alternate JRE** option, and select your desired JRE from the dropdown menu. ![Edit Library window displaying the alternate JRE options.](/mulesoft/current/en-us/studio/_images/change-jdk-project.png) If you select Java 17 for your project, Studio automatically searches Exchange and suggests [the modules and connectors to upgrade](https://docs.mulesoft.com/studio/update-modules) to make your app compatible with Java 17. If you find issues, you can [troubleshoot them](https://docs.mulesoft.com/studio/compatibility-issues-runtime-java) and then [deploy your project to the appropriate environment](https://docs.mulesoft.com/studio/deploy-mule-application-task) with Java compatibility checks. ## Verify Java 17 Tooling In Studio 7.19.0 and later, your new Mule projects use JDK 17 by default and the bundled modules in your Mule projects must be Java 17 compatible. If you have issues with the modules that use previous versions of Java: 1. Go to **Settings** > **Anypoint Studio** > **Tooling**. 2. In the **Life cycle** section, select Java 17 as the Java virtual machine for Studio services. 3. Click **Apply and Close**. The Studio services restart and the tooling instance restarts using Java 17. Use the [Java 17 module compatibility tool](#verify-java-17-module-compatibility) to verify the modules in your Mule project are Java 17 compatible. ## Verify Java 17 Module Compatibility In Studio 7.19.0 and later, you can check if the modules in your Mule project are Java 17 compatible: 1. Right-click the name of your project. 2. Select **Mule** > **Java 17 Module Compatibility**. Studio analyzes the modules in your Mule project and shows the modules that aren’t Java 17 compatible in the **Problems** tab. 3. [Update the modules](https://docs.mulesoft.com/studio/update-modules) that aren’t Java 17 compatible. ![The problems tab is open, with one warning and three Java module compatibility notifications](/mulesoft/current/en-us/studio/_images/java-17-tooling.png) ## Configure FIPS 140-2 in Studio Studio supports FIPS 140-2 security model for Java 8, 11, and 17. ### Configure FIPS 140-2 in Java 8 1. Download the provider files from the [BouncyCastle](https://www.bouncycastle.org/download/bouncy-castle-java-fips/) website. - Provider: bc-fips-1.0.2.4 - TLS: bctls-fips-1.0.19.jar - PKIX: bcpkix-fips-1.0.7.jar 2. Install the required JAR files into your Studio embedded JDK 8. This example shows the command for a default macOS installation. The path to the `…​/jre/lib/ext/` directory can be different depending on your operating system and Studio version. ```bash cp bc-fips-1.0.2.4.jar bctls-fips-1.0.19.jar bcpkix-fips-1.0.7.jar /Applications/AnypointStudio.app/Contents/Eclipse/plugins/org.mule.tooling.jdk.v8.macosx.x86_64_1.3.4/Contents/Home/jre/lib/ext/ ``` The default path on Windows is `C:\AnypointStudio\plugins\org.mule.tooling.jdk.v8.win32.x86_1.3.4\jre\lib\ext`. 3. Register the security providers in the `java.security` properties file, located in your JDK 8 `…​/lib/security/` folder. Bouncy Castle must be the only provider. ```java # # List of providers and their preference orders: # security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider fips:BCFIPS # ... ``` 4. Save your changes. 5. In Studio, go to your project, right click its folder, and select **Run configuration**. 6. Go to the **Arguments** tab. In **VM arguments**, add: ```text -Dmule.security.model=fips140-2 -Dorg.bouncycastle.fips.approved_only=true ``` 7. Run your application. The startup readout shows FIPS security model enabled. ```text * Mule Runtime and Integration Platform * Version: 4.6.21 Build: adffffac * MuleSoft, Inc. * For more information go to * https://www.mulesoft.com/platform/soa/mule-esb-enterprise * * Server started: 6/4/18 4:06 PM * JDK: 1.8.0_172 (mixed mode) * JDK properties: - java.vendor = Oracle Corporation - java.vm.name = Java HotSpot(TM) 64-Bit Server VM - java.home = /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/jre * OS: Mac OS X (10.11, x86_64) * Host: your-hostname.local (10.250.0.81) * Security model: fips140-2 (1) * Mule services: - api-gateway-contract-service-1.0.0-mule-service.jar - mule-service-http-ee-1.1.1-mule-service.jar - mule-service-oauth-1.1.1-mule-service.jar - mule-service-scheduler-1.1.4-mule-service.jar - mule-service-soap-1.1.2-mule-service.jar - mule-service-weave-ee-2.1.2-mule-service.jar * Mule system properties: - mule.security.model = fips140-2 - mule.base = /Users/your-user/AnypointStudio/studio-workspace/.mule - mule.home = /Users/your-user/AnypointStudio/studio-workspace/.mule ```
1FIPS 140-2 security model is enabled.
### Configure FIPS 140-2 in Java 11 and Later 1. Download the provider files from the [BouncyCastle](https://www.bouncycastle.org/download/bouncy-castle-java-fips/) website: - Provider: bc-fips-1.0.2.4 - TLS: bctls-fips-1.0.19.jar - PKIX: bcpkix-fips-1.0.7.jar 2. Copy the downloaded files to the embedded Mule runtime `…​/lib/boot` directory. The path to this directory can vary depending on your Studio and Mule runtime versions. ```bash cp bc-fips-1.0.2.4.jar bctls-fips-1.0.19.jar bcpkix-fips-1.0.7.jar /Applications/AnypointStudio.app/Contents/Eclipse/plugins/org.mule.tooling.server.4.9.ee_7.21.0.202508051502/mule/lib/boot ``` The default path on Windows is `C:\AnypointStudio\plugins\org.mule.tooling.server.4.9.ee_7.21.0.202508051502\mule\lib\boot`. 3. Delete the **wrapper.conf** file at `AnypointStudio\plugins\org.mule.tooling.server.4.9.ee_7.21.0.202508051502\mule\conf`. 4. Edit `AnypointStudio\plugins\org.mule.tooling.server.4.9.ee_7.21.0.202508051502\mule\conf\wrapper.conf.template` and uncomment this line by deleting the starting **#** character: ```text wrapper.java.additional.21=--add-opens=java.base/sun.security.provider=org.bouncycastle.fips.core ``` 5. Edit `/Applications/AnypointStudio.app/Contents/Eclipse/plugins/org.mule.tooling.jdk.macosx.aarch64_1.4.1/Contents/Home/conf/security/java.security` to list only the BouncyCastle security providers. ```java security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider fips:BCFIPS ``` 6. In Studio, go to your project, right click its folder, and select **Run configuration**. 7. Go to the **Arguments** tab. In **VM arguments**, add: ```text -Dmule.security.model=fips140-2 -Dorg.bouncycastle.fips.approved_only=true ``` 8. Run your application. The startup readout shows FIPS security model enabled. ```text * Mule Runtime and Integration Platform * Version: 4.9.8 Build: adffffac * MuleSoft, Inc. * For more information go to * https://www.mulesoft.com/platform/soa/mule-esb-enterprise * * Server started: 8/10/21 5:12 PM * JDK: 11.0.11 (mixed mode) * JDK properties: - java.vendor = AdoptOpenJDK - java.vm.name = OpenJDK 64-Bit Server VM - java.home = /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home * OS: Mac OS X (11.5, x86_64) * Host: your-hostname.local (192.168.1.10) * Security model: fips140-2 (1) * Mule services: - ... * Mule system properties: - mule.security.model = fips140-2 - mule.base = /Users/your-user/AnypointStudio/studio-workspace/.mule - mule.home = /Users/your-user/AnypointStudio/studio-workspace/.mule ```
1FIPS 140-2 security model is enabled.
## See Also - [Java Support](https://docs.mulesoft.com/general/java-support) - [Troubleshoot Java and Mule Runtime Compatibility Issues](https://docs.mulesoft.com/studio/compatibility-issues-runtime-java) - [FIPS 140-2 Compliance Support](https://docs.mulesoft.com/mule-runtime/latest/fips-140-2-compliance-support) --- product: Studio --- # Share Global Configurations Between Mule Applications with Domains > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio allows you to create, edit and maintain Mule domains to share global configurations between different Mule applications implementing the same domain. The Mule Domain configuration editor shows two different tabs: - Global Elements Here you can define the global configurations that your domain makes available for other applications to reuse. - Configuration XML This tab allows you to edit your Mule Domain configuration XML code using autocomplete. All modules inside a Mule Domain are automatically inherited by all Mule applications under it. Module versioning between your Mule domain and you applications must be consistent. It is not possible to add a module to your Mule Application if such module already exists in your Mule domain. Mule domains must be either available in your Studio Workspace or deployed in the Nexus repository declared in your application’s POM file. When a Mule domain is installed in your Nexus repository, and you configured it as a dependency on your Mule application, Anypoint Studio can automatically resolve your Mule domain’s modules and add them to your application project. However, when working with remote Mule Domain projects from Anypoint Studio keep in mind the following restrictions: - You can’t edit the global elements of a remote Mule domain. - You can’t edit the modules of a remote Mule domain. - You can’t run a Test Connection from a global element defined in your remote Mule domain. Domains are only editable when they are open projects in your workspace. ## See Also - [To Design Mule Domains](https://docs.mulesoft.com/studio/domain-studio-tasks) - [To Add Modules to Your Project](https://docs.mulesoft.com/studio/add-modules-in-studio-to) --- product: Studio --- # Sign in to Anypoint Platform from Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Enhance your security in Anypoint Studio by [configuring two-factor authentication](https://docs.mulesoft.com/access-management/multi-factor-authentication) through Anypoint Platform. Studio supports these methods: - Google Authenticator - YubiKey - Windows Hello This configuration protects your development environment and ensures that sensitive data remains secure from unauthorized access, defending against potential security breaches. ## See Also - [Add Your Anypoint Platform Account to Access Organization Resources](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) --- product: Studio --- # Solve Git Conflicts in API Projects > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Resolve a Git conflict in your API project when someone else changes a version in MuleSoft VCS while you modify the same version locally. For example, you might have modified a file in a branch, while someone else modified this very same file in the same branch directly in MuleSoft VCS. By the time you want to push your changes, Git rejects the push command because it cannot fast-forward your changes to the version in MuleSoft VCS, meaning that you must tell git how to apply your changes over a modified version: 1. In the Package Explorer view, right-click your API specification project and select **Team** > **Switch To** > **Push Branch…​**. ![A dropdown menu displaying choices for a software development project, featuring Git commands such as pull and push](/mulesoft/current/en-us/studio/_images/push-branch.png) 2. Git rejects the push due to the conflicting file: ![A window appears with the push results, including the repository URL and message details](/mulesoft/current/en-us/studio/_images/conflict.png) 3. Pull the changes from MuleSoft VCS into your local version. ![A menu displaying choices for a Git repository](/mulesoft/current/en-us/studio/_images/pull-changes.png) 4. Evaluate the conflicts flagged by Git: ![A window displaying the outcomes of a fetch and update of flights-api data, with a conflicting result and two merge input choices](/mulesoft/current/en-us/studio/_images/flagged-commit.png)
1Your local commit flagged as conflicting.
2The commit made by another collaborator flagged as conflicting.
5. Git flags the conflicting parts of the file in the API editor view: ![Code displaying a RAML API for American Flights](/mulesoft/current/en-us/studio/_images/resolve-marked-conflict.png) ```linenums <<<<<<< HEAD - LAX - CLE ======= (1) - CLE - LAX >>>>>>> branch 'add-flights-path' of https://anypoint.mulesoft.com/ (2) ```
1Everything between the characters HEAD and ======= are your changes.
2Everything between the characters ======= and branch …​ are the changes in MuleSoft VCS conflicting with yours.

In this case, another collaborator changed the definition from:

/flights:
      get:
        queryParameters:
          destination:
            required: false
            enum:
              - SFO
              - LAX
              - CLE

To:

/flights:
      get:
        queryParameters:
          destination:
            required: false
            enum:
              - SFO
              - CLE
              - LAX

The conflict happens because git does not know which change to prioritize.

6. Remove the change you don’t want to keep: ![A code editor displaying a commit message and a conflict list](/mulesoft/current/en-us/studio/_images/push-conflict-changes.png)
1Ensure that your changes remain in the file.
2Add your changes to the index.
7. Select **Commit and Push**. Your copies between Studio and MuleSoft VCS are synchronized with your latest changes. ## See Also - [Edit API Specifications Offline and Sync Them with MuleSoft VCS](https://docs.mulesoft.com/studio/sync-api-projects-design-center) --- product: Studio --- # Start the Mule Server in Debug Mode > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Start a Mule server in debug mode so that you can connect to it from Anypoint Studio and debug an application remotely. You pass the debug parameters to the server on the command line or in the wrapper configuration file. 1. To start the server in debug mode, use the following parameters:
ParameterDescription
-M-Dmule.debug.enable=true

Mandatory. Sets debugging mode in Mule. Issue this parameter first.

-M-Dmule.debug.port=<port number>

Optional. Sets the listening port for incoming connections from Studio. If unset, the listening port will be 6666.

-M-Dmule.debug.suspend=true

Optional. Sets "suspend" mode in Mule. In suspend mode, Mule will start, then immediately suspend application execution until it receives a connection on the debug port.

2. To pass the parameters to the server, follow one of the two methods outlined below. 1. **Method 1**: pass the parameters to Mule on the command line in the appropriate order, as shown in the example below. ```text <$MULE_HOME>/bin/mule -M-Dmule.debug.enable=true -M-Dmule.debug.port=1234 ``` The command displayed above starts Mule in the foreground. To exit Mule when it is running in the foreground, press `Ctrl+C`. To start Mule in debugging mode in the background, issue `start` as the first parameter for the `mule` command, as shown below. ```text <$MULE_HOME>/bin/mule start -M-Dmule.debug.enable=true -M-Dmule.debug.port=1234 ``` 2. **Method 2**: include the parameters in the wrapper configuration file, `$MULE_HOME/conf/wrapper.conf`, as shown below. ```text wrapper.java.additional.4=-Dmule.debug.enable=true wrapper.java.additional.5=-Dmule.debug.port=1234 ``` In the code shown above, replace the parameter number to reflect the number of active parameters in your configuration file. Before accessing and debugging your application on a remote server, you must first export and deploy your application to the desired Mule server. 1. In Studio, click the arrow next to the debug icon (represented by a small insect), then select **Debug Configurations**. Studio displays the **Debug Configurations** window. 2. In the window’s left pane, click **Remote Mule Application**. 3. Click the new configuration icon (represented by a blank page with a yellow plus sign) to add a new configuration. 4. Enter the required parameters for the configuration: - **Name:** name for this configuration - **Host:** indicates the location of the remote Mule server - **Port:** indicates the listening port for the remote Mule server You can debug an application on a remote Mule Server using **Remote Mule Application**. To do so, you must start the Mule server in debug mode, then connect to the server from Studio. > [!NOTE] > > - When you start Mule in debug mode, _all_ applications that you launch in that server run in > debug mode. > > - Remote debugging does not work with clusters. --- product: Studio keywords: api, anypoint platform, sync, api sync, MuleSoft VCS --- # Sync Your API Projects with MuleSoft VCS Using API Sync > For the full documentation index, see: https://docs.mulesoft.com/llms.txt API Sync in Anypoint Studio synchronizes your API specifications and Mule application projects with MuleSoft VCS and Exchange. Use it to design, import, edit, and scaffold flows from RAML, OAS 2.0, and OAS 3.0 API specs. With API Sync, you can: - Start designing a RAML, OAS 2.0, or OAS 3.0 API spec in Studio and sync it with API Sync. - Pull a published RAML, OAS 2.0, or OAS 3.0 API spec from Exchange or from a private Maven repository, into your Mule application project in Studio to scaffold a new project. - Edit the API spec you imported from Exchange, and push your changes to MuleSoft VCS. - Scaffold multiple flows in different Mule configuration files by using API Sync on more than one API spec. - Monitor the API versions that you implement in your project and update your flows based on the latest published version. - Pull a RAML, OAS 2.0, or OAS 3.0 API spec from MuleSoft VCS into Studio, edit the spec offline, and push the updates back to MuleSoft VCS. - Develop your Mule applications using API lifecycle development practices. API Sync supports importing both RAML, OAS 2.0, and OAS 3.0 spec. API Sync is bundled by default with Studio and requires Mule 4.1.4 or later. API Sync doesn’t work properly if the RAML file exceeds 4,000 lines of text. ## Create an API Spec in Studio Start a new API spec project in Studio. See [Create an API Specification Project in Anypoint Studio](https://docs.mulesoft.com/studio/create-api-specification-studio) for more information. ## Import an API Spec from Exchange Import an API spec from Exchange into a new Mule project or from MuleSoft VCS into an editable API spec project. See [Import and Implement an API Specification from Exchange](https://docs.mulesoft.com/studio/import-api-specification-exchange) for more information. See [Update an Imported API Specification to the Latest Version](https://docs.mulesoft.com/studio/sync-update-api-spec) for more information about keeping your Studio projects up to date with the latest version of an API spec. See [Edit API Specifications Offline and Sync Them with MuleSoft VCS](https://docs.mulesoft.com/studio/sync-api-projects-design-center) for more information. ### Edit the Imported API Spec in Studio Edit the imported API spec in your project as an API spec project. 1. Import the API spec from Exchange to your Studio project. 2. Sync it to MuleSoft VCS. 3. Publish it to Exchange. 4. Import the new version of your API spec. See [Edit an Imported API Specification and Publish the Changes](https://docs.mulesoft.com/studio/sync-imported-api-specifications-design-center) for more information. ## See Also - [Design, Publish, and Implement API Specifications in Anypoint Studio](https://docs.mulesoft.com/studio/api-development-studio) - [Import and Implement an API Specification from Exchange](https://docs.mulesoft.com/studio/import-api-specification-exchange) - [Import and Implement an API Specification from Maven](https://docs.mulesoft.com/studio/import-api-specification-maven) --- product: Studio --- # Test Your API Specification Using the API Console > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Studio provides an API Console view and a mocking service for the API you are designing. While the mocking service is enabled, the API Console view returns the HTTP status codes and example payloads that you defined in your API specification. Simulating calls to your API is a critical design task that helps you troubleshoot problems and demo the API to prospective users even before you implement it. You can simulate calls to the API in the API Console view before publishing a new version of the API specification to Exchange. Studio mocking service does not modify the `baseUri` field in your API specification when it is enabled. ## Prerequisites - You must have an API specification project created. - Your API specification project must be synchronized with MuleSoft VCS. - You must turn on the mocking service. In your Package Explorer view, right-click your API specification project and select **Manage API Specification** > **Turn on Mocking Service**. ![A menu that displays options for managing a T-shirt ordering service API, such as enabling mocking services and publishing to an exchange](/mulesoft/current/en-us/studio/_images/turn-on-mocking-service.png) ## Steps 1. Locate the API Console view within the API Design perspective. The API Console view displays: - A summary of your API specification - All the available endpoints and their allowed HTTP methods - A list of all the types defined in your API specification 2. Navigate through the **Endpoints** section, click the HTTP method that you want to test, and click **Try It** to simulate calls to an API. Your expanded API Console view shows the mocking service to the right of the console. **Request URL** is populated with your selected API endpoint. - The **Request URL** field is populated with your selected API endpoint. - Use **Query Parameters** if you need to add specific parameters to your request. 3. Click **Send** to send your test request. ## See Also - [Create an API Specification Project in Studio](https://docs.mulesoft.com/studio/create-api-specification-studio). --- product: Studio --- # Test Your Mule Projects with MUnit > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use MUnit in Anypoint Studio to create, run, debug, and modify unit tests for your Mule projects. MUnit is a MuleSoft unit testing framework for creating and running unit tests on a Mule application, as described in [MUnit Overview](https://docs.mulesoft.com/munit/latest/). In the MUnit windows, you can find information about your tests: - Errors - Failures - Results - Coverage ## Before You Begin Learn more about MUnit: - [MUnit Overview](https://docs.mulesoft.com/munit/latest/) - [MUnit Test Structure Fundamentals](https://docs.mulesoft.com/munit/latest/munit-test-concept) - [MUnit Event Processors](https://docs.mulesoft.com/munit/latest/event-processors) - [MUnit Cookbook](https://docs.mulesoft.com/munit/latest/munit-cookbook) ## Get to Know MUnit Tests You can perform the following tasks with MUnit in Studio: - Create a test - Create a test suite - Run a test - Debug your project - Fix errors - Generate test reports When you work with your MUnit tests in Studio, you can: - Find the test of your project in the `src/test/munit` folder, in **Package Explorer**. - Drag components to your test from the **Mule Palette**, in **Message Flow**. - Define the MUnit configuration for your tests from **Global Elements**. - Review test XML files from **Configuration XML**. ## Create MUnit Tests and MUnit Test Suits To create an MUnit test: 1. Open your Mule project in Studio. 2. Right-click on the **src/test/munit** folder, or create this folder if it doesn’t exist in your Mule project. 3. Select **New** > **MUnit Test**. 4. In the **MUnit test suite** window, write a name for your test suite. 5. Select the flows to test from the list of flows available in your project. 6. Click **Finish**. > [!NOTE] You can also configure MUnit tests and test suites from the XML editor. ## Run MUnit Tests You can run MUnit test in different ways in Studio: - Right-click on your MUnit test suite file and select **MUnit** > **Run Test**. - In **Message Flow**, right-click on your test flow, and select **Run MUnit suite**. When you run a test, Studio creates a build and displays the progress and the result of the test in the **Console** tab and the **MUnit** window. If all tests execute successfully, the build succeeds. If there is an error, the build fails. ## Run MUnit Tests in Debug Mode You can run your MUnit tests in debug mode to step through your code, inspect variables, and understand the flow of your Mule application. 1. Open your Mule project in Studio. 2. In the **src/test/munit** folder, open the MUnit test suite to debug. 3. In **Message Flow**, add a breakpoint by right-clicking on the element that must have the breakpoint. 4. Right-click on your MUnit flow test and select **Debug MUnit test**. ## Enable Flow Sources The `Enable Flow Sources` element within the MUnit test tells MUnit which flow sources to load and execute for the test. By default, MUnit doesn’t start the event sources (flow sources such as triggers and listeners). You can define flow sources with the **Mule Properties** view of your MUnit test in Studio: 1. Click **Add**. 2. Select the name of the flow from **Name of the flow**. Learn more about flow sources in MUnit docs ([Enable Flow Sources in MUnit](https://docs.mulesoft.com/munit/latest/enable-flow-sources-concept)) and configure which flow sources must start for your tests. ## See Also - [MUnit Cookbook](https://docs.mulesoft.com/munit/latest/munit-cookbook) - [MUnit Test Structure Fundamentals](https://docs.mulesoft.com/munit/latest/munit-test-concept) - [MUnit Event Processors](https://docs.mulesoft.com/munit/latest/event-processors) --- product: Studio --- # Track the Number of Billable Flows in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt In Anypoint Studio 7.20 and later, you can track the number of billable flows in your project. Flow Counting improves transparency in usage-based pricing by providing visibility into the number of billable flows when developing your project. With this new feature, you better understand your consumption patterns from design to deployment, preventing unexpected billing issues. Your Anypoint Platform organization pays for billable flows, such as Trigger Flows or APIkit-generated flows, in deployed Mule applications in your runtime plane. A flow is billable when it contains a Mule event source or routes APIkit requests. To reduce these costs, consider using subflows or private flows, which aren’t billable. Additionally, to bypass charges for unused flows, avoid deploying unnecessary flows from accelerators or assets. See [Anypoint Platform Pricing](https://docs.mulesoft.com/general/pricing) for information about managing and reducing billable flows.
Type of FlowDescription

Trigger Flows

Begins the execution of a process based on certain events or conditions. These flows are the starting point of any integration application. A trigger flow usually starts with a message source, like a listener or a scheduler. The message source reacts to external events (like HTTP requests, time schedules, or file updates) and starts the next process.

APIkit-generated Flows

Flow automatically created by the APIkit module if you import or design an API spec. These flows map incoming API requests to the appropriate logic and responses. Each action in the API spec results in a flow.

## Count the Flows in Your Project Using Studio 1. Select your project. 2. Click **Flow Count** (![2%](/mulesoft/current/en-us/studio/_images/flow-count-icon.png)) in the taskbar. Studio displays the number of billable flows your Anypoint Platform organization is charged for in deployed Mule applications. ![A table showing the billable flow names and type](/mulesoft/current/en-us/studio/_images/flow-count.png) 3. Click **OK** to close the window. ## See Also - [Usage-Based Pricing: Usage and Rates](https://docs.mulesoft.com/general/usage-metrics) --- product: Studio keywords: studio, anypoint, esb, transform, transformer, format, aggregate, rename, split, filter convert, xml, json, csv, pojo, java object, metadata, dataweave, data weave, datamapper, dwl, dfl, dw, output structure, input structure, map, mapping --- # Transform Data with the Transform Message Component > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The Transform Message component enables you to perform transformations over the input data it receives. You can explicitly write out a transformation in DataWeave language, or you can use the UI to build it through dragging and dropping elements. You can work with two representations of the same transformation, and any changes done to one are matched in real time by the other. ![A code snippet that demonstrates the mapping of data from one object to another](/mulesoft/current/en-us/studio/_images/transform-message-component.png)
1Graphical View.
Two tree views show the expected metadata structures of the input and output, mappings between these are represented through lines. These can be created through drag and drop.
2Source Code View.
DataWeave code expresses the transformation in full depth, including functions that aggregate, normalize, group, join, partition, pivot and filter data.
The Transform Message component leverages metadata from connectors, schemas and sample data. It offers you a preview of your output that is built on sample data and is updated in real time as you make changes to your transformation. The Transform Message component has three different editor modes: - **Show Graphics** mode. The Graphical view displays both input and output data structures and a graphical representation of the mappings in your transformation. This mode also displays the Source Code view. ![A code block that displays JSON objects for buyer data.](/mulesoft/current/en-us/studio/_images/show-graphics-mode.png) - **Show Source With Trees** mode. The Graphical view displays both input and output data structures without the graphical representation of the mappings. This mode also displays the Source Code view. ![Here is a code snippet demonstrating how to transform a payload object into a new object with specific buyer data](/mulesoft/current/en-us/studio/_images/source-with-trees-mode.png) - **Source Only** mode. The Graphical view shows only the input data structure along with the Source Code view. ![A code block displaying a payload object with buyer details](/mulesoft/current/en-us/studio/_images/source-code-mode.png) You can define your default editor mode in the DataWeave preferences: 1. Navigate to **Anypoint Studio** > **Preferences**. 2. Under **Anypoint Studio** > **DataWeave**, select the default editor mode ![A menu displaying DataWeave preferences](/mulesoft/current/en-us/studio/_images/editor-mode-preference.png) To improve your experience with the Transform Message component and properly manage your flow’s metadata, consider the following tips: - Before creating your mapping, configure everything else on the flow. You can use Datasense to improve to expose your transformation’s input and output metadata. See the [DataSense](https://docs.mulesoft.com/studio/datasense-concept) article for more information. - To filter what you see from the input or output structures, click the magnifying glass icon ![A magnifying glass icon](/mulesoft/current/en-us/studio/_images/tips-transform-message-ui-studio-69e11.png) at the top of either section and then start typing the name of a field. - Select an element in the output pane to have its corresponding line in the DataWeave code highlighted. - If an input field is mapped to two or more output fields, you can right-click it and then select which of the multiple outputs you want to highlight in the DataWeave code. ## See Also - [Workflow: Create a Mapping](https://docs.mulesoft.com/studio/workflow-create-mapping-ui-studio) - [Change the Target Output of a Transformation](https://docs.mulesoft.com/studio/change-target-output-transformation-studio-task) - [Add Another Output Target](https://docs.mulesoft.com/studio/add-another-output-transform-studio-task) - [Move Transformations to Separate Files](https://docs.mulesoft.com/studio/move-transformations-separate-file-studio-task) - [DataWeave language](https://docs.mulesoft.com/mule-runtime/latest/dataweave) --- product: Studio --- # Troubleshoot Issues with Platform Content in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio uses your system’s default layout engine to render the Anypoint Platform UI. If you are experiencing issues visualizing web content such as the Runtime Manager UI when deploying an application to Anypoint Platform, or Exchange when browsing assets for your project, configure Studio to use a Mozilla/XULRunner runtime environment as its underlying renderer for the Web UI. - [Windows](https://docs.mulesoft.com/studio/studio-xulrunner-wx-task) - [Linux](https://docs.mulesoft.com/studio/studio-xulrunner-lnx-task) - [macOS](https://docs.mulesoft.com/studio/studio-xulrunner-unx-task) ## See Also - For more information about this configuration, check the [Eclipse Documentation resource](https://eclipse.dev/eclipse/swt/). --- product: Studio --- # Troubleshoot Java and Mule Runtime Compatibility Issues > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Modules in your Mule project can have compatibility issues with the Java version or Mule runtime version that Studio uses. Select a compatible JRE or update your modules to avoid deployment errors. If you change the Java or Mule runtime versions in your project, consider these facts: - Mule runtime 4.4 and earlier works with Java 8 and 11. - Mule runtime 4.6 works with Java 8, 11, and 17. - Standard support for Java 8 and 11 ends in March 2025 for Mule 4.8 Edge and August 2025 for 4.6 LTS, so plan your upgrade path for apps that are running on Java 8 or 11 accordingly. - Studio 7.21 and later builds and runs projects on Java 17 by default. To use Mule 4.9 and later, upgrade your apps to run on Java 17. ## Mule Runtime and Java Compatibility in Studio This table shows the compatibility between Mule runtime and Java versions in Studio:
Studio VersionMule Runtime VersionJava 8Java 11Java 17

7.22 and later

  • 4.13.x

  • 4.12.x

  • 4.11.x

  • 4.10.x

  • 4.9.x (LTS) and later

  • 4.8.x

  • 4.6.x (LTS)

No

No

Yes

7.20

  • 4.8.x

  • 4.6.x (LTS)

Yes

Yes

Yes

  • 4.4.x

Yes

Yes

No

See the [Studio release notes](https://docs.mulesoft.com/studio/studio-release-notes) for the latest information about compatibility. When you create a project, Studio uses its default JRE. When you select a module, Studio displays the latest version of the modules compatible with your JRE and Mule runtime. If you select a different JRE for your project and don’t update your module to a compatible version, your project fails at deployment. To avoid deployment errors, you must [select a JRE](https://docs.mulesoft.com/studio/change-jdk-config-in-projects) that is compatible with the current Mule runtime used in Studio. If needed, [update your modules](https://docs.mulesoft.com/studio/update-modules) to select a compatible version. ## See Also - [Java Support](https://docs.mulesoft.com/general/java-support) --- product: Studio --- # Update an Imported API Specification to the Latest Version > For the full documentation index, see: https://docs.mulesoft.com/llms.txt When you import an API spec as a dependency, you can update the API spec version in your Studio project if there’s a newer version available. To update the API spec: 1. In **Package Explorer**, right-click the Mule project that contains the API spec to update. 2. Select **API Specs** > the name of your API > **Update Version**. After you update the API spec, you can accept or deny that Studio regenerates the flows based on the new version. To manually generate a flow for the updated API, right-click the Mule project where you updated the API spec, and select **API Specs** > the name of your API > **Generate Flows**. You can manage the API specs in your project that are linked to Exchange from the API spec project management view by clicking the **Manage Mule Project APIs** icon (![2%](/mulesoft/current/en-us/studio/_images/manage-project-api-icon.png)) in the taskbar. ![The blue dot and the \*Update version\* button are highlighted in the API property window.](/mulesoft/current/en-us/studio/_images/update-api-version.png)
1The blue dot indicates a new version of the API spec is available.
2Click Update version and Studio regenerates the flow based on the new version of the API spec.
--- product: Studio --- # Update Anypoint Studio, Mule Runtime, and MUnit with Update Sites > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Studio uses update sites to update both itself and embedded versions of Mule runtime engine and MUnit. > [!NOTE] Corrupted files or incompatible dependencies often cause Studio update errors. To ensure > stability and avoid residual configuration issues, perform a clean installation of the latest > Studio version. ## Access an Update Site 1. Navigate to **Help** > **Install New Software**. 2. In the **Work with** field, select one of the update sites. ### Add Additional Update Sites To add a new update site for installing additional components to Studio: 1. Navigate to **Help** > **Install New Software**. 2. Click **Add**. 3. In **Name**, add a name to identify the update site. 4. In **Location**, type the URL of the update site. 5. Click **OK**. ### Add a Local Update Site To add a local update site ensure that your update site is a JAR or ZIP file format and complete these steps: 1. Navigate to **Help** > **Install New Software**. 2. Select **Add**. 3. In **Location**, select **Archive**. 4. Select the ZIP or JAR file of your update site. 5. In **Name**, add a name to identify the update site. 6. Select **OK** 7. Follow the instructions that appear to complete the update site installation. ## Allow Connection to Update Site Through Firewall If you’re on a network that has firewall restrictions, you must allow the URLs of the update sites to download extensions: 1. Navigate to **Help** > **Install New Software**. 2. Click **Manage**. The list of available software is shown. 3. Add the URLs from the **Location** column to your firewall list of allowed URLs. ## See Also - [Configure Anypoint Platform Credentials](https://docs.mulesoft.com/studio/set-credentials-in-studio-to) - [Add Modules to Your Project](https://docs.mulesoft.com/studio/add-modules-in-studio-to) --- product: Studio --- # Update Mule Modules in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Every time Studio starts, it checks for updated modules in your open projects. You can update to the latest minor version of your module or upgrade directly to the latest version available. Upgrading to a major version of a module can introduce compatibility issues in your project. Review the release notes for your modules before upgrading to a major version. > [!NOTE] If you [select Java 17 for your project](https://docs.mulesoft.com/studio/change-jdk-config-in-projects), Studio > automatically searches Exchange and suggests the modules and connectors to upgrade to make your > app compatible with Java 17. To manually check for module updates: 1. Ensure that you are logged in to Anypoint Platform. 2. In the menu bar, click **Manage Mule Modules** (![Mule icon](/mulesoft/current/en-us/studio/_images/manage-mule-modules-icon.png)). ![A Mule Palette screenshot with a prompt to open a Mule Configuration file or test to view the palette](/mulesoft/current/en-us/studio/_images/manage-mule-modules-location.png) > [!NOTE] This feature does not support modules that are inherited from a parent POM file. You can also manage all dependencies in your project: 1. In the menu bar, click **Manage dependencies** ![A stylized letter i in a house shape" 2%](/mulesoft/current/en-us/studio/_images/manage-dependencies.png). 2. Under **Mule Project**, select **Modules**. ![Table of modules, their names, versions, and package names, with an arrow pointing to ](/mulesoft/current/en-us/studio/_images/manage-modules.png) When Studio loads this wizard for the first time, it automatically checks for new versions of your modules. 3. Select the module that you want to update and click **Update version**. ![A dialog box will display a list of modules and their respective versions, allowing for selective updates](/mulesoft/current/en-us/studio/_images/update-module-version.png) Additionally, you can select **Update all dependencies to latest** to update all dependencies to the latest version of each. ![A dialog box displays the available modules with their version numbers and provides options to update, restore, apply, or close](/mulesoft/current/en-us/studio/_images/update-all-modules.png) 4. Select **Apply and close**. Studio updates your selected dependencies. This process works if you manage your dependencies using Studio. To use Maven properties to specify your module version: ```XML 1.5.23 org.mule.connectors mule-http-connector ${http_connector_version} mule-plugin ``` Contact your development team to update your custom Maven code to the latest version available. ## See Also - [Java Support](https://docs.mulesoft.com/general/java-support) - [Troubleshoot Java and Mule Runtime Compatibility Issues](https://docs.mulesoft.com/studio/compatibility-issues-runtime-java) --- product: Studio --- # Update Workspaces in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt When Anypoint Studio runs in a new workspace for the first time, it validates that the components of the projects in the workspace are updated and compliant with latest Studio 7.12.0 requirements. To manually validate your workspace navigate to **Help** > **Validate workspace compatibility**. ![Dialog box that provides the possibility to select the updates that you want to perform.](/mulesoft/current/en-us/studio/_images/update-workspaces.png)
1Studio lists all the open projects in your workspace that must update the Mule Maven Plugin version.
2Studio lists all the open projects in your workspace that must add the updated Exchange repository.
3Selecting Perform update enables Studio to update the repositories in the pom.xml file of the projects you selected.
## Mule Maven Plugin Update for Workspaces Created With Studio 7.1.x and Earlier Versions Studio simplifies the configuration of the `mule-artifact.json` file. When packaging your Mule application, this file is used to identify the application classloader configuration and settings, and the minimum required Mule runtime engine version required to run your application. Studio includes a new version of the Mule Maven Plugin that can automatically infer some of this required metadata. This makes it easier for you to keep track of all the declarations you need to make when exporting resources.
mule-artifact.json in 7.1.xmule-artifact.json in 7.12
{
  "configs": [
    "ch-usage-sync.xml"
  ],
  "redeploymentEnabled": true,
  "name": "ch-usage-sync",
  "minMuleVersion": "4.0.0",
  "requiredProduct": "MULE_EE",
  "classLoaderModelLoaderDescriptor": {
    "id": "mule",
    "attributes": {
      "exportedResources": []
    }
  },
  "bundleDescriptorLoader": {
    "id": "mule",
    "attributes": {}
  }
}
{
  "minMuleVersion": "4.0.0",
}
This simplification reduces the number of declarations you need to monitor during development. A fully configured `mule-artifact.json` file is still required by Mule runtime engine when executing the packaged application. You can find the generated `mule-artifact.json` file inside the `target` directory after packaging. The plugin inspects the metadata declared in `mule-artifact.json`. If a value is not declared, the plugin infers it from the application code before packaging. If other metadata is declared, the plugin uses it to package the application. If you update to the latest plugin but choose to keep your former descriptor files, you must manually monitor your descriptor metadata. When you update a workspace created using Studio 7.1.x and earlier, Studio overwrites your existing `mule-artifact.json` file. If you have other declarations in `mule-artifact.json` that you want to preserve (for example, `secureProperties`, or `redeploymentEnabled`), you should back up those files outside of your workspace, perform the migration, and then restore your old `mule-artifact.json` files. Do not to preserve the following declarations: - `configs` - `name` - `requiredProduct` - `classLoaderModelLoaderDescriptor` - `bundleDescriptorLoader` ## Exchange Update for Workspaces Created With Studio 7.11.x and Earlier Versions Because Anypoint Studio 7.12 adds support for comprehensive publication of assets to Exchange, your projects must add a dependency to the new version of Anypoint Exchange. When you open a project created with versions earlier than 7.12, Studio adds this new repository to your project pom.xml file: ```XML anypoint-exchange-v3 Anypoint Exchange V3 https://maven.anypoint.mulesoft.com/api/v3/maven default ``` You must add this new repository to take advantage of the latest publication process to Exchange. ## See Also - [Mule Application Packaging](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#mule-application-packaging) - [Class Loading Isolation](https://docs.mulesoft.com/mule-runtime/latest/about-classloading-isolation) --- product: Studio --- # Use Maven in Anypoint Studio > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Studio works with Maven to help you streamline the development process, making it easier to manage dependencies and build applications consistently across different machines. By default, Anypoint Studio comes with an embedded version of Maven that is used to build Mule projects. However, you can configure Studio to use your own installation of Maven. When using your own Maven installation in Anypoint Studio, you can control the version and configuration of Maven that is used in your project, and integrate your Mule project with other systems that use Maven, such as continuous integration and deployment tools. ## See Also - [Configure Studio to Use Your Own Maven](https://docs.mulesoft.com/studio/configure-studio-to-use-your-own-maven) - [Maven Preferences Reference](https://docs.mulesoft.com/studio/maven-preferences-reference) --- product: Studio --- # Workflow: Create a Mapping with the Transform Message UI > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Create a DataWeave mapping in Anypoint Studio by defining the input and output structures, mapping elements graphically, and previewing the result. 1. [Define Input and Output Structure of a Transformation](https://docs.mulesoft.com/studio/input-output-structure-transformation-studio-task) Provide expected input and required output structures. 2. [Graphically Construct a Mapping](https://docs.mulesoft.com/studio/graphically-construct-mapping-studio-task) Drag elements of the input and drop them onto elements of the output. You can also include fixed values and functions to build out the output. 3. [Preview the Output of a Transformation](https://docs.mulesoft.com/studio/preview-transformation-output-studio-task) Verify that the transformation produces the expected output. ## See Also - [Transform Message Component](https://docs.mulesoft.com/studio/transform-message-component-concept-studio) - [DataWeave Language](https://docs.mulesoft.com/mule-runtime/latest/dataweave)