# Configuration de l’environnement de développement

Voici comment préparez votre environnement de développement afin de pouvoir coder, démarrer les micros services, débugger…

## 1. Prérequis

L’installation du poste de travail a été faite (installation de GIT, Maven, Docker, IntelliJ…).

Assurez-vous que le plugin lfs pour GIT a été installé pour vous permettre la récupération des fichiers SIP (.zip) du projet vitam-itests.

Dans le cas contraire voici la ligne de commande à lancer :

Debian family : `$ git lfs install`

RedHat family : `$ sudo yum install git-lfs`

## 2. Récupérez le code source

Placez-vous dans le dossier ou vous voulez mettre le code source Vitam sur lequel vous allez travailler :

`$ git clone <gitlab vitam/vitam>`

`$ git clone <gitlab vitam/vitam-conf-dev>`

`$ git clone <gitlab vitam/vitam-itests>`

Remarque : toutes les lignes de commande ``cd`` des points suivants supposent que vous êtes dans votre dossier de travail

## 3. Démarrez Docker

Déplacez vous dans le dossier suivant et exécuter la commande `run_cots.sh`

`$ cd vitam/dev-deployment`

`$ ./run_cots.sh`

## 4. Dans Docker

`[xxxxx@xxxxxxxxxxxx code]$ vitam-build-repo`

`[xxxxx@xxxxxxxxxxxx code]$ vitam-deploy-cots`

## 5. Ajoutez les lignes suivantes dans le fichier `/etc/hosts`

    127.0.0.1       metadata.service.consul
    127.0.0.1       logbook.service.consul
    127.0.0.1       storage.service.consul
    127.0.0.1       functional-administration.service.consul
    127.0.0.1       processing.service.consul
    127.0.0.1       ingest-external.service.consul
    127.0.0.1       ingest-internal.service.consul
    127.0.0.1       access-internal.service.consul
    127.0.0.1       access-external.service.consul
    127.0.0.1       collect-internal.service.consul
    127.0.0.1       collect-external.service.consul
    127.0.0.1       workspace.service.consul
    127.0.0.1       workspace-collect.service.consul
    127.0.0.1       offer-fs-1.service.consul
    127.0.0.1       ihm-recette.service.consul
    127.0.0.1       ihm-demo.service.consul
    127.0.0.1       security-internal.service.consul
    192.30.253.113  github.com

## 7. Lancez IntelliJ

Et installez le plugin « Multirun ».

## 8. Importez le project Vitam dans IntelliJ

En utilisant le menu Import Project puis sélectionnez `vitam/sources/pom.xml`

## 9. Initialisez la configuration

Copiez le dossier `vitam-conf-dev/intellig-conf/runConfigurations` dans le dossier `vitam/sources/.idea` (automatiquement créé par IntelliJ)

Redémarrez IntelliJ.

(XX. Ajouter le XML snippet: ``vitam/logback/vitam-logback.xml`` par exemple dans votre dossier ``HOME``)

## 10. Dans IntelliJ, configurez les chemins suivants pour chaque module du projet :

> - Dans le menu déroulant des configurations de debug/run d’IntelliJ > Edit Configurations…
> - Dans la boite de dialogue Run/Debug Configuration dépliez l’item « Application » et selectionnez le premier projet.
> - Modifiez les champs :
>     - VM options (vérifie le chemin de l’option `-Dlogback.configurationFile=` qui doit pointer vers le fichier vitam-logback.xml précédent)
>     - Program arguments
>     - Working directory

## 11. Dossier de travail:

Exécutez le commade suivante : `$ sudo chmod -R ugo+w /vitam`

Dans `/vitam/data/storage` créez le fichier `offer-fs-1.service.consul` contenant la ligne suivante `fr.gouv.vitam.storage.offers.workspace.driver.DriverImpl`

## 12. initialisation de la base de données :

$ cd vitam/vitam-conf-dev/scripts

$ ./init_data_vitam.sh

Puis dans IntelliJ : lancer « launch cucumber_init »

## 13. Démarrez les services dans IntelliJ

Dans le menu déroulant des configurations de debug/run d’IntelliJ selectionnez vitamIhm

Lancez les services en cliquant sur bouton debug

## 14. Démarrage de l’IHM

$ cd vitam/sources/ihm-demo/ihm-demo-front/

$ npm run start

$ cd vitam/sources/ihm-recette/ihm-recette-web-front/

$ npm run start

## 15. Utilisez Vitam

- Transfert SIP et plan de classement http://localhost:4201
- Recette : Tests des requêtes DSL http://localhost:4202

Remarque :

> - login : aadmin
> - password : aadmin1234