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 modulejava.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 (dansfr.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 TomcatBibliothè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 BDFide/
: des modèles de projets pour les logiciels Netbeans et Eclipsevendor/
: le répertoire contenant les bibliothèques externes.