3.13.3. Format Identifiers¶
3.13.3.1. But de cette documentation¶
Cette documentation indique comment utiliser les services d’identification de format et comment créer sa propre implémentation.
3.13.3.2. Format Identifier¶
L’interface commune du service d’identification des formats est : fr.gouv.vitam.common.format.identification.FormatIdentifier.
Elle mets à disposition les méthodes suivantes :
- la récupération du status du logiciel auquel le service se connecte
- l’identification du format d’un fichier par le logiciel auquel le service se connecte
Les implémentations de l’interface sont :
- pour l’implémentation Mock : fr.gouv.vitam.common.format.identification.FormatIdentifierMock
- pour l’implémentation du logiciel Siegfried : fr.gouv.vitam.common.format.identification.FormatIdentifierSiegfried
Il sera possible d’en implémenter d’autres.
3.13.3.2.1. Implémentation Mock¶
Implémentation simple renvoyant des réponses statiques.
3.13.3.2.2. Implémentation Siegried¶
Implémentation basique utilisant un client HTTP.
3.13.3.3. Format Identifier Factory¶
Afin de récupérer l’implémentation configurée une factory a été mise en place.
3.13.3.3.1. Configuration¶
Cette factory charge un fichier de configuration « format-identifiers.conf ». Ce fichier contient les configurations des services d’identificaton de format identifiées par un id :
siegfried-local:
type: SIEGFRIED
client: http
host: localhost
port: 55800
rootPath: /root/path
versionPath: /root/path/version/folder
createVersionPath: false
mock:
type: MOCK
Le type est obligatoire et doit correspondre à l’enum fr.gouv.vitam.common.format.identification.model.FormatIdentifierType.
Les autres données sont spécifiques à chaque implémentation du service d’identification de format.
Si le fichier n’est pas présent au démarrage du serveur, aucune configuration n’est chargée par la factory.
3.13.3.3.2. Méthodes¶
Pour récupérer un service d’identification de formats :
FormatIdentifier siegfried = FormatIdentifierFactory.getInstance().getFormatIdentifierFor("siegfried-local");
Pour ajouter une configuration mock :
FormatIdentifierConfiguration mock = new FormatIdentifierConfiguration();
siegfried.setType(FormatIdentifierType.MOCK);
FormatIdentifierFactory.getInstance().addFormatIdentifier("mock", mock);
Pour ajouter une configuration siegfried :
siegfried-local:
type: SIEGFRIED
client: http
host: localhost
port: 55800
rootPath: /root/path
versionPath: /root/path/version/folder
createVersionPath: false
client: http correspond au client HTTP à lancer (ce dernier effectue des requêtes HTTP pour analyser les fichiers) host/port correspond au le serveur sur lequel Siegfried est installé. rootPath correspond au chemin vers les fichiers analysables par Siegfried. versionPath correspond au chemin vers un dossier vide utilisé pour requêter la version de Siegfried. createVersionPath : Si false le dossier doit pré-existant sur le server sur lequel tourne Siegfried. Sinon, le client siegfried tente de créer automatiquement le dossier en local.
FormatIdentifierConfiguration siegfried = new FormatIdentifierConfiguration();
siegfried.setType(FormatIdentifierType.SIEGFRIED);
FormatIdentifierFactory.getInstance().addFormatIdentifier("siegfried-local", siegfried);
Pour supprimer une configuration :
FormatIdentifierFactory.getInstance().removeFormatIdentifier("siegfried-local");