Présentation du launcher
Un launcher permet de lancer tous les modules Open ENT avec un seul executable. Cela permet de simplifier le développement ou pour un déploiement à vocation de test. Il ne doit pas être utilisé en production.
Il existe 2 launchers dans Open ENT v3 :
- un launcher Quarkus pour les nouveaux modules Open ENT v3
- un launcher Vert.x compatible avec les anciens module Open ENT NG
Le launcher Vert.x est à utiliser uniquement pour la migration. Il ne supporte pas une version de JAVA supérieure à Java 8
Fonctionnalité des 2 launchers
Launcher Quarkus
Voilà les services proposés par ce launcher :
- Le launcher permet de lancer tous les modules dans une seule JVM pour simplifier les tests.
- Le launcher permet de mettre facilement un point d'arrêt.
Il est nécessaire de préciser dans le pom.xml quels sont les modules à démarrer.
Exemple de fichier pom.xml avec les modules portal, directory, admin, feeder et catalog :
<dependency>
<groupId>fr.tech.openent</groupId>
<artifactId>portal</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>fr.tech.openent</groupId>
<artifactId>directory</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>fr.tech.openent</groupId>
<artifactId>admin</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>fr.tech.openent</groupId>
<artifactId>feeder</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>fr.tech.openent</groupId>
<artifactId>catalog</artifactId>
<version>${project.parent.version}</version>
</dependency>
Launcher Vert.x
Le launcher Vert.x fonctionne avec un proxy HTTP permettant de renvoyer suivant l'appel HTTP un message au bon module suivant l'url.
Exemple : localhost:8090/admin va renvoyer vers localhost:8089
(voir détail sur les urls et les ports)
Le launcher utilise une seule JVM (Java Virtual Machine).
Configuration
Le launcher Vert.X utilise des fichiers de configuration disponibles dans le repértoire /config.
Plusieurs configurations existent :
-
ent-core-v3.json : configuration pour le launcher Vert.x ou Quarkus en version Open ENT v3
Fichiers de configuration Open ENT NG :
-
ent-core.json : configuration pour SpringBoard avec container Docker
-
ent-core-simple.json : services minimalistes
-
ent-core-localhost.json : configuration avec container Docker, mais un Vert.x launcher qui n'est pas dans un container
Gestion des modules
Dans le launcher Vert.x, on précise tous les modules à utiliser dans le pom.xml et on précise les modules dans le fichier ent-core.json.
Il n'y a pas de chargement dynamique du module dans le répertoire mods car le chargement se fait à la construction grace aux dépendances Maven. Cette solution est moins souple qu'avec Open ENT NG, mais cette limitation est dû au passage à Java > 8 et à la gestion des modules Java.
Chaque dépendance des modules Open ENT NG doit se faire de la manière suivante :
<dependency>
<groupId>fr.wseduc</groupId>
<artifactId>http-proxy</artifactId>
<version>2.0.0</version>
<classifier>fat</classifier>
</dependency>
Il est aussi nécessaire que le module soit recompilé avec la version Vert.x 4 qui est la version compatible avec Quarkus 3.