eXo Platform 3.5

## Chapter 1. Configuration

This chapter provides you with the basic knowledge of configurations in GateIn 3.2 via 2 main topics:

- Database Configuration

  Instructions on how to configure the database for the JCR and the default identity store.

- Email Service Configuration

  Instructions on how to configure the email sending services.

After reading this chapter, you can extend more functions for your product and customize to your desires.

## 1.1. Database Configuration

GateIn 3.2 has two different database dependencies. One is the identity service configuration, which depends on Hibernate. The other is the Java content repository (JCR) service, which depends on JDBC API and can integrate with any existing datasource implementation.

When you change the database configuration for the first time, GateIn will automatically generate the proper schema (assuming that the database user has the appropriate permissions).

GateIn 3.2 assumes the default encoding for your database is latin1. You may need to change this parameter for your database so that GateIn 3.2 works properly.

The database configuration in GateIn can be divided into 2 main topics:

- Configure the database for JCR

- Configure the database for the default identity store

Configure the database for JCR

To configure the database used by JCR, edit the file: `$PLATFORM_JBOSS_HOME/server/default/conf/gatein/configuration.properties`.

For Tomcat, the file is located at `$PLATFORM_TOMCAT_HOME/gatein/conf/configuration.properties`.

Next, edit the values of driver, url, username and password with the values for your JDBC connection. To learn more, refer to your database JDBC driver documentation.

    gatein.jcr.datasource.driver=org.hsqldb.jdbcDriver

    gatein.jcr.datasource.url=jdbc:hsqldb:file:${gatein.db.data.dir}/data/jdbcjcr_${name}

    gatein.jcr.datasource.username=sa

    gatein.jcr.datasource.password=

By default, the name of the database is "jdbcjcr_${name}" - ${name} should be a part of the database name, as it is dynamically replaced by the name of the portal container extension. For example, `gatein-sample-portal.ear` defines "sample-portal" as the container name and the default portal defines "portal" as the container name.

In case of HSQL, the databases are created automatically. For any other databases, you need to create a database named "jdbcjcr_portal" (and "jdbcjcr_sample-portal" if you have `gatein-sample-portal.ear` in `$PLATFORM_JBOSS_HOME/server/default/deploy`). Note that some databases do not accept '-' in the database name, so you may have to remove `$PLATFORM_JBOSS_HOME/server/default/deploy/gatein-sample-portal.ear`.

Make sure the user has rights to create tables on jdbcjcr_portal, and to update them as they will be automatically created during the first startup.

Also, add your database's JDBC driver into the classpath - you can put it in `$PLATFORM_JBOSS_HOME/server/default/lib` (or `$PLATFORM_TOMCAT_HOME/lib`, if you are running on Tomcat).

MySQL example:

Configure the JCR to store data in MySQL and assume that you created a user named "gateinuser" with a password "gateinpassword". Next, create a database mygateindb_portal (remember that portal is required), and assign the rights to create tables to the users.

Add the MySQL's JDBC driver to the classpath, and finally edit `gatein.ear/portal.war/WEB-INF/conf/jcr/jcr-configuration` to contain the following:

    gatein.jcr.datasource.driver=com.mysql.jdbc.Driver
    gatein.jcr.datasource.url=jdbc:mysql://localhost:3306/mygateindb${container.name.suffix}
    gatein.jcr.datasource.username=gateinuser
    gatein.jcr.datasource.password=gateinpassword

Configure the database for the default identity store

By default, users are stored in a database. To change the database where users are stored, you need to edit the file:

For Jboss: `$PLATFORM_JBOSS_HOME/server/default/conf/gatein/configuration.properties`

For Tomcat: `$PLATFORM_TOMCAT_HOME/gatein/conf/configuration.properties`

You will find the same type of configuration as in `jcr-configuration.xml`:

    gatein.idm.datasource.driver=org.hsqldb.jdbcDriver
    gatein.idm.datasource.url=jdbc:hsqldb:file:${gatein.db.data.dir}/data/jdbcidm_${name}
    gatein.idm.datasource.username=sa
    gatein.idm.datasource.password

`See also`

- Email Service Configuration

## 1.2. Email Service Configuration

GateIn 3.2 includes an email sending service that needs to be configured before it can function properly. This service, for instance, is used to send emails to users who forgot their password or username.

Configure the outgoing email account

The email service can use any SMTP account configured in `$PLATFORM_JBOSS_HOME/server/default/conf/gatein/configuration.properties` (or `$PLATFORM_TOMCAT_HOME/gatein/conf/configuration.properties` if you are using Tomcat).

The relevant section looks like:

    # EMail
    gatein.email.smtp.username=
    gatein.email.smtp.password=
    gatein.email.smtp.host=smtp.gmail.com
    gatein.email.smtp.port=465
    gatein.email.smtp.starttls.enable=true
    gatein.email.smtp.auth=true
    gatein.email.smtp.socketFactory.port=465
    gatein.email.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

It is preconfigured for GMail, so that any GMail account can easily be used (simply use the full GMail address with username and password.

In corporate environments, if you want to use your corporate SMTP gateway over SSL, like in the default configuration, configure a certificate truststore containing your SMTP server's public certificate. Depending on the key sizes, you may then also need to install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for your Java Runtime Environment.

`See also`

- Database Configuration

Copyright © 2009-2012. All rights reserved. eXo Platform SAS