## 4.1.8.1.9.3  (Experimental) Namespaces
Use this feature to prevent conflicts for applications deriving from the same MTA, but with different version, features, and configuration.
<!-- image -->
##  Restriction
- This feature is experimental. We advise you first try it out in a non-productive environment.
- The namespace can only be passed as an argument to the deployment call, and cannot be modelled directly in the descriptor.
- The namespace cannot be longer than 36 characters.
## Prerequisites
- Make sure the version of your MultiApps Plug-in is 2.5.0 or higher. If required, use the procedure described in Install the MultiApps CLI Plugin in the Cloud Foundry Environment [page 2553] to update it.
## Feature Description
By using the namespaces feature, you can deploy and operate a single multitarget applicaton multiple times within a single space. This is useful when you have to avoid conflicts among applications or entities. It modifies the modules and resources by adding a namespace at the beginning of the application names, service names, and routes.
The feature is employed by adding the parameter --namespace , when you input the deployment command in the Cloud Foundry Command Line Interface (CF CLI), and by modifying the deployment descriptor as described below. Using a more detailed configuration, you can include or exclude specific resources from having the namespace feature applied to them, namely:
- resources
- modules
- routes.
When set so, the excluded resources are shared among all namespaces of this MTA archive.
## Fine-Grained Configuration
You can configure the application of namespaces at different levels according to your needs. When the same apply-namespace parameter is configured in several places for one MTA deployment, a certain order of priority applies. This order provides flexibility if you want to set a namespace for all applications, application routes, and services that are part of the MTA, but at the same time, you need to define a specific namespace for a particular application, application route, or service.
The priority for apply-namespace parameters in descending order is the following:
1. Operation parameters / Command-Line Options (Highest Priority) Operation parameters passed during the MTA deployment have the highest priority. If you provide an apply-namespace parameter as a command-line option, it overrides any other parameters defined in the MTA descriptor. Operation parameters apply to all applications. There are four available options for applying a namespace:
- --apply-namespace-app-names true/false : Applies namespace to application names.
- --apply-namespace-service-names true/false : Applies namespace to service names.
- --apply-namespace-app-routes true/false : Applies namespace to application routes.
- --apply-namespace-as-suffix true/false : Applies namespace either as prefix or suffix.
## Example:
When you deploy using the command cf deploy … --namespace test --apply-namespace-appnames true --apply-namespace-service-names false --apply-namespace-app-routes true , all application names and application routes will have the prefix ' test'. Service names will remain unchanged, as specified by the --apply-namespace-service-names false option. Other applynamespace parameters will not affect this configuration.
If you use the command cf deploy … --apply-namespace-app-names true --applynamespace-service-names false --apply-namespace-app-routes true without the ' --namespace ' option, the apply-namespace options will be ignored.
For more information about apply-namespace options, refer to the Command Options Overview table in deploy.