Métadata¶
Utilisation¶
Paramètres¶
Le client¶
Le client propose actuellement différentes méthodes : insert et selection des units, select des objectGroups.
Il faut ajouter la dependance au niveau de pom.xml
<dependency>
<groupId>fr.gouv.vitam</groupId>
<artifactId>metadata-client</artifactId>
<version>${project.version}</version>
</dependency>
1. Créer le client métadata
En deux étapes
- chargement de la configuration en utilisant
MetaDataClientFactory.changeMode(new ClientConfigurationImpl(server, port));
ou
MetaDataClientFactory.changeMode(ConfigurationFilePath);)
- création du client
final MetaDataClient metadataClient = MetaDataClientFactory.getInstance().getClient();
2. Accéder aux fonctionnalités différents
le client métadata fournit les foncitonnalités suivantes : insérer un ArchiveUnit,
insérer un ObjectGroup et sélectionner un métadata (archiveUnit). Le détail de l'utilisation
de chaque fonctionnalité est ci-dessous.
2.1 Insérer des ArchiveUnits
try {
JsonNode result= metadataClient.insertUnit(JsonNode insertQuery)
} catch (InvalidParseOperationException e) {
LOG.error("parsing error", e);
throw e;
} catch (MetaDataExecutionException e) {
LOG.error("execution error", e);
throw e;
} catch (MetaDataDocumentSizeException e) {
LOG.error("document size input error", e);
throw e;
} catch (MetaDataAlreadyExistException e) {
LOG.error("data already exists error", e);
throw e;
} catch (MetaDataNotFoundException e) {
LOG.error("not found parent/path error", e);
throw e;
}
Paramètre d'entrée est une requête DSL de type JsonNode, indiquant la requête sur la collection Unit.
Un exemple de la requête paramètrée est le suivant :
{
"$root" : [],
"$queries": [{ "$path": "aaaaa" }],
"$filter": { },
"$data": { "_id": "value" }
}
Cette fonction retourne une réponse de type JsonNode contenant les informations : code de retour en cas d'erreur,
la requête effectuée sur la collection ...
2.1 Insérer des ObjectGroups
try {
JsonNode result= metadataClient.insertObjectGroup(JsonNode insertQuery)
} catch (InvalidParseOperationException e) {
LOG.error("parsing error", e);
throw e;
} catch (MetaDataExecutionException e) {
LOG.error("execution error", e);
throw e;
} catch (MetaDataDocumentSizeException e) {
LOG.error("document size input error", e);
throw e;
} catch (MetaDataAlreadyExistException e) {
LOG.error("data already exists error", e);
throw e;
} catch (MetaDataNotFoundException e) {
LOG.error("not found parent/path error", e);
throw e;
}
Paramètre d'entrée est une requête DSL de type JsonNode, indiquant la requête sur la collection ObjectGroup.
Un exemple de la requête paramètrée est le suivant :
{
"$root" : [],
"$queries": [{ "$exists": "value" }],
"$filter": { },
"$data": { "_id": "objectgroupValue" }
}
Cette fonction retourne une réponse de type JsonNode contenant les informations : code de retour en cas d'erreur,
la requête effectuée sur la collection ...
2.3 Sélection des ArchiveUnits
try {
// return JsonNode
jsonNode = metaDataClient.selectUnits(
accessModuleBean != null ? accessModuleBean.getRequestDsl() : "");
} catch (InvalidParseOperationException e) {
LOG.error("parsing error", e);
throw e;
} catch (MetadataInvalidSelectException e) {
LOG.error("invalid select", e);
throw e;
} catch (MetaDataDocumentSizeException e) {
LOG.error("document size problem", e);
throw e;
} catch (MetaDataExecutionException e) {
LOG.error("metadata execution problem", e);
throw e;
} catch (IllegalArgumentException e) {
LOG.error("illegal argument", e);
throw new AccessExecutionException();
} catch (Exception e) {
LOG.error("exeption thrown", e);
throw e;
}
2.4 Sélection d'un ObjectGroup
try {
JsonNode selectQuery;
String objectGroupId;
// return JsonNode
jsonNode = metaDataClient.selectObjectGrouptbyId(selectQuery, objectGroupId);
} catch (InvalidParseOperationException e) {
LOG.error("parsing error", e);
throw e;
} catch (MetadataInvalidSelectException e) {
LOG.error("invalid select", e);
throw e;
} catch (MetaDataDocumentSizeException e) {
LOG.error("document size problem", e);
throw e;
} catch (MetaDataExecutionException e) {
LOG.error("metadata execution problem", e);
throw e;
} catch (IllegalArgumentException e) {
LOG.error("illegal argument", e);
throw new AccessExecutionException();
} catch (MetadataInvalidSelectException e) {
LOG.error("invalid selection", e);
throw new AccessExecutionException();
} catch (Exception e) {
LOG.error("exeption thrown", e);
throw e;
}