Gérer une fichothèque avec le logiciel BDF

Le format XML du fichier de configuration

Ce fichier fondamental indique les répertoires dans lesquels vont être stockées les données des fichothèques ou auquel le logiciel accédera pour une configuration personnalisée

Le chemin du fichier de configuration est indiqué dans la configuration du contexte Tomcat de l’application avec le paramètre <Parameter name="bdfConfFile" value=""/> (voir Les paramètres d’initialisation du logiciel BDF dans le contexte Tomcat). En l’absence de ce paramètre ou si le fichier indiqué par ce chemin n’existe pas, le logiciel cherchera la présence d’un fichier nommé bdf-conf.xml dans les emplacements /{contexte}/META-INF puis /{contexte}/WEB-INF et renverra un message d’erreur à l’initialisation s’il ne le trouve pas. À noter que le déploiement de la version .war du logiciel crée ce fichier dans /{contexte}/META-INF.

Ce fichier de configuration est un fichier au format XML dont l’élément racine s’appelle <bdf-conf>. Comme indiqué dans la fiche sur les paramètres d’initialisation déjà citée, il peut contenir des éléments <Parameter name="" value=""/> sur le même modèle que le fichier de configuration du contexte Tomcat. Cependant, son rôle essentiel est de permettre la personnalisation des différents chemins utilisés par le logiciel BDF pour accéder à certains informations et stocker ses données.

Les répertoires etc/ et var/

L’élément racine <bdf-conf> doit contenir a minima les deux éléments obligatoires suivants :

  • <etc-dir path=""/> : élément dont l’attribut @path indique le chemin du répertoire des fichiers de configuration supplémentaires (appelé par la suite etc/)

  • <var-dir path=""/> : élément dont l’attribut @path indique le chemin du répertoire de stockage des données (appelé par la suite var/)

Le répertoire etc/ peut ne pas exister et, s’il existe, il peut n’être accessible qu’en lecture seule.

Le répertoire var/ doit être accessible en lecture et écriture au logiciel et, s’il n’existe pas, le logiciel tentera de le créer.

L’exemple ci-dessous est le fichier <bdf-conf> présent dans le répertoire /META-INF/ de la version .war du logiciel.

fichier fournit dans la version .war
<bdf-conf>
  <Parameter name="multiBdf" value="true"/>
  <Parameter name="centralSphereList" value=""/>
  <etc-dir path="/etc/bdf" append-context="true"/>
  <var-dir path="../_var_" append-context="true"/>
</bdf-conf>

On voit que les élements <etc-dir> et <var-dir> possède un attribut supplémentaire @append-context="true". Cet attribut indique que le chemin final doit être construit en ajoutant le nom du contexte de l’application dans Tomcat au chemin indiqué par l’attribut @path.

Autrement dit, si l’application est installée pour tourner avec le nom de contexte « fichotheques_de_toto », etc/ pointera vers /etc/bdf/fichotheques_de_toto/ et var/ vers /var/lib/tomcat9/webapps/_var_/fichotheques_de_toto/ (dans le cas d’une installation avec Tomcat 9 sous Debian). Cela permet d’installer une autre version du logiciel dans Tomcat avec le nom de contexte « fichotheques_de_lulu » avec des répertoires différents.

À noter que comme le montre l’exemple, le chemin indiqué par @path peut être relatif et, dans ce cas-là, le chemin complet sera construit à partir du répertoire de déploiement de l’application.

Les éléments <dir>

L’élément racine <bdf-conf> peut contenir également un nombre quelconque d’éléments <dir> qui vont permettre de personnaliser le chemin de certains des sous-répertoires attendus par le logiciel dans etc/ et var/. Ces éléments ont trois attributs :

  • @key : la clé identifiant le sous-répertoire en question (obligatoire)

  • @path : le chemin du répertoire (obligatoire)

  • @append-context : même mécanisme que décrit plus haut : ajoute le nom du contexte à la valeur de @path (facultatif)

Un exemple concret de l’utilité de cette personnalisation est le répertoire cache/. Par défaut, celui est créé directement dans var/ par le logiciel et sert à stocker des données en cache (principalement le contenu des fiches). Son contenu n’a pas besoin d’être sauvegardé, sa présence dans var/ peut être donc gênante si on met en place des scripts de sauvegarde (cela oblige à mettre en place des filtres). On peut simplifier le traitement en utilisant un autre emplacement comme le montre l’exemple suivant :

Emplacement du cache suivant l’architecture classique d’un serveur Debian
<var-dir path="/var/local/bdf"/>
<dir key="var.cache" path="/var/cache/bdf"/>

Les clés disponibles pour les sous-répertoires de etc/ et var/ sont les suivantes :

  • etc.config : sous-répertoire de fichiers de configuration supplémentaires

  • etc.config.default : sous-répertoire des fichiers de configuration par défaut

  • etc.scripts : sous-répertoires des scripts bash exécutables par l’application

  • etc.resources : sous-répertoire des ressources

  • var.data : sous-répertoire des données

  • var.output : sous-répertoires des extractions de données

  • var.cache : sous-répertoire du cache des données

  • var.backup : sous-répertoire des sauvegardes

  • var.run : sous-répertoire des commandes locales

D’autres clés sont disponibles :

  • lib.extensions : répertoire où sont stockées les extensions du logiciel BDF

  • custom.* : répertoires pour des exportations de données particulières (Scrutari, SQL, balayages).

Les chemins peuvent être relatifs, ils seront construits par rapport à etc/ et var/ si la clé commence respectivement par etc.* ou var.*, sinon par rapport au répertoire de déploiement de l’application.

L’exemple suivant est celui d’un fichier de configuration pour une installation locale du logiciel pour le développement.

Exemple de configuration dans le cas d’une version locale de développement
<bdf-conf>
  <Parameter name="multiBdf" value="true"/>
  <Parameter name="centralSphereList" value="admin fph"/>
  <Parameter name="allowAuthentificationSharing" value="strict"/>

  <etc-dir path="home/vic/dev/depot-exemole/web/bdf/etc/exemole"/>
  <var-dir path="/home/tomcat/bdf/var/exemole"/>

  <dir key="var.cache" path="/home/tomcat/bdf/cache/exemole"/>
  <dir key="var.run" path="/home/tomcat/run/exemole"/>
  <dir key="etc.scripts" path="/home/tomcat/scripts/exemole"/>

  <dir key="lib.extensions" path="/home/vic/java/apache-tomcat-8.5.65/webapps/multi/extensions"/>

  <dir key="custom.www" path="/home/_html/bdf-www"/>
  <dir key="custom.sync" path="/home/vic/test/sync"/>

</bdf-conf>
Fiches voisines