# Mule application property sources and providers

*MuleSoft Platform Integration Architect Study Guide · Designing and developing Mule applications · Last updated November 13, 2026 · https://www.certifyforce.com/study-guide/mulesoft-platform-integration-architect/designing-and-developing-mule-applications/mule-application-property-sources-and-providers*

Where a Mule application's property values can come from (placeholders, global properties, properties files, system and environment properties, deployment properties, built-ins), which source wins, and when a custom configuration properties provider is the right tool.

- Certification: Salesforce MuleSoft Platform Integration Architect
- Exam section: Designing and developing Mule applications
- Study guide: https://www.certifyforce.com/study-guide/mulesoft-platform-integration-architect

**Official exam objective:**

> Select among available options for setting Mule application properties.

## What the exam expects

- Choose the right property source (global property, properties file, file property, system property, environment variable, deployment property) for a given requirement.
- Predict which value wins when the same property name is defined in several sources, and which built-in properties must be left alone.
- Set JVM system properties for a standalone Mule runtime from the command line or `wrapper.conf`, including properties in included wrapper files.
- Decide when a custom configuration properties provider fits and when a changing value needs a connector operation instead.
- Recognize how Mule discovers a custom provider factory, matches it to a configuration element and routes placeholders to it.

**Property placeholder:** an Ant-style `${name}` reference in Mule configuration that Mule resolves from a property source. **Configuration properties:** values loaded from a `.yaml` or `.properties` file by `<configuration-properties>`. **System property:** a JDK property set when the Mule JVM starts. **Deployment property:** a value supplied at deployment, for example in Runtime Manager. **Custom configuration properties provider:** a Mule SDK module that resolves placeholders from a source you implement ([Configuring Properties](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties), [Custom provider](https://docs.mulesoft.com/mule-runtime/latest/custom-configuration-properties-provider)).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Properties file formats | `.yaml` and `.properties`; `String` is the only type | [Configuring Properties](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties) |
| Properties file location | `src/main/resources`, or an absolute path | [Configuring Properties](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties) |
| Same key in two loaded files | The first definition is preserved | [Configuring Properties](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties) |
| Hierarchy, highest first | Deployment, system, environment, application, global | [Configuring Properties](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties) |
| Built-in properties | `app.home`, `app.name`, `domain.name`, `api.name`, `mule.home`; never overwrite | [Configuring Properties](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties) |
| Standalone start command | `mule start -M-Dmule.<variable-name>=<value>` | [System Properties](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system) |
| Studio | VM arguments field, names prefixed with `-D` | [System Properties](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system) |
| Include-file wrapper entries | High unique `<n>` plus `wrapper.ignore_sequence_gaps=TRUE` | [System Properties](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system) |
| Factory discovery | SPI, via `META-INF/services` | [Custom provider](https://docs.mulesoft.com/mule-runtime/latest/custom-configuration-properties-provider) |
| Factory selection | Element namespace and name match `getSupportedComponentIdentifier()` | [Custom provider](https://docs.mulesoft.com/mule-runtime/latest/custom-configuration-properties-provider) |
| Targeting a resolver | A unique `PREFIX::` in the placeholder | [Custom provider](https://docs.mulesoft.com/mule-runtime/latest/custom-configuration-properties-provider) |
| Values that change at runtime | Connector operation, not a properties provider | [Custom provider](https://docs.mulesoft.com/mule-runtime/latest/custom-configuration-properties-provider) |

## Check yourself

- Why can a custom configuration properties provider not support connectivity testing?
- When you customize the sample custom-provider project, which class holds the `EXTENSION_NAME` constant you rename?
- What is the earliest Mule version the sample custom-provider project is compatible with?
- When the sample module's behavior changes, where do you add test cases for it?

## Sources

- [Configuring Properties](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties)
- [System Properties](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)
- [Custom Configuration Properties Provider](https://docs.mulesoft.com/mule-runtime/latest/custom-configuration-properties-provider)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 9 linked practice questions, and unlimited timed mock exams are included with the MuleSoft Platform Integration Architect pack (USD $19): https://www.certifyforce.com/practice-exams
