Common format identification ############################ But de cette documentation ========================== Cette documentation indique comment utiliser le code commun du format identifier pour éventuellement ajouter un client pour un nouvel outil. 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 : .. code-block:: java public class FormatIdentifierSiegfried implements FormatIdentifier { @Override public FormatIdentifierInfo status() { //CALL THE TOOL AND GET THE STATUS } @Override public List analysePath(Path path) { //CALL THE TOOL AND ANALYSE} } De plus, pour pouvoir être utilisé, l'outil doit être ajouté dans l'enum FormatIdentifierType : .. code-block:: java 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 : .. code-block:: java public class FormatIdentifierFactory { ...... private FormatIdentifier instanciate(String formatIdentifierId){ ... switch (infos.getType()) { case MOCK: return new FormatIdentifierMock(); case SIEGFRIED: return new FormatIdentifierSiegfried(infos.getConfigurationProperties()); ..... } } } 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 : .. code-block:: yaml 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.