3.10. Common format identification¶
3.10.1. But de cette documentation¶
Cette documentation indique comment utiliser le code commun du format identifier pour éventuellement ajouter un client pour un nouvel outil.
3.10.2. Outil Format Identifier¶
L’interface du format identifier est fr.gouv.vitam.common.format.identification.FormatIdentifier. Elle met à disposition 2 méthodes :
- status() qui renvoie le statut du format identifer
- analysePath(Path) qui renvoie une liste de formats potentiellement identifiés par l’outil.
Une implémentation Mock est présente : fr.gouv.vitam.common.format.identification.FormatIdentifierMock
Chaque nouvel outil doit implémenter l’interface :
public class FormatIdentifierSiegfried implements FormatIdentifier {
@Override
public FormatIdentifierInfo status() { //CALL THE TOOL AND GET THE STATUS }
@Override
public List<FormatIdentifierResponse> analysePath(Path path) { //CALL THE TOOL AND ANALYSE}
}
De plus, pour pouvoir être utilisé, l’outil doit être ajouté dans l’enum FormatIdentifierType :
public enum FormatIdentifierType {
MOCK,
SIEGFRIED
}
Une factory a été mise en place pour récupérer l’instance du client adaptée. En cas de nouvel outil, il faut la mettre à jour :
public class FormatIdentifierFactory {
......
private FormatIdentifier instanciate(String formatIdentifierId){
...
switch (infos.getType()) {
case MOCK:
return new FormatIdentifierMock();
case SIEGFRIED:
return new FormatIdentifierSiegfried(infos.getConfigurationProperties());
.....
}
}
}
3.10.3. Configuration¶
Dans /vitam/conf du serveur applicatif où sont déployés les services d’identification de formats, il faut un fichier format-identifiers.conf. C’est un fichier YAML de configuration des services d’identification de format. Il possède les configurations des services que l’on souhaite déployer sur le serveur.
Le code suivant contient un exemple de toutes les configurations possibles :
siegfried-local:
type: SIEGFRIED
client: http
host: localhost
port: 55800
rootPath: /root/path
versionPath: /root/path/version/folder
createVersionPath: false
mock:
type: MOCK
Pour plus d’informations sur le sujet, voir la documentation sur l’exploitation.