3.1. Introduction¶
3.1.1. But de cette documentation¶
L’objectif de cette documentation est de compléter la Javadoc pour ce module.
3.1.2. Utilitaires Commons¶
3.1.2.1. FileUtil¶
Cet utilitaire propose quelques méthodes pour manipuler des fichiers.
Attention : les méthodes « readFile » doivent être limitées en termes d’usage au strict minimum et pour des fichiers de petites tailles.
3.1.2.2. LocalDateUtil¶
Cet utilitaire propose quelques méthodes pour manipuler des dates avec la nouvelle classe LocalDateTime.
3.1.2.3. ServerIdentity¶
Cet utilitaire propose une implémentation de la carte d’identité de chaque service/serveur.
ServerIdentity contient le ServerName, le ServerRole, le siteId, serverId et le PlatformGlobalID
Pour une JVM, un seul ServerIdentity existe.
C’est un Common Private.
Par défaut cette classe est initialisée avec les valeurs suivantes : * ServerName (String) : hostname ou UnknownHostname si introuvable * ServerRole (String) : UnknownRole * ServerId (int): MAC adresse partielle comme entier (31 derniers bits de la MAC) * SiteId (int) : Id du site (entier entre 0 et 15) . Les serveurs de 2 régions informatiques (sites/salles) doivent avoir des Id différents * GlobalPlatformID (int) : nombre aggrégé du siteId et d’une partie du ServerId
Il est important que chaque server à son démarrage initialise les valeurs correctement.
ServerIdentity serverIdentity = ServerIdentity.getInstance();
serverIdentity.setName(name).setRole(role).setPlatformId(platformId);
// or
ServerIdentity.getInstance().setFromMap(map);
// or
ServerIdentity.getInstance().setFromPropertyFile(file);
Où name, role et platformID viennent d’un fichier de configuration par exemple.
3.1.2.3.1. Usage¶
ServerIdentity serverIdentity = ServerIdentity.getInstance();
String name = serverIdentity.getName();
String role = serverIdentity.getRole();
int platformId = serverIdentity.getGlobalPlatformId();
3.1.2.3.2. Les usages principaux¶
- GUID pour PlatformId
- Logger and Logbook pour tous les champs
3.1.2.4. SystemPropertyUtil¶
Cet utilitaire propose quelques méthodes pour manipuler les Propriétés héritées du Système, notamment celle déduites de « -Dxxxx » dans la ligne de commande Java.
Il intègre notamment : - String getVitamConfigFolder() - String getVitamDataFolder() - String getVitamLogFolder() - String getVitamTmpFolder()
Les répertoires sont par défaut : - Config = /vitam/conf - Data = /vitam/data - Log = /vitam/log - Tmp = /vitam/data/tmp
Ils peuvent être dynamiquement surchargés par une option au lancement du programme Java : - -Dvitam.config.folder=/path - -Dvitam.data.folder=/path - -Dvitam.log.folder=/path - -Dvitam.tmp.folder=/path
3.1.2.5. PropertiesUtils¶
Cet utilitaire propose quelques méthodes pour manipuler des fichiers de propriétés et notamment dans le répertoire Resources.
Il intègre notamment : - File getResourcesFile(String resourcesFile) qui retourne un File se situant dans « resources (classpath) /resourcesFile » - File findFile(String filename) qui retourne un File se situant dans l’ordre
- Chemin complet donné par resourcesFile
- Chemin complet donné par ConfigFolder + resourcesFile
- Chemin complet dans resources (classpath) /resourcesFile
- File fileFromConfigFolder(String subpath) qui retourne un File se situant dans « ConfigFolder + subpath » (non checké)
- File fileFromDataFolder(String subpath) qui retourne un File se situant dans « DataFolder + subpath » (non checké)
- File fileFromLogFolder(String subpath) qui retourne un File se situant dans « LogFolder + subpath » (non checké)
- File fileFromTmpFolder(String subpath) qui retourne un File se situant dans « TmpFolder + subpath » (non checké)
3.1.2.6. BaseXXX¶
Cet utilitaire propose quelques méthodes pour manipuler des Base16, Base32 et Base64.
3.1.2.7. CharsetUtils¶
Cet utilitaire propose quelques méthodes pour la gestion des Charset.
3.1.2.8. ParametersChecker¶
Cet utilitaire propose quelques méthodes pour gérer la validité des arguments dans les méthodes.
3.1.2.9. SingletonUtil¶
Cet utilitaire propose quelques méthodes pour obtenir des Singletons.
3.1.2.10. StringUtils¶
Cet utilitaire propose quelques méthodes pour manipuler des String.
3.1.3. GUID¶
Cf chapitre dédié.
3.1.4. Logging¶
Cf chapitre dédié.
3.1.5. LRU¶
Cet utilitaire propose une implémentation en mémoire de Cache Last Recent Used.
Il est notamment utilisé dans la partie Metadata.
Son usage doit positionner une dimension maximale et un délai avant retrait :
- Les plus anciens sont supprimés lorsque la place manque
- Les plus anciens sont supprimés lorsque la méthode forceClearOldest() est appelé
3.1.6. Digest¶
Cet utilitaire propose les fonctionnalités de calculs d’empreintes selon différents formats.
Cf chapitre dédié.
3.1.7. Json¶
Cet utilitaire propose les fonctionnalités de manipulation de Json en utilisant Jackson.
Ce module propose une configuration par défaut pour Vitam.
3.1.8. Exception¶
L’exception parente Vitam VitamException s’y trouve. Toutes les exceptions Vitam en héritent.
3.1.9. Client¶
Le client parent Vitam BasicClient et son implémentation des méthodes commune AbstractClient s’y trouvent. Une configuration commune SSLClientConfiguration complète le client Vitam.