diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 83357c7bb..91545ef1f 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -114,6 +114,7 @@ ** xref:ref-connectors.adoc[Connectors] ** xref:ref-components.adoc[] ** xref:ref-deployment.adoc[Deployment Properties] +** xref:ref-launch-json-properties.adoc[launch.json Configuration Properties] ** xref:ref-acb-commands.adoc[MuleSoft Commands] ** xref:ref-mule-settings.adoc[MuleSoft Settings] ** xref:ref-proxy-settings.adoc[Proxy Settings] diff --git a/modules/ROOT/pages/int-create-secure-configs.adoc b/modules/ROOT/pages/int-create-secure-configs.adoc index dc83fdd91..4acec2ffd 100644 --- a/modules/ROOT/pages/int-create-secure-configs.adoc +++ b/modules/ROOT/pages/int-create-secure-configs.adoc @@ -672,5 +672,6 @@ You can create properties or change the value of existing properties, for exampl == See Also * xref:int-global-config-elements.adoc[] -* xref:mule-runtime::secure-configuration-properties.adoc[] * xref:int-run-mule-apps-with-properties.adoc[] +* xref:ref-launch-json-properties.adoc[] +* xref:mule-runtime::secure-configuration-properties.adoc[] diff --git a/modules/ROOT/pages/int-migrate-studio-to-acb.adoc b/modules/ROOT/pages/int-migrate-studio-to-acb.adoc index 2a40f0cf1..e55e91cdd 100644 --- a/modules/ROOT/pages/int-migrate-studio-to-acb.adoc +++ b/modules/ROOT/pages/int-migrate-studio-to-acb.adoc @@ -1,11 +1,34 @@ = Migrating Mule Projects from Anypoint Studio to Anypoint Code Builder :page-deployment-options: cloud-ide, desktop-ide -Migrate your Mule project from Anypoint Studio to Anypoint Code Builder by creating a deployable Mule application archive (JAR file). +Migrate your Mule project from Anypoint Studio to Anypoint Code Builder by creating a deployable Mule application archive (JAR file). With Anypoint Code Builder, you unlock a modern development experience with advantages like faster startup times, streamlined collaboration, and the integration of MuleSoft for Agentforce: Topic Center to enable API specifications for topics and agents. include::reuse::partial$beta-banner.adoc[tag="anypoint-code-builder"] +== Set Run and Debug Configurations + +In Anypoint Studio, you configure run and debug settings through the UI with tabs for arguments, environment, and other settings. In Anypoint Code Builder, you manage these configurations by editing the `launch.json` file in your project's `.vscode` folder. + +[%header,cols="40a,60a"] +|=== +| Studio UI | Anypoint Code Builder + +| *Run Configurations* > *Arguments* tab > *VM arguments* +| `mule.runtime.args` property in launch.json + +| *Run Configurations* > *Environment* tab +| Environment variables passed via `mule.runtime.args` (e.g., `-M-Denv=dev`) + +| *Run Configurations* > *Port* settings (if available) +| `mule.debug.port` property in launch.json + +| Configuration dropdown in toolbar +| Configuration dropdown in *Run and Debug* view +|=== + +For a reference of `launch.json` properties, see xref:ref-launch-json-properties.adoc[]. + == Export Your Mule Project to a Sharable JAR File in Anypoint Studio include::partial$acb-project-migration.adoc[tag="export-mule-projects-from-studio"] diff --git a/modules/ROOT/pages/int-run-mule-apps-with-properties.adoc b/modules/ROOT/pages/int-run-mule-apps-with-properties.adoc index 5eb4c9985..e93508473 100644 --- a/modules/ROOT/pages/int-run-mule-apps-with-properties.adoc +++ b/modules/ROOT/pages/int-run-mule-apps-with-properties.adoc @@ -12,6 +12,8 @@ You can pass properties when running Mule applications locally through different * <>: Apply the same arguments to all Mule applications * <>: Configure arguments for individual projects or create multiple configurations with different settings +For a reference of `launch.json` configuration properties, see xref:ref-launch-json-properties.adoc[]. + [[mule-settings-method]] == Configure Global Default Arguments diff --git a/modules/ROOT/pages/int-run-multiple-mule-apps.adoc b/modules/ROOT/pages/int-run-multiple-mule-apps.adoc index 639f7a46a..6ee44099b 100644 --- a/modules/ROOT/pages/int-run-multiple-mule-apps.adoc +++ b/modules/ROOT/pages/int-run-multiple-mule-apps.adoc @@ -105,6 +105,7 @@ The updated configuration is immediately available in the *Run and Debug* panel. == See Also * xref:int-run-mule-apps-with-properties.adoc[] +* xref:ref-launch-json-properties.adoc[] * xref:start-workspaces.adoc[] * xref:int-debug-mule-apps.adoc[] * xref:int-create-integrations.adoc[] diff --git a/modules/ROOT/pages/ref-launch-json-properties.adoc b/modules/ROOT/pages/ref-launch-json-properties.adoc new file mode 100644 index 000000000..8b8cb0ae1 --- /dev/null +++ b/modules/ROOT/pages/ref-launch-json-properties.adoc @@ -0,0 +1,284 @@ += Launch Configuration Properties Reference +:page-deployment-options: desktop-ide + +include::reuse::partial$beta-banner.adoc[tag="anypoint-code-builder"] + +Configure how Mule applications run and debug locally in Anypoint Code Builder by editing the `launch.json` file in your project's `.vscode` folder. Use launch configurations to pass runtime arguments, change debug ports, switch between environments, and run multiple applications concurrently. + +Use `launch.json` configurations to: + +* Pass runtime arguments (encryption keys, environment variables, JVM properties) +* Change the debug port to avoid conflicts when running multiple applications +* Create multiple run profiles for different environments (Development, QA, Production) +* Run multiple Mule applications concurrently in the same workspace +* Test the same application with different property values without editing code + +[[property-reference]] +== Configuration Properties Reference + +This table lists some common properties for launch configurations. + +[%header,cols="20a,15a,65a"] +|=== +| Property | Required | Description + +| `type` +| Yes +| Specifies the debugger type. Must be `"mule-xml-debugger"` for Mule applications or `"munit-xml-debugger"` for MUnit tests. + +| `request` +| Yes +| Specifies the launch type. Must be `"launch"` to start a new debug session. + +| `name` +| Yes +| Display name for this configuration. Appears in the Run and Debug view dropdown menu. Use descriptive names like `"Debug - Development"` or `"Run QA Environment"`. + +| `mule.project` +| No^1^ +| Path to a single Mule project. Use `"${workspaceFolder}"` for the current project. For multiple projects, use `mule.projects` instead. + +| `mule.projects` +| No^1^ +| Array of project paths for running multiple Mule applications concurrently. Example: `["${workspaceFolder:project1}", "${workspaceFolder:project2}"]`. See xref:int-run-multiple-mule-apps.adoc[]. + +| `mule.home` +| No +| Path to the Mule runtime home directory. Use `"${config:mule.homeDirectory}"` to reference the configured Mule installation. Typically not needed as it defaults to the configured runtime. + +| `mule.runtime.args` +| No +| Command-line arguments passed to the Mule runtime JVM. Use the `-M-D` prefix for system properties. + + + +Examples: + +`-M-Dencryption.key=myKey` (encryption key) + +`-M-Denv=dev` (environment selector) + +`-M-Dhttp.port=8082` (HTTP listener port) + + + +For more information, see xref:int-run-mule-apps-with-properties.adoc[] and xref:int-create-secure-configs.adoc[]. + +| `mule.debug.port` +| No +| Port number for the Mule debugger. Default: `6666`. Change this value when running multiple applications concurrently to avoid port conflicts. Example: `6667`, `6668`. + +| `noDebug` +| No +| Set to `true` to run the application without attaching the debugger. Useful for performance testing or when you don't need breakpoint debugging. Default: `false`. + +|=== + +^1^ Either `mule.project` or `mule.projects` must be specified, but not both. + +[[multiple-configs]] +== Creating Multiple Configuration Profiles + +Create multiple launch configurations to test different environments without modifying your application code. Each configuration can have different runtime arguments, debug ports, and environment settings. + +The following example shows three configurations for Local Development, QA, and a Mocked environment: + +[source,json,linenums] +---- +{ + "version": "0.2.0", + "configurations": [ + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Debug - Local Dev", + "mule.project": "${workspaceFolder}", + "mule.home": "${config:mule.homeDirectory}", + "mule.runtime.args": "${config:mule.runtime.defaultArguments} -M-Denv=dev -M-Dencryption.key=devKey123", + "mule.debug.port": 6666 + }, + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Debug - QA Environment", + "mule.project": "${workspaceFolder}", + "mule.home": "${config:mule.homeDirectory}", + "mule.runtime.args": "${config:mule.runtime.defaultArguments} -M-Denv=qa -M-Dencryption.key=qaKey456", + "mule.debug.port": 6667 + }, + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Run - Mocked Services", + "mule.project": "${workspaceFolder}", + "mule.home": "${config:mule.homeDirectory}", + "mule.runtime.args": "${config:mule.runtime.defaultArguments} -M-Denv=mock -M-Dmock.services=true", + "mule.debug.port": 6666, + "noDebug": true + } + ] +} +---- + +=== Switch Between Configurations + +To switch between run configurations: + +. Open the *Run and Debug* view from the activity bar (image:icon-run-debug.png["",18,18]). +. Click the configuration dropdown in the debug panel. +. Select the configuration to use ++ +(for example, *Debug - QA Environment*). +. Click *Start* (image:icon-start-debug.png["",18,18]) or press *F5* to launch. + +The selected configuration remains active until you select a different one. + +[[debug-port]] +== Configuring the Debug Port + +The default debug port for Anypoint Code Builder is `6666`. Change this port when: + +* Running multiple Mule applications concurrently in the same workspace +* The default port conflicts with another service on your system +* Testing port-specific debugging scenarios + +=== Change the Debug Port + +Add or modify the `mule.debug.port` property in your launch configuration: + +[source,json] +---- +{ + "configurations": [ + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Debug on Port 6667", + "mule.project": "${workspaceFolder}", + "mule.home": "${config:mule.homeDirectory}", + "mule.runtime.args": "${config:mule.runtime.defaultArguments}", + "mule.debug.port": 6667 + } + ] +} +---- + +Each concurrent application must use a unique debug port. For example, if running three applications simultaneously, configure them with ports `6666`, `6667`, and `6668`. + +[[common-examples]] +== Common Configuration Examples + +These are some configuration examples for common scenarios. + +=== Pass Encryption Keys for Secure Properties + +[source,json] +---- +{ + "configurations": [ + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Debug with Encryption Key", + "mule.project": "${workspaceFolder}", + "mule.home": "${config:mule.homeDirectory}", + "mule.runtime.args": "${config:mule.runtime.defaultArguments} -M-Dencryption.key=mySecretKey" + } + ] +} +---- + +For more information, see xref:int-create-secure-configs.adoc[]. + +=== Switch Between Environment Property Files + +[source,json] +---- +{ + "configurations": [ + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Development Environment", + "mule.project": "${workspaceFolder}", + "mule.home": "${config:mule.homeDirectory}", + "mule.runtime.args": "${config:mule.runtime.defaultArguments} -M-Denv=dev" + }, + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Production Environment", + "mule.project": "${workspaceFolder}", + "mule.home": "${config:mule.homeDirectory}", + "mule.runtime.args": "${config:mule.runtime.defaultArguments} -M-Denv=prod" + } + ] +} +---- + +This configuration works with property files named `dev.secure.yaml` and `prod.secure.yaml` that use the `${env}` variable in your Mule configuration XML. + +=== Run Multiple Applications Concurrently + +[source,json] +---- +{ + "configurations": [ + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Run Multiple Apps", + "noDebug": true, + "mule.projects": [ + "${workspaceFolder:salesforce-integration}", + "${workspaceFolder:database-service}", + "${workspaceFolder:api-gateway}" + ], + "mule.runtime.args": "${config:mule.runtime.defaultArguments}" + } + ] +} +---- + +For more information, see xref:int-run-multiple-mule-apps.adoc[]. + +=== Use Environment Variables + +Reference OS environment variables using the `${env:VARIABLE_NAME}` syntax: + +[source,json] +---- +{ + "configurations": [ + { + "type": "mule-xml-debugger", + "request": "launch", + "name": "Debug with Env Variables", + "mule.project": "${workspaceFolder}", + "mule.home": "${config:mule.homeDirectory}", + "mule.runtime.args": "${config:mule.runtime.defaultArguments} -M-Dencryption.key=${env:MULE_ENCRYPTION_KEY} -M-Denv=${env:MULE_ENV}" + } + ] +} +---- + +[[create-launch-json]] +== Create or Open launch.json + +To create or open the `launch.json` file: + +include::partial$acb-reusable-steps.adoc[tags="open-command-palette"] + +. Enter and select `Open 'launch.json'`. ++ +If the file doesn't exist, Anypoint Code Builder creates it in the `.vscode` folder of your project. + +. Edit the configuration properties as needed. + +. Save the file. + +The new or updated configuration appears in the *Run and Debug* view dropdown. + +[[see-also]] +== See Also + +* xref:int-run-mule-apps-with-properties.adoc[] +* xref:int-create-secure-configs.adoc[] +* xref:int-run-multiple-mule-apps.adoc[] +* xref:int-debug-mule-apps.adoc[] +* xref:int-test-munit.adoc[] +* xref:int-migrate-studio-to-acb.adoc[] +* xref:ref-mule-settings.adoc[]