Default portal container
eXo Platform comes with a pre-configured PortalContainer named "portal". The configuration of this portal
container ties the core and the extended services stack. The default Portal Container is started from
portal.war
and naturally maps to the /portal URL.
The portal.war
is the base that can be overridden by other extensions,
so you should make new customizations into your own extension. This allows you to organize and control your site easily and effectively.
Example: Taking a look at the login page in eXo Platform
This page is initially defined in portal.war
, then overridden by platform-extension.war
which is the main extension in eXo Platform.
Login page defined by portal.war
Login page defined by platform-extension.war
Thus, if you want to extend the site context easily, you only need to
make your desired modifications on your own extension that may be named
custom-extension.war
and should avoid directly modifying
the extensions provided by eXo Platform. As
a result, your upgrades will be totally independent of the
platform-extension.war
and portal.war
.
eXo Platform is built by extensions on the top of GateIn.
This extensibility is achieved via 2 advanced features of the PortalContainer:
A unified ClassLoader: Any classpath resource, such as property files, will be accessible as if it was inside portal.war
.
This is valid only for resources but not for Java classes.
A unified ServletContext: Any web resources contained in your custom-extension.war
will be accessible from /portal/ uri.
Portal extension
When extending an existing Portal Container, the name of the portal in the extension's configuration is the same as that of the existing Portal Container. Thus, the configuration (and other aspects) of the existing Portal Container can be customized by the extension. See the following diagram to learn about the extension mechanism in eXo Platform: