eXo Platform is packaged as a deployable enterprise archive, per the Java EE specification, and as a configuration directory.
The easiest way to install eXo Platform is to take the default bundle. This is a ready-made package on top of Tomcat 6 application server, so you simply need to copy the bin/tomcat6-bundle/ directory to your server.
eXo Platform leverages the application server on which it is deployed. This means, to start and stop eXo Platform, you only need to start and stop your application with the default commands.
On Linux and OS X:
$TOMCAT_HOME/bin/gatein.sh run
On Windows:
%TOMCAT_HOME%\bin\gatein.bat run
The server has started when you see the following message in your log/console:
INFO: Server startup in 353590 ms
On Linux and OS X:
$TOMCAT_HOME/bin/shutdown.sh
On Windows:
%TOMCAT_HOME%\bin\shutdown.bat
The server has stopped when you see the following message in your log/console:
INFO: Stopping Coyote HTTP/1.1 on http-8080
eXo comes with several builtin startup scripts :
gatein.sh : start eXo on Linux and OS X
gatein.bat : start eXo on Windows
gatein-dev.sh : start eXo on Linux and OS X in developer mode
gatein-dev.bat : start eXo on Windows in developer mode
The normal mode starts with the following JVM options :
-Xms256m -Xmx1024m -XX:MaxPermSize=256m -Djava.security.auth.login.config=../conf/jaas.conf -Dexo.conf.dir.name=gatein/conf -Dexo.profiles=default
-Xms | Minimal heap size (defaults to 256 MB) |
-Xmx | Maximal Heap Size of (defaults to 1 GB) |
-Djava.security.auth.login.config
| path to the JAAS security file where the security domains are and JAAS authentication modules are declared |
-Dexo.conf.dir.name | path where eXo will start looking at configuration.properties and configuration.xml |
-Dexo.profiles | the list of comma-separated exo profiles to activate |
This is enough to start and run a demo, but you will need to adjust these values for a production setup.
The developer mode scripts add a few more options.
-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dcom.sun.management.jmxremote -Dorg.exoplatform.container.configuration.debug -Dexo.product.developing=true
-Dcom.sun.management.jmxremote | activates the JMX remoting |
-Xdebug Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
| enables remote debugging |
-Dorg.exoplatform.container.configuration.debug | the container will log to the console what xml files it loads |
-Dexo.product.developing=true | desactivates javascript and css merging for easier debugging |
Since eXo Platform 3.0.1
We provide EARs packages to deploy in your existing JBoss application server. They are located in the folder bin/jboss5-eap-ears/.
To install eXo Platform on JBoss, follow these steps:
gatein-ds.xml
gatein.ear (it must remain a folder named gatein.ear)
starter-gatein.ear
acme-website.ear
office-portal.ear
platform-extension.ear
exo-collaboration.ear
exo-social-extension.ear
gatein-exo-ks.ear
gatein-wcm-extension-plf.ear
gatein-workflow-extension-plf.ear
Copy these files:
configuration.properties
configuration.xml
On Linux, add these lines at the end of jboss-root/bin/run.conf:
# Platform environment variables EXO_PROFILES="-Dexo.profiles=default" EXO_OPTS="-Dexo.product.developing=false -Dexo.conf.dir.name=gatein -Dgatein.data.dir=../gatein" REMOTE_DEBUG="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dcom.sun.management.jmxremote -Dorg.exoplatform.container.configuration.debug" EXO_XML="-Djavax.xml.stream.XMLOutputFactory=com.sun.xml.stream.ZephyrWriterFactory -Djavax.xml.stream.XMLInputFactory=com.sun.xml.stream.ZephyrParserFactory -Djavax.xml.stream.XMLEventFactory=com.sun.xml.stream.events.ZephyrEventFactory" JAVA_OPTS="$JAVA_OPTS $EXO_OPTS $EXO_PROFILES $EXO_XML"
On Windows, at these lines at the end of jboss-root/bin/run.conf.bat:
rem # Platform environment variables set "EXO_PROFILES=-Dexo.profiles=default" set "EXO_OPTS=-Dexo.product.developing=false -Dexo.conf.dir.name=gatein -Dgatein.data.dir=../gatein" set "REMOTE_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dcom.sun.management.jmxremote -Dorg.exoplatform.container.configuration.debug" set "EXO_XML=-Djavax.xml.stream.XMLOutputFactory=com.sun.xml.stream.ZephyrWriterFactory -Djavax.xml.stream.XMLInputFactory=com.sun.xml.stream.ZephyrParserFactory -Djavax.xml.stream.XMLEventFactory=com.sun.xml.stream.events.ZephyrEventFactory" set "JAVA_OPTS=%JAVA_OPTS% %EXO_OPTS% %EXO_PROFILES% %EXO_XML%"
Adapt to your needs:
You can use another implementation of SAX by changing the class names in the EXO_XML variable, for example: com.sun.xml.internal.stream.XMLOutputFactoryImpl
To debug the application, simply add $REMOTE_DEBUG in the JAVA_OPTS variable
<!-- Limit the JSR170 categories -->
<category name="exo.jcr">
<priority value="INFO"/>
</category>
<!-- Limit the JSR-168 and JSR-286 categories -->
<category name="org.exoplatform.services">
<priority value="INFO"/>
</category>
On Linux and OS X:
$JBOSS_HOME/bin/run.sh
On Windows:
%JBOSS_HOME%\bin\run.bat
The server has started when you see the following message in your log/console:
INFO [org.jboss.bootstrap.microcontainer.ServerImpl] (main) JBoss (Microcontainer) [5.0.1 (build: ...)] Started in 3m:29s:259ms
By passing -Dexo.profiles=p1,p2,p3..., you can enable modules.
You can enable/disable select modules if they are not in use.
collaboration: enables eXo Collaboration module
knowledge: enables eXo Knowledge module
social: enables eXo Social module
workflow: enables the Workflow add-on within the eXo Content module
Additionally, you can use these profiles:
minimal: contains GateIn + WCM
default: contains all except workflow (gatein,ide,wcm,collaboration,social,knowledge)
all: all available modules
Profiles are pluggable, so you can combine them together to shape eXo Platform to your needs. e.g : -Dexo.profiles=default,workflow will take the default profile and workflow