Cette partie décrit le contenu du dépôt du code source. Le développement utilise comme référence la version 5 du JDK (Java 1.5). le code est réparti en une série de répertoires (qui peuvent être autant de projet sous Netbeans par exemple). La répartition entre les différents répertoires s’est fait plus ou moins pour les raisons suivantes:
séparation des bibliothèques génériques du code spécifique.
regroupement de fonctions du même ordre
séparation des interfaces de leurs implémentations
isolement de code pour une fonction particulière exigeant une bibliothèque extérieur
hiérarchie dans la complexité (BdfServer englobe Basedefiches_API en comprenant d’autres aspects comme la gestion des utilisateurs)
Certains paquets Java commence par net.mapeadores
, ce sont les paquets de bibliothèques. Les paquets commençant par fr.exemole
sont les paquets plus proches de « l’applicatif ».
Afin de mieux identifier les répertoires proches, une séparation par tiret bas _
a été utilisée.
Certaines bibliothèques extérieures dépendent d’autres bibliothèques, celles-ci sont indiquées entre parenthèses. Elles ne sont pas obligatoire au moment de la compilation mais elles le sont au moment de l’exécution.
Les bibliothèques générales (UtilLib)
Ils comprennent des classes utilitaires et un certain nombre de définition d’interfaces utilisées dans tous les autres projets.
UtilLib
Le répertoire de base, utilisé par pratiquement tous les autres répertoires.
Dépendances internes : aucune
Bibliothèques extérieures : aucune
UtilLib_Servlet
Comprend des interfaces de traitement de la réponse des servlets
Dépendances internes : UtilLib
Bibliothèques extérieures : servlet-api.jar
UtilLib_Servlet_MultiPart
Extension de UtilLib_Servlet pour gérer les formulaires d’envoi de fichiers.
Dépendances internes : UtilLib_Servlet, UtilLib
Bibliothèques extérieures : commons-fileupload.jar (commons-io.jar), servlet-api.jar
UtilLib_Image
Classe de traitement d’images. La bibliothèque extérieure utilisée sert à la transformation de documents PDF en image.
Dépendances internes : UtilLib
Bibliothèques extérieures : icepdf-core.jar
UtilLib_Pdf
Aide à la conversion de documents en PDF via XSLT-FO (n’est pas inséré par défaut dans BaseDeFiches).
Dépendances internes : UtilLib
Bibliothèques extérieures : fop.jar
UtilLib_Email
Contient une version modifiée de org.apache.commons.email.
Dépendances internes : aucune
Bibliothèques extérieures : mail.jar (activation.jar)
UtilLib_Csv
Contient une bibliothèque externe de traitement du CSV : org.Ostermiller.util. Pour des raisons de compatibilité, cette bibliothèque est sous licence GNU GPLv2. Elle ne devra pas être incluse directement dans la distribution mais fournie à part.
Dépendances internes : UtilLib
Bibliothèques extérieures : aucune
UtilLib_Css
Contient l’extraction du code de Batik (xmlgraphics.apache.org/batik/) concernant l’implémentation de l’interface SAC d’analyse de fichiers CSS. On peut utiliser un autre parseur que celui-ci (Par exemple, Flute).
Dépendances internes : aucune
Bibliothèques extérieures : sac.jar
UtilLib_Display
Contient des utilitaires liés à l’interface graphique (extension de Swing notamment), elle n’est pas utilisé dans les environnements non graphiques (BaseDeFiches, notamment). Contient également la bibliothèque net.sourceforge.mlf.metouia
légèrement modifiée.
Dépendances internes : UtilLib
Bibliothèques extérieures : aucune
Les bibliothèques autour d’OpenDocument (OdLib)
Bibliothèques tournant autour du format OpenDocument.
OdLib_Css
Propose un mécanisme de modification du style d’un fichier OpenDocument à partir d’une syntaxe CSS.
Dépendances internes : aucune
Bibliothèques extérieures : sac.jar
OdLib_Io
Contient des classes permettant de créer un fichier au format OpenDocument en compilant divers fichiers XML.
Dépendances internes : UtilLib
Bibliothèques extérieures : aucune
Les bibliothèques autour de BaseDeFiches (BasedefichesLib)
Ce sont toutes les bibliothèques qui servent de fondement au logiciel BaseDeFiches. La bibliothèque initiale est BasedefichesLib_API
, les autres bibliothèques sont des compléments pour des traitements particuliers de cette API.
BasedefichesLib_API
La bibliothèque de base qui définit les principales interfaces et classes d’accès aux données.
Dépendances internes : UtilLib
Bibliothèques extérieures : aucune
BasedefichesLib_Explore
Bibliothèque qui comprend une série d’utilitaires permettant d’accéder facilement aux données définies dans BasedefichesLib_API
, par exemple : des outils de sélection, des pointeurs, etc. (nettoyage en cours)
Dépendances internes : BasedefichesLib_API, UtilLib
Bibliothèques extérieures : aucune
BasedefichesLib_Export
Bibliothèque comprend des classes et des interfaces pour l’exportation des données sous d’autres formats (tables Sql par exemple). (nettoyage en cours)
Dépendances internes : BasedefichesLib_Explore, BasedefichesLib_API, UtilLib
Bibliothèques extérieures : aucune
BasedefichesLib_Impl
Implémentation de BasedefichesLib_API
basée sur le stockage dans des fichiers XML.
Dépendances internes : BasedefichesLib_Explore, BasedefichesLib_API, UtilLib_Images, UtilLib
Bibliothèques extérieures : aucune
BasedefichesLib_Xml
Concerne toute l’extraction des données au format XML (que ce soit pour l’enregistrement ou le balayage).
Dépendances internes : BasedefichesLib_API, UtilLib, BasedefichesLib_Explore, BasedefichesLib_Export
Bibliothèques extérieures : aucune
BasedefichesLib_Srz
Concerne la transformation des données des fiches en chaines de caractères.
Dépendances internes : BasedefichesLib_API, UtilLib
Bibliothèques extérieures : aucune
BasedefichesLib_Import
(nettoyage en cours)
Bibliothèque au développement suspendu pour le moment. Est censée servir à l’importation de données, notamment HTML.
Dépendances internes : BasedefichesLib_API, UtilLib
Bibliothèques extérieures : htmlparser.jar
BasedefichesLib_Tools
Bibliothèque d’outils divers, notamment l’implémentation de quelques interfaces de BasedefichesLib_Explore
Dépendances internes : BasedefichesLib_Xml, BasedefichesLib_Export, BasedefichesLib_Explore, BasedefichesLib_API, ScrutariDataExport, OdLib_Io, UtilLib
Bibliothèques extérieures : aucune
L’application BdfServer (BdfServer)
BdfServer est le serveur de BaseDeFiches. Il fournit non seulement les données définies dans BasedefichesLib_API mais aussi tout ce qui a trait à la gestion du serveur (système de droits, transformation XSLT des données, etc.).
BdfServer
(nettoyage en cours)
Le plus gros du code du serveur de BaseDeFiches.
Dépendances internes : BasedefichesLib_Tools, BasedefichesLib_Xml, BasedefichesLib_Export, BasedefichesLib_Explore, BasedefichesLib_API, OdLib_Css, OdLib_Io, UtilLib_Image, UtilLib
Bibliothèques extérieures : aucune
BdfServer_Interaction
Concerne tout ce qui a trait à la communication de BdfServer avec un moteur de servlets (suivant l’API servlet 2.3). C’est dans ce sous-projet que se trouve la définition des extensions ainsi que la gestion des sessions.
Dépendances internes : BdfServer, BasedefichesLib_API, UtilLib_Servlet, UtilLib
Bibliothèques extérieures : servlet-api.jar
BdfServer_DirectoryStorage
Concerne l’enregistrement des données du serveur sous la forme de fichiers (principalement Xml). L’utilisation de la bibliothèque Castor sera abandonnée un jour.
Dépendances internes : BdfServer, BasedefichesLib_Xml, BasedefichesLib_Impl, BasedefichesLib_Srz, BasedefichesLib_Export, BasedefichesLib_Explore, BasedefichesLib_API, OdLib_Css, OdLib_Io, UtilLib_Image, UtilLib
Bibliothèques extérieures : aucune
BdfServer_Html
Concerne l’affichage Html standard. Peut être utilisé par une extension pour s’intégrer dans l’interface d’administration.
Dépendances internes : BdfServer_Interaction, BdfServer, BasedefichesLib_Export, BasedefichesLib_Explore, BasedefichesLib_API, UtilLib
BdfServer_Get
Concerne la récupération de données du serveur et leur affichage (HTML ou autre format) ainsi que le traitement de pages diverses (barre de menu, liste des fiches). Aucune des instructions dans cette bibliothèque ne modife la base de données, à part l’historique de l’utilisateur.
BdfServer_Commands
(nettoyage en cours)
Concerne la transformation de requêtes Http en commandes effectuées sur le serveur BaseDeFiches. En cours d’élaboration. Est amené à recevoir du contenu de BaseDeFiches
.
Dépendances internes : BdfServer_Util, BdfServer_Interaction, BdfServer, BasedefichesLib_Tools, BasedefichesLib_Xml, BasedefichesLib_Export, BasedefichesLib_Explore, BasedefichesLib_API, UtilLib_Servlet, UtilLib
Bibliothèques extérieures : servlet-api.jar
Bibliothèques diverses
ScrutariDataExport
(nettoyage en cours)
Implémentation en Java de l’API d’export au format ScrutariData. Voir dataexport.scrutari.net
Dépendances internes : aucune
Bibliothèques extérieures : aucune
ScrutariDataURI
Définition de l’URI des ressources décrites par le format ScrutariData (voir www.scrutari.net). Est utilisé uniquement pour l’application Scrutari mais est susceptible d’un jour d’être utilisée dans d’autres contextes.
Dépendances internes : aucune
Bibliothèques extérieures : aucune
L’application Web BaseDeFiches (BaseDeFiches)
Un seul projet qui englobe tout le reste.
BaseDeFiches
(nettoyage en cours)
Englobe l’ensemble des bibliothèques nécessaires et comprend la configuration nécessaire pour fonctionner sous Tomcat. La liste des dépendances indique toutes les bibliothèques nécessaires au fonctionnement.
Dépendances internes : UtilLib, UtilLib_Servlet, UtilLib_Servlet_MultiPart, UtilLib_Email, UtilLib_Css, UtilLib_Csv, UtilLib_Image, OdLib_Css, OdLib_Io, ScrutariDataExport, BasedefichesLib_API, BasedefichesLib_Explore, BasedefichesLib_Export, BasedefichesLib_Srz, BasedefichesLib_Xml, BasedefichesLib_Impl, BasedefichesLib_Tools, BdfServer BdfServer_DirectoryStorage, BdfServer_Interaction, BdfServer_Commands, BdfServer_Html
Bibliothèques extérieures : servlet-api.jar, sac.jar, commons-fileupload.jar, commons-io.jar, icepdf-core.jar, mail.jar, activation.jar, castor-xml.jar, commons-logging.jar, xercesImpl.jar
Les extensions (BdfExt)
Elles ne sont pas décrites ici. Par convention, toute extension commence par BdfExt_
, suivi d’un identifiant de l’origine de l’extension (par exemple BdfExt_EXM_
, pour les extensions d’Exemole).
Les bibliothèques de l’atlas relationnel (AtlasLib)
Elles contiennent les différentes interfaces et implémentations de ces interfaces pour décrire un atlas relationnel, principalement utilisé dans Desmodo.
AtlasLib_API
(nettoyage en cours)
La bibliothèque de base qui définit les principales interfaces et classes d’un atlas relationel
Dépendances internes : UtilLib
Bibliothèques extérieures : aucune
AtlasLib_API
(nettoyage en cours)
La bibliothèque de base qui définit les principales interfaces et classes d’un atlas relationel
Dépendances internes : UtilLib
Bibliothèques extérieures : aucune
AtlasLib_API
(nettoyage en cours)
La bibliothèque de base qui définit les principales interfaces et classes d’un atlas relationel
Dépendances internes : UtilLib
Bibliothèques extérieures : aucune
AtlasLib_Impl
(nettoyage en cours)
Implémentation des interfaces de la bibliothèque précédente
Dépendances internes : AtlasLib_API, UtilLib
Bibliothèques extérieures : aucune
AtlasLib_Impl
(nettoyage en cours)
Implémentation des interfaces de la bibliothèque précédente
Dépendances internes : AtlasLib_API, UtilLib
Bibliothèques extérieures : aucune
AtlasLib_Tools
(nettoyage en cours)
Outils autour de l’API de l’atlas relationnel, contient notamment la gestion de la navigation à l’intérieur d’un atlas
Dépendances internes : AtlasLib_API, UtilLib
Bibliothèques extérieures : aucune
AtlasLib_Display
(nettoyage en cours)
Concernent l’affichage des cartes d’un atlas relationel dans un environnement Java
Dépendances internes : AtlasLib_Display, AtlasLib_API, UtilLib
Bibliothèques extérieures : aucune
Les bibliothèques de Scrutari (ScrutariLib)
Elles sont le fondement du moteur de recherche Scrutari.
ScrutariLib_Data
Traduction des données ScrutariData en objet Java enregistrable sous forme de suite de primitices.
Dépendances internes : ScrutariDataURI, UtilLib
Bibliothèques extérieures : aucune
ScrutariLib_Lexie
Décomposition des données de ScrutariData en unités lexicales.
Dépendances internes : ScrutariLib_Data, UtilLib
Bibliothèques extérieures : aucune
ScrutariLib_DB
Accès aux données et statistiques.
Dépendances internes : ScrutariLib_Lexie, ScrutariLib_Data, ScrutariDataURI, UtilLib
Bibliothèques extérieures : aucune
ScrutariLib_Supermotcle
Regroupement des mots-clés de bases différentes avec des libellés identiques dans une même langue.
Dépendances internes : ScrutariLib_DB, ScrutariLib_Data, ScrutariDataURI, UtilLib
Bibliothèques extérieures : aucune
ScrutariLib_Xml
Traitement du format Xml ScrutariData.
Dépendances internes : ScrutariLib_DB, ScrutariLib_Data, ScrutariDataURI, UtilLib
Bibliothèques extérieures : xpp3.jar
ScrutariLib_SearchEngine
Moteur de recherche sur les données.
Dépendances internes : ScrutariLib_Supermotcle, ScrutariLib_DB, ScrutariLib_Lexie, ScrutariLib_Data, ScrutariDataURI, UtilLib
Bibliothèques extérieures : aucune
L’application SctServer (SctServer)
SctServer est le serveur de Scrutari : il reçoit les requêtes et, organise la collecte des fichiers au format ScrutariData.
SctServer
La partie principale du serveur.
Dépendances internes : ScrutariLib_SearchEngine, ScrutariLib_Supermotcle, ScrutariLib_DB, ScrutariLib_Lexie, ScrutariLib_Data, ScrutariDataURI, ServletUtil_Lib, UtilLib
Bibliothèques extérieures : xpp3.jar, servlet-api.jar
SctServer_Directory
Concerne l’enregistrement des données en tant que fichiers dans des répertoires.
Dépendances internes : SctServer, ScrutariLib_SearchEngine, ScrutariLib_DB, ScrutariLib_Lexie, ScrutariDataURI, UtilLib
Bibliothèques extérieures : aucune
L’application Web Scutari (BaseDeFiches)
Le projet qui englobe ScrutariLib et SctServer.
Scrutari
Englobe l’ensemble des bibliothèques nécessaires et comprend la configuration nécessaire pour fonctionner sous Tomcat. La liste des dépendances indique toutes les bibliothèques nécessaires au fonctionnement.
Dépendances internes : SctServer_Directory, SctServer, ScrutariLib_SearchEngine, ScrutariLib_Supermotcle, ScrutariLib_DB, ScrutariLib_Impl, ScrutariLib_Lexie, ScrutariLib_Data, ScrutariDataURI, OdLib_Io, ServletUtil_Lib, UtilLib
Bibliothèques extérieures : xpp3.jar
Les bibliothèques de SimpleGrille (SimplegrilleLib)
Elles contiennent les différentes interfaces et implémentations de ces interfaces pour SimpleGrille, un approche simplifiée d’un atlas relationnel.
SimplegrilleLib_API
La bibliothèque de base qui définit les interfaces des données de SimpleGrille
Dépendances internes : UtilLib
Bibliothèques extérieures : aucune
SimplegrilleLib_Impl
Implémentation des interfaces de l’API de SimplegrilleLib_API
Dépendances internes : SimplegrilleLib_API, UtilLib
Bibliothèques extérieures : aucune
SimplegrilleLib_Xml
Lecture et écriture du format XML
Dépendances internes : SimplegrilleLib_API, UtilLib
Bibliothèques extérieures : aucune
SimplegrilleLib_Tools
Outils divers.
Dépendances internes : SimplegrilleLib_Xml, SimplegrilleLib_Impl, SimplegrilleLib_API, UtilLib
Bibliothèques extérieures : aucune
L’application SimpleGrille (SimplegrilleLib)
Application pour le poste client.
SimpleGrille
L’application elle-même avec la gestion des fenêtres.
Dépendances internes : SimplegrilleLib_Tools, SimplegrilleLib_Xml, SimplegrilleLib_Impl, SimplegrilleLib_API, UtilLib_Display, UtilLib
Bibliothèques extérieures : aucune
Bibliothèques extérieures (vendor/lib)
Les bibliothèques extérieures sont placées dans le répertoire vendor/lib
.