eXo Platform is packaged as a deployable enterprise archive defined by 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/start_eXo.sh
On Windows:
%TOMCAT_HOME%start_eXo.bat
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/stop_eXo.sh
On Windows:
%TOMCAT_HOME%stop_eXo.bat
If you have a similar message when you try to stop Tomcat:
Tomcat did not stop in time. PID file was not removed.
then you must stop the tomcat process by a Ctrl+C or kill 9 command. To perform a kill automatically, you can type:
stop_eXo.sh -force
instead. It is available only on Linux and OS X systems.
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:
start_eXo.sh: start eXo on Linux and OS X
start_eXo.bat: start eXo on Windows
bin/gatein-dev.sh: start eXo on Linux and OS X in developer mode
bin/gatein-dev.bat: start eXo on Windows in developer mode
start_eXo scripts launch eXo 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.
gatein-dev scripts launch eXo in developer mode with a few more JVM 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 | deactivates javascript and css merging for easier debugging |
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:
1. Copy files in jboss-root/server/default/deploy
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
2. Create a folder jboss-root/server/default/conf/gatein
Copy these files:
configuration.properties
configuration.xml
3. Copy these files in jboss-root/bin
exokey.pem
oauthkey.pem
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, add 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
5. Add eXo logging categories in jboss-root/server/default/conf/jboss-log4j.xml
<!-- 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%binrun.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
On Linux and OS X:
$JBOSS_HOME/bin/shutdown.sh
On Windows:
%JBOSS_HOME%binshutdown.bat
The server has stopped when you see the following message in your log/console:
INFO [org.jboss.bootstrap.microcontainer.ServerImpl] (JBoss Shutdown Hook) Shutdown complete
eXo comes with different runtime profile, that you can use if you want to customize what modules you want to enable/disable in you eXo instance.
start_eXo commands accept a comma-separated list of profiles. The following profiles are supported :
| Profile | Description |
|---|---|
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 composite profiles:
| Profile | Description |
|---|---|
minimal | contains GateIn + WCM |
default | contains all except workflow (gatein,ide,wcm,collaboration,social,knowledge) |
all | all available modules |
For example:
./start_eXo.sh default,workflow # start all modules including workflow ./start_eXo.sh collaboration,knowledge # start exo with gatein,wcm, collaboration and knowledge enabled ./start_eXo.sh minimal,social # start with social, gatein and wcm