Application Settings
Documentation on the expansionSettings.xml in general can be found [here]
(/docs/reference-guides/general/expansion-settings).
However, applicationsApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. can further be configured with settings in the ApplicationInstance. These settings active the relevant expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. of the resources defined in your expansionSettings.
project
├── conf
├── applications
├── components
├── settings
. ├── businessLogicSettings
│ └── tomee_posgres_hibernate.xml
├── globalOptionSettings
│ └── modern.xml
├── presentationSettings
│ └── knockout_bootstrap.xml
└── technicalInfrastructure
│ └── java_21.xml
You can model multiple application instancesApplication Instance (ApplicationInstance). A target technology configuration defining how an application's architecture layers are built and executed. that each use their own set of settings. This can be used to build an applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. for different technology stacks (e.g. using a different database technology).
<applicationInstance name="applicationInstance1">
<globalOptionSettings name="Modern"/>
<presentationSettings name="Knockout Bootstrap"/>
<businessLogicSettings name="TomEE Postgres Hibernate"/>
<technicalInfrastructure name="Java 21"/>
</applicationInstance>
Global Option Settings
Here you can toggle several features for your applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.
<globalOptionSettings name="Modern">
<counterDefault>IDENTITY</counterDefault>
<useJavaEESecurity>FALSE</useJavaEESecurity>
<buildEngine>MAVEN</buildEngine>
<beanInterfacePolicy>BOTH</beanInterfacePolicy>
<enforceHttpMethod>false</enforceHttpMethod>
<useCsrfProtection>false</useCsrfProtection>
<generateArtifactLabel>false</generateArtifactLabel>
</globalOptionSettings>
List of GlobalOptionSettings features
These settings have been deprecated. See Expanders 5.15.0
| option | description |
|---|---|
| counterDefault | Can be GLOBAL or IDENTITY. If set to GLOBAL, new database id's will be taken from a global counter. |
| useJavaEESecurity | Disables authentication using the account Component. You can also leave the account Component out of your applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. or use the option struts.security.custom. |
| buildEngine | Technology used to build the ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.. Currently only Maven is supported. |
| beanInterfacePolicy | Can be BOTH (default), LOCAL or REMOTE. This will define whether bean classes in the ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. have a Local and/or Remote interface. |
| enforceHttpMethod | If set to true, requests using the wrong http methods will be rejected. |
| useCsrfProtection | If set to true, requests are implemented with a mechanism to protect against Cross Site Request Forgery attacks. |
| generateArtifactLabel | If set to true, versions of the artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. in the ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. will get a postfix to make them unique for the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.. |
Presentation Settings
Here you can configure the technologies used in the view layerLayerLogical separation of functionality within a single system/application, focused on code organization..
<presentationSettings name="Knockout Bootstrap">
<version>2.1</version>
<viewStyler name="BOOTSTRAP"/>
<viewController name="KNOCKOUT"/>
</presentationSettings>
Business Logic Settings
Here you can configure technologies used in the backend.
<businessLogicSettings name="TomEE Postgres Hibernate">
<targetDatabase name="POSTGRESQL"/>
<persistenceProvider name="HIBERNATE"/>
<transactionProvider name="EJB3"/>
<applicationServer name="TOMEE"/>
</businessLogicSettings>
Technical Infrastructure
Here you can define versions of underlying technologies.
<technicalInfrastructure name="Java 21">
<javaVersion>jdk21</javaVersion>
<jeeVersion>8</jeeVersion>
</technicalInfrastructure>