Gérer une fichothèque avec le logiciel BDF

Description des répertoires du dépôt du logiciel BDF

Le code source du logiciel BDF est disponible sur le dépôt Framagit à l’adresse suivante : framagit.org/fichotheque/bdf/. Les fichiers Java qui constituent le code source sont répartis dans différents répertoires que l’on peut voir comme différents modules. Ces répertoires correspondent en fait à des projets au sens Netbeans, le logiciel sur lequel est écrit BDF (l’utilisation de Netbeans n’est nullement obligatoire pour contribuer au code, cependant). Ces modules ont des dépendances entre eux. Ces modules sont divisés en quatre familles :

  • ceux qui commencent par UtilLib qui correspondent à des classes utilitaires,

  • ceux qui commencent par FichothequeLib qui correspondent au cœur des données de la fichothèque,

  • ceux qui commencent par BdfServer qui correspondent au serveur

  • des modules divers et indépendants complémentaires

Les modules UtilLib

Ces modules comprennent les classes utilitaires ou définissant des concepts génériques susceptibles d’être utilisé dans d’autres logiciels (c’est notamment le cas du logiciel Scrutari). La plupart des paquets commencent par net.mapeadores.*. Certaines classes proviennent d’une source extérieure qui a pu être modifiée ou modernisée et qui de ce fait ne sont pas traitées comme des bibliothèques extérieurs comme celles /vendor/lib/.

La répartition en différents modules s’explique par des dépendances différentes par module. En fait, l’idée est de regrouper les classes par type de dépendance.

  • UtilLib : module principal, contient également du code d’autre origine que net.mapeadores.*, parfois modifié

    Bibliothèque externe : aucune

  • UtilLib_Awt : classes utilitaires utilisant des classes de java.awt.* et, plus généralement, du module java.desktop

    Bibliothèque externe : aucune

  • UtilLib_Css : classes autour du traitement de la syntaxe CSS

    Bibliothèque externe : /vendor/lib/sac.jar

  • UtilLib_Email : classes autour du traitement des courriels

    Bibliothèque externe : /vendor/lib/javax.mail.jar

  • UtilLib_Html : classes autour de l’interprétation du HTML

    Bibliothèque externe : /vendor/lib/jsoup.jar

  • UtilLib_Servlet : classes autour de l’API Servlet

    Bibliothèque externe : /vendor/lib/servlet-api.jar

  • UtilLib_Servlet_MultiPart : classes concernant le téléversement de fichiers via des servlets

    Bibliothèques externes : /vendor/lib/servlet-api.jar, /vendor/lib/commons-io.jar, /vendor/lib/commons-fileupload.jar

Les modules FichothequeLib

Ces modules correspondent au cœur des données d’une fichothèque, celles qui sont stockées dans le répertoire bdfdata/fichotheque/) d’une fichothèque. La répartition entre les différents modules se fait sur une base fonctionnelle. Tous les modules utilisent des classes de UtilLib. Les paquets commencent tous par net.fichotheque.*

  • FichothequeLib_API : regroupe toute la description des données d’une fichothèque sous forme d’interfaces, propose également des fonctions utilitaires dans net.fichotheque.utils.*

  • FichothequeLib_Impl : propose des implémentations de certaines interfaces, en particulier de celle dont le rôle est central : net.fichotheque.Fichotheque

  • FichothequeLib_Srz : concerne la sérialisation des données de la fichothèque pour leur mise en cache

  • FichothequeLib_Tools : propose de nombreux outils de manipulation des données de la fichothèque et des constructeurs pour certaines interfaces

  • FichothequeLib_Xml : concerne l’enregistrement des données au format XML ainsi que l’extraction de ces mêmes données

  • FichothequeLib_Import : outil d’importation des données à partir de contenu au format XML, mis à part de FichothequeLib_Tools du fait de sa dépendance particulière à UtilLib_Html

    Bibliothèque externe : /vendor/lib/jsoup.jar

Les modules BdfServer

Ces modules sont les plus complexes car ils concernent tout le fonctionnement du serveur : son interaction avec les clients, la gestion des utilisateurs, etc. Les paquets commencent tous par fr.exemole.bdfserver.*. La répartition entre les différents modules se fait sur des bases fonctionnelles.

  • BdfServer : le cœur du réacteur, comprend aussi des interfaces (dans fr.exemole.bdfserver.api.*) que des outils pour les manipuler et les implémenter (dans fr.exemole.bdfserver.tools.*)

  • BdfServer_Resources : module particulier car il ne contient aucun fichier Java mais tous les fichiers Javascript, CSS, XSLT, etc qui font le client du serveur BDF, le contenu de ce module est celui que l’on retrouve dans la gestion des ressources

  • BdfServer_DirectoryStorage : traite de l’enregistrement sur le disque et de la mise en cache

    Bibliothèque externe : /vendor/lib/jdbm.jar

  • BdfServer_Email : envoi des courriels, possède des dépendances particulières

    Bibliothèques externes : /vendor/lib/javax.mail.jar, /vendor/lib/javax.activation.jar

  • BdfServer_Commands : catalogue de toutes les commandes du serveur, les commandes sont toutes les interactions via le serveur web (le nom d’une commande est signalée dans une requête Http par le paramètre cmd)

  • BdfServer_Html : base pour l’affichage Html des pages

  • BdfServer_Get : gestion de toute la partie « récupération de données » du serveur (à différencier des commandes), par exemple l’affichage d’une fiche, la récupération d’un export tabulaire au format Ods, etc.

  • BdfServer_JsonProducers : catalogue de toutes les sorties JSON proposées par le serveur

  • BdfServer_HtmlProducers : catalogue des pages HTML de formulaires proposées par le serveur

  • BdfServer_Multi : module à part, consacré à la gestion des fichothèques multiples.

À ces modules, il faut rajouter le module suivant :

  • BDF, concerne spécifiquement l’interaction avec le serveur Tomcat et l’initialisation de l’ensemble, contient en particulier le fichier context.xml qui est à utiliser pour la déclaration de l’application web BDF dans le secteur Tomcat

    Bibliothèque externe : /vendor/lib/servlet-api.jar

Modules divers

Les quatre modules suivants sont autonomes et sont utilisés en particulier par FichothequeLib_Tools

  • OdLib_Elements : éléments correspondant aux éléments les plus courants du format OpenDocument

  • OdLib_Css : traitement d’un texte suivant la syntaxe CSS pour sa conversion en éléments de style OpenDocument

    Bibliothèque externe : /vendor/lib/sac.jar

  • OdLib_Io : série de classes permettant la production de documents au format OpenDocument

  • ScrutariDataExport : module totalement autonome d’aide à l’écriture du XML du format ScrutariData

Autres répertoires

Le dépôt contient également les répertoires suivants :

  • ant/ : le script Ant de compilation de BDF

  • ide/ : des modèles de projets pour les logiciels Netbeans et Eclipse

  • vendor/ : le répertoire contenant les bibliothèques externes.