16.2. workspace¶
le workspace est un module qui consiste à stocker le sip dans un container lors de traitement. Il y a un controle des paramètres (SanityChecker.checkJsonAll) transmis avec ESAPI.
16.2.1. 1- Consommer les services exposés par le module:¶
1.1 - Introduction :
- on peut consommer les services via le sous module workspaceClient notament via la classe WorkspaceClient:
- Cette classe contient la liste des methodes suivantes :
CreateContainer :
- Paramètres :
- containerName::String
- Retourner :
getUriListDigitalObjectFromFolder :
Paramètres :
- containerName::String
- folderName::String
Retourner :
- List<URI>
Dans le cas echéant la method return une immuatable empty list.
uncompressObject : cette méthode capable d’extracter des fichiers compressés toute en indiquant le type de l’archive, pour cette version (v0.9.0) supporte 3 types : zip, tar, tar.gz. Elle sauvgarde directement les fichiers extractés dans le workspace, notamment dans le container précisé lors de l’appel (containerName).
- Paramètres :
- containerName::String : c’est le nom de container dans lequel on stocke les objets
- folderName::String : c’est le répertoire central (pour cette methode, c’est le sip)
- archiveType::String : c’est le nom ou le type de l’archive (exemple: application/zip , application/x-tar)
- compressedInputStream::InputStream : c’est le stream des objets compressés
- retourner :
Dans le cas echéant (uncompress KO) la methode génère une exception avec un message internal server.
getObjectInformation :
Paramètres :
containerName::String
objectName::String
Retourner :
JsonNode
La méthode retourne un Json contenant des informations sur un objet présent sur le workspace (et des exceptions en cas d’erreur : objet non existant, erreur server).
purgeOldFilesInContainer : Cette méthode permet de purger les anciens fichiers dans un conteneur (date de dernière modification date d’au moins une durée donnée)
- Paramètres :
- containerName::String
- timeToLive::TimeToLive
16.2.2. 2.2 - Exemple d’utilisation¶
D’abord il faut ajouter la dependence sur la pom.xml du projet.
<dependencies>
<groupId>fr.gouv.vitam</groupId>
<artifactId>workspace-client<artifactId>
<version>x.x.x</version>
</dependencies>
Supposons que nous avons besoins d’extraire un SIP de format zip dans le workspace.
InputStream inputStream=new InputStream(zippedFile);
WorkspaceClientFactory.changeMode(WORKSPACE_URL);
WorkspaceClientFactory.changeMode(FileConfiguration);
WorkspaceClient workspaceClient = WorkspaceClientFactory().getInstance().getClient();
workspaceClient.createContainer(containerName);
workspaceClient.uncompressObject(containerName,"SIP","application/zip" inputStream);
16.2.3. 2- Configuration du pom¶
Configuration du pom avec maven-surefire-plugin permet le build sous jenkins. Il permet de configurer le chemin des resources de esapi dans le common private.