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 .. code-block:: xml fr.gouv.vitam metadata-client ${project.version} 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 : .. code-block:: json { "$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 .. code-block:: java 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 .. code-block:: java 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; }