Pode-se obter o
Nuxeo EP, versão 5.1.6, acesse os endereços
www.nuxeo.com/en ou
www.nuxeo.org ou efetue o download da aplicação por linha de comando como em:
# wget http://www.nuxeo.org/static/NuxeoEP/nuxeo-ep-5.1.6.GA-2.tar.gz
Assim que o download do arquivo for finalizado, descompacte-o com:
# gunzip nuxeo-ep-5.1.6.GA-2.tar.gz
# tar xf nuxeo-ep-5.1.6.GA-2.tar
Ou de uma única vez com o comando:
# tar -zxvf nuxeo-ep-5.1.6.GA-2.tar.gz
O sistema já esta pronto para rodar com as configurações básicas, utilizando o HSQL [3], um servidor de banco de dados open source embutido escrito inteiramente em Java. Para utilizá-lo, basta rodar o script de inicialização localizado em /nuxeo-ep-5.1.6.GA/bin:
# ./run.sh
e acessar através do seu navegador o endereço:
http://localhost:8080/nuxeo
Configuração do Nuxeo EP com MySQL
Configurar o Nuxeo EP com um SGBDR (Sistema de Gerenciamento de Banco de Dados Real) traz algumas vantagens, bastando apenas configurar o servidor para a utilização dos serviços e o armazenamento. O Nuxeo gerencia vários tipos de dados: documentos, relações, usuários, grupos etc. Cada tipo de dado tem seu próprio local de armazenamento e pode ser configurado separadamente [4].
A fim de definir o MySQL como repositório back-end, deve-se primeiramente instalar o driver
JDBC (Java Database Connectivity) chamado MySQL Connector/J [5], que fornece conectividade para aplicações clientes desenvolvidas em programação Java. Para isso, é necessário efetuar o download do MySQL Conector/J 5.1 [6], como no comando:
# wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz/from/http://mysql.cce.usp.br/
Este download é feito do mirror HTTP Brazil [Universidade de São Paulo - CCE]. Assim que o download do arquivo for finalizado, descompacte-o com:
# gunzip mysql-connector-java-5.1.7.tar.gz
# tar mysql-connector-java-5.1.7.tar
Ou de uma única vez com o comando:
# tar -zxvf mysql-connector-java-5.1.7.tar.gz
Acesse o diretório descompactado. O driver de nome mysql-connector-java-5.1.7-bin.jar deve ser instalado em $JBOSS_HOME/server/default/lib [7], onde $JBOSS_HOME é o diretório onde está instalado o programa - /opt/nuxeo-ep-5.1.6.GA. Para instalá-lo, basta copiá-lo para o diretório mencionado.
Para configurar a fonte de dados, copie o arquivo $JBOSS_HOME/docs/examples/jca/mysql-ds.xml para $JBOSS_HOME/server/default/deploy. Edite-o substituindo MySqlDS em <jndi-name>MySqlDS</jndi-name> pelo nome da sua base no MySQL, alterando as configurações de conexão em <connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url> e colocando o nome do usuário e senha para acesso a base.
Exemplo:
<datasources>
<local-tx-datasource>
<jndi-name>nuxeo</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>nome_do_usuario</user-name>
<password>senha_do_usuario</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
Após configurar a conexão do MySQL é necessário configurar o Nuxeo Core, usando o Jackrabbit como back-end, para armazenar os dados do repositório no MySQL.
Edite o arquivo $JBOSS_HOME/server/default/deploy/nuxeo.ear/config/default-repository-config.xml alterando as duas seções PersistenceManager que definem as várias configurações de conexão com o banco de dados. Para Jackrabbit [8], há um persistence manager especifico para MySQL. Deve-se usar o parâmetro org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager.
Exemplo:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost/nuxeo"/>
<param name="user" value="nome_do_usuario"/>
<param name="password" value="senha_do_usuario"/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="jcr_${wsp.name}_"/>
<param name="externalBLOBs" value="true"/>
</PersistenceManager>
(...)
<!-- Versioning configuration. -->
(...)
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost/nuxeo"/>
<param name="user" value="nome_do_usuario"/>
<param name="password" value="senha_do_usuario"/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="jcr_ver_"/>
<param name="externalBLOBs" value="true"/>
</PersistenceManager>
Cada serviço pode usar uma fonte dados dedicada para definir a conexão da base de dados. Para modificar a definição da fonte de dados altere o arquivo $JBOSS_HOME/server/default/deploy/nuxeo.ear/datasources/unified-nuxeo-ds.xml.
Exemplo para conexão com o MySQL:
<!-- Configuration for MySQL -->
<local-tx-datasource>
<jndi-name>NuxeoDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/nuxeo</connection-url>
<driver-class>org.mysql.jdbc.Driver</driver-class>
<user-name>nome_do_usuario</user-name>
<password>senha_do_usuario</password>
<check-valid-connection-sql>select count(*) from dual</check-valid-connection-sql>
</local-tx-datasource>
Por fim o serviço de relação usa uma fonte de dados para definir um armazém de dados. Modificar a base não é o suficiente, você ainda precisa informar ao Jena qual dialeto é usado, pois isso não é autodetectado. Para isso edite o arquivo sql.properties em $JBOSS_HOME/server/default/deploy/nuxeo.ear/config/ e altere a definição da propriedade org.nuxeo.ecm.sql.jena.databaseType para MySQL.