JBoss.orgCommunity Documentation
In eXo Platform, the configuration is performed in a folder whose location is controlled by a system property named exo.conf.dir. By default, the gatein.sh startup script sets this property as follows:
-Dexo.conf.dir.name=gatein/conf
So the main entry point for the eXo Platform configuration is /gatein/conf/. This directory contains the following files:
configuration.properties: the main system configuration.
configuration.xml: contains the default portal container configuration.
portal/portal/configuration.xml: the main external customization entry point for the default portal container.
This section explains some parts of the eXo Platform internals so that you can understand the roles of these configuration files.
The eXo Platform Kernel collects runtime components in the portal containers. A portal container holds all components to run a portal instance. It serves portal pages under the servlet context for its name.
The default portal container in eXo Platform is simply called "portal". This explains why the default URL of the samples is http://localhost:8080/portal.
The default portal container can be configured directly inside exo.conf.dir.
However, eXo Platform is capable of running several portal instances simultaneously on the same server. Each instance can be configured and customized independently via files located at: /gatein/conf/portal/$PORTAL_NAME, where $PORTAL_NAME is the name of the portal container.
The name of the configuration file can be altered. Please refer to the PortalContainer section in the Kernel reference for more details on portal containers and other options to modify the location of the properties.
Services that run inside a portal container are declared via the xml configuration files like configuration.xml. Such files exist in jars, wars and below exo.conf.dir.
The .xml configuration files also serve as the main way to customize the portal via the multiple plugins offered by the eXo Platform components.
Additionally, the .xml files may contain variables that are populated via properties defined in configuration.properties. Hence, the configuration.properties file serves as exposing some selected variables that are necessary to configure eXo Platform in a server environment.
The system configuration is mostly done in the configuration.properties file. In most cases, this should be the only file for the system administrator to configure.
In the Tomcat bundle, this file is located at /gatein/conf/configuration.properties.
In the JBoss server, this file is located at server/default/conf/gatein/configuration.properties.
This file contains the built-in configuration for the "portal" portal container.
In most cases, you should not change this file.
In case you do not want to use "portal" as the default portal for your project, this file can be used to import another PortalContainerDefinition into the root container.
To learn more about how to configure a new portal container, please refer to the Kernel reference guide.
portal/portal/configuration.xml
This file is empty by default. This is where further customizations can be placed. Generally, custom configurations are provided by extension wars. However, this file is the last loaded by the kernel. It has a higher priority over any other configuration files, including extensions. So, you can override any internal component configuration.
This may turn handy services or configurations that are not exposed in configuration.properties.
For example, you can change the default WebDAV update policy by adding the following code to this configuration.xml file:
<component>
<key>org.exoplatform.services.jcr.webdav.WebDavServiceImpl</key>
<type>org.exoplatform.services.jcr.webdav.WebDavServiceImpl</type>
<init-params>
<value-param>
<name>auto-mix-lockable</name>
<value>false</value>
</value-param>
<value-param>
<name>def-folder-node-type</name>
<value>nt:folder</value>
</value-param>
<value-param>
<name>def-file-node-type</name>
<value>nt:file</value>
</value-param>
<value-param>
<name>def-file-mimetype</name>
<value>text/plain</value>
</value-param>
<value-param>
<name>update-policy</name>
<value>replace</value>
</value-param>
</init-params>
</component>