IHM Recette serveur
####################

IhmRecette
===========
L'application web IHM Recette est utilisée pour lancer le serveur.

.. code-block:: java

		VitamStarter.createVitamStarterForIHM(WebApplicationConfig.class, configurationFile,
            BusinessApplication.class, AdminApplication.class, Lists.newArrayList());

Classe BusinessApplication
============================

La classe BusinessApplication possède les singletons qui contiennent les ressources de l'application web IHM recette(WebApplicationResource) pour:

* Supprimer des collections vitam (WebApplicationResourceDelete)
* Gérer les tests système(ApplicativeTestResource)
* Définir les performances(PerformanceResource)

.. code-block:: java

    commonBusinessApplication = new CommonBusinessApplication();
        singletons = new HashSet<>();
        singletons.addAll(commonBusinessApplication.getResources());

        final WebApplicationResourceDelete deleteResource = new WebApplicationResourceDelete(configuration);
        final WebApplicationResource resource = new WebApplicationResource(configuration.getTenants(), configuration.getSecureMode());
        singletons.add(deleteResource);
        singletons.add(resource);

        Path sipDirectory = Paths.get(configuration.getSipDirectory());
        Path reportDirectory = Paths.get(configuration.getPerformanceReportDirectory());

        if (!Files.exists(sipDirectory)) {
            Exception sipNotFound =
                new FileNotFoundException(String.format("directory %s does not exist", sipDirectory));
            throw Throwables.propagate(sipNotFound);
        }

        if (!Files.exists(reportDirectory)) {
            Exception reportNotFound =
                new FileNotFoundException(format("directory %s does not exist", reportDirectory));
            throw Throwables.propagate(reportNotFound);
        }

        PerformanceService performanceService = new PerformanceService(sipDirectory, reportDirectory);
        singletons.add(new PerformanceResource(performanceService));

        String testSystemSipDirectory = configuration.getTestSystemSipDirectory();
        String testSystemReportDirectory = configuration.getTestSystemReportDirectory();
        ApplicativeTestService applicativeTestService =
            new ApplicativeTestService(Paths.get(testSystemReportDirectory));

        singletons.add(new ApplicativeTestResource(applicativeTestService,
            testSystemSipDirectory));

Configuration
=============

Le fichier de configuration se nomme ihm-recette.conf:

Fichier ``ihm-recette.conf``
----------------------------

.. literalinclude:: ../../../../../deployment/ansible-vitam/roles/vitam/templates/ihm-recette/ihm-recette.conf.j2
   :language: text

* port, serverHost, jettyConfig, tenants, secureMode
* baseUrl, baseUri (qui configure jetty)
* authentication (ajoute le filtre shiro si le booléen est à "true")
* dbName, masterdataDbName, logbookDbName, metadataDbName, mongoDbNodes, clusterName, elasticsearchNodes
* testSystemSipDirectory, testSystemReportDirectory
* sipDirectory, performanceReportDirectory
* elasticsearchExternalMetadataMappings (liste des collections respectivement Unit et ObjectGroup et les fichiers de mappings associés d'elasticsearch)
