Tuxitecte

Nuxeo Tips : Installation et Parametrage

Bonjour à tous !

Je profite d'un petit temps mort pour vous parler de Nuxeo!

En effet, ayant eu l'opportunité d'installer, paramétrer et personnaliser cette solution dans un environnement windows, je me suis dis qu'il était bon de partager certaines informations avec vous.

Installer Nuxeo

Comment installer Nuxeo ?
Par défaut, utilisez l'installeur de Nuxeo 5.2 que l'on peut retrouver en téléchargement http://www.nuxeo.com/downloads/
Cet assistant permet d'avoir une très bonne base de départ. Il intègre en outre Nuxeo Shell (un vrai petit bijou pour les administrateurs!). Néanmoins il faut savoir qu'il embarque une base de données légère (Derby). Cette base est fâite pour les environnements de démonstrations, développements ou expérimentations. Il ne s'agit pas d'une base de production! Il faut donc paramétrer Nuxeo pour une autre BDD.


Comment paramétrer Nuxeo avec une base de données PostgreSQL ?
Pour les explications pas à pas, jetez un oeil à la FAQ : http://www.nuxeo.org/xwiki/bin/view/FAQ/ Rubrique Administration
Vous pouvez avoir plus d'informations dans le Nuxeo-Book http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-database-configuration.html ou Admin Book : http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-database-configuration.html

Et si vous êtes vraiment fainéant ... Télécharger les fichiers de configuration par défaut ci-dessous pour une configuration Nuxeo/PostgreSQL/VCS : A VENIR ;o)
PS : N'hésitez pas à lire le README.txt qui vous expliquera comment faire.


Quelles sont les configurations Nuxeo pour un environnement de Production ?

Pour la partie Nuxeo, les informations se trouvent http://www.nuxeo.org/xwiki/bin/view/Main/NuxeoProdSetup/

Pour la partie PostgreSQL, les informations sont là : http://www.nuxeo.org/xwiki/bin/view/FAQ/PostgreSQLSettings/

Vous avez maintenant une bonne base pour démarrer une mise en production au niveau système en tout cas. Il faut maintenant prendre en compte la partie fonctionnelle c'est à dire les différentes fonctionnalités que l'on veut ou non voir apparaitre. Pour cela intéressons nous aux possibilités offertes de paramétrer Nuxeo.


Paramétrer Nuxeo

Petite introduction
Comme j'ai coutume de le dire, dans les solutions d'ECM Open Source, il y a 3 types d'approches possibles.
  • L'approche Utilisateur : L'utilisateur ne sait que cliquer sur des boutons (Ce n'est pas un reproche ou une insulte mais c'est bien caricaturé par contre...)
  • L'approche Administrateur : L'administateur sait utiliser et modifier des fichiers humainement compréhensibles (XML, Properties, txt)
  • L'approche Developpeur/Intégrateur : Le développeur est omniscient et omnipotent. Il comprend et connait tout surtout la programmation.

Dans notre cas on va s'intéresser uniquement au niveau administrateur. En effet beaucoup de fonctionnalités sont paramétrables par des fichiers XML dans Nuxeo.

Pour illustrer ce niveau, je vous propose le cas d'utilisation suivant : Je souhaite augmenter le nombre de document affichés dans une espace. Par défaut cette valeur est fixée à 10. Si l'espace contient plus de 10 documents, alors la page de présentation va créer une pagination automatique de 10 en 10. Pour des questions de visibilité, je souhaite maintenant que cette valeur soit de 25.

Voyons voir quelles sont les approches possibles pour répondre à ce besoin

Tout d'abord dans une installation Nuxeo, il y a 3 répertoires à retenir pour un administrateur :

  • NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\System
    Il s'agit du répertoire qui contient l'ensemble du coeur de l'application Nuxeo.
  • NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\plugins
    Ce répertoire contient l'ensemble des modules addons/plugins/extensions qui ne font pas partie du coeur Nuxeo.
  • NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\config
    Il s'agit du répertoire qui contient l'ensemble des fichiers de configuration.
Ces 3 répertoires vont illustrer les 3 façons de paramétrer Nuxeo.

Le répertoire System
Si vous avez jeté un œil à Nuxeo de près ou de loin, vous avez remarqué que la majorité des fichiers sont des fichiers .jar. Pour ceux qui ne connaissent pas ce format de fichier, un petit tour sur wikipedia s'impose : http://fr.wikipedia.org/wiki/Jar Pour faire simple, il s'agit d'un ZIP pour tout ce qui touche au langage de programmation JAVA. Pourquoi je m'attarde dessus ? Eh bien tout simplement comme il s'agit d'un ZIP, on peut ouvrir ce ZIP avec un outil comme winZip, 7-zip etc... et donc... On peut modifier le contenu de ce ZIP !

Le jar qui nous intéresse est : nuxeo-platform-webapp-core-5.2.0.jar
Il se situe dans une installation standard au niveau du répertoire : NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\
Ouvrez le (avec 7-zip dans mon cas) et recherchez le fichier OSGI-INF/querymodel-contrib.xml. Editez (ou faites une extraction) le fichier et remplacer la valeur 10 par 25 dans le bloc suivant :



Sauvegardez le fichier (ou importer le dans le .jar).

Vous pouvez maintenant redémarrer Nuxeo, importer plus de 10 documents dans un espace et vous apercevoir qu'il n'y a pas la création par défaut de la pagination.
Il faudra attendre le 26e document pour la voir apparaitre!



Passons maintenant à la seconde méthode :

Le répertoire Config
Comme vous pouvez le voir, ce répertoire se compose essentiellement de fichier de configuration sous format .xml. Le premier but de ce répertoire est de configurer les principaux paramètres de l'application. Or c'est un peu ce que nous voulons faire : Paramétrer le nombre d'élément affiché dans un espace. Tout d'abord si vous avez testé la méthode précédente, il faut supprimer vos modifications. Ensuite créez un fichier ui-configuration-config.xml (le nom n'importe pas sauf la partie -config.xml qui doit rester inchangée) dans le répertoire config et ajouter le bloc ci-dessous :

La partie la plus importante réside dans la balise . Dans cette balise on va identifier le composant défini par défaut (que l'on a vu dans la précédent méthode) Ainsi comme nous avons ce composant, nous pouvons "surcharger"/"remplacer" les données par défaut.

Vous pouvez maintenant redémarrer Nuxeo, importez plus de 10 documents dans un espace et vous apercevoir qu'il n'y a pas la création par défaut de la pagination.

Vous venez juste d'apprendre une méthode qui marche pour la plupart des fonctionnalités par défaut de Nuxeo.

Si on devait avoir un mode opératoire (la recette de cuisine), cela serait le suivant :
  • Explorez les fichiers .jar du répertoire system (avec votre utilitaire de zip : 7zip pour moi...).
  • Interessez vous particulièrement aux répertoires OSGI-INF et aux fichiers xml à l'intérieur (surtout les fichiers finissant par -contrib.xml)
  • Prenez le bloc qui vous interesse et retenez le nom du composant (2e ligne du fichier -contrib.xml en général sous la forme : ).
  • Créer votre fichier -config.xml dans le repertoire config.
  • Insérez le bloc dans le fichier et modifiez les données par défaut.
  • N'oubliez pas de respecter la validité du fichier xml et de déclarer que c'est un fichier .xml
  • Rédémarrez votre instance de Nuxeo.
  • Vous pouvez servir, c'est prêt! :o)

Finalement la dernière méthode
Le répertoire Plugins
Cette méthode (la plus préconisée par Nuxeo) est celle qui est la plus évolutive, modulaire mais aussi la plus compliquée! (On ne peut jamais tout avoir surtout en informatique...). Je ne vais pas renter dans les détails avec cette approche car elle est très bien documentée. Pour rappel, si vous êtes interessé par le sujet, je vous conseille de lire l'ébauche de livre Nuxeo à cette adresse : http://www.nuxeo.org/static/dev-tutorial/

L'un des reproches à cette méthode est qu'il n'est pas donné à tout le monde d'installer et configurer Eclipse, JDK, Maven etc... Il s'agit d'une tâche parfois complexe qui peut prendre pas mal de temps...et donc d'argent.

Si on reprend l'exemple précédent est il judicieux d'installer un environnement de développement ? La réponse risque fortement d'être non. Par contre, je veux ajouter et modifier de nombreux composants ainsi qu'étendre une fonctionnalité Nuxeo, alors oui l'installation d'un environnement est de mise.

Comme souvent : Tout dépend du besoin!

Conclusion
Pour simplifier voici mes recommandations (pour gagner du temps!) :

  • Banissez la modification d'un .jar appartenant au répertoire system!!!! Parfois Cela parait etre la solution la plus simple mais il s'agit la solution la moins rentable sur le long terme.
    Et dans le monde de l'opensource il faut savoir être évolutif par la suite (migration, upgrade...). Le seul cas possible envisageable concerne la suppression d'une fonctionnalité. Si vous avez identifié une fonctionnalité qui ne vous interesse pas, il peut s'avérer utile de supprimer les jar associés (Accélération du démarrage de l'application...)
  • Si vous voulez modifier un paramètre par défaut d'un composant Nuxeo, choisissez la méthode basé sur le répertoire de configuration. Elle sera à long terme, la meilleure des méthodes.
  • Si vous devez modifier un composant Nuxeo + ajouter des fichiers (.java, images, définition d'un workflow) ou ajouter un composant, privilégiez la méthode plugins.

Pour la suite, il ne reste plus qu'à être curieux, d'avoir du temps et de naviguer dans les profondeurs des jars de Nuxeo !

Bon voyage et à la prochaine fois !


Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

2 commentaires: on "Nuxeo Tips : Installation et Parametrage"

Gg mgmt a dit…

Good Job ^^
Retour aux sources :-)
A quand des projets Nuxeo en veux tu en voilà !!!

Anatrax a dit…

Oui beau travail merci bcp, cela aide bien tous ça quand on cherche à faire tourner Nuxeo.
Ces infos vallent de l'or ^^

Enregistrer un commentaire