Cette page liste l’ensemble des artefacts publiés par Vauban, les packages JPMS qu’ils exportent, les goals du plugin Maven et la comparaison entre les profils CDI Lite et Full.
Artefacts Maven
| Artefact | Scope conseillé | Rôle |
|---|---|---|
|
|
API publique ( |
|
|
Container runtime CDI 4.1 Lite |
|
|
APT (génération de |
|
|
Indexer build-time des beans (zéro dépendance) |
|
|
Plugin Maven (goals : |
|
|
SPI ClassLoader ( |
|
|
Implémentation |
|
|
Extension JUnit 5 ( |
|
|
Suite officielle de tests d’intégration |
Modules JPMS exportés
| Module | Packages exportés |
|---|---|
|
|
|
|
|
|
|
(interne — requiert |
|
|
|
|
|
|
io.vidocq.vauban.core fournit jakarta.enterprise.inject.spi.CDIProvider via provides. Aucun opens non justifié.
Goals du plugin Maven
| Goal | Rôle |
|---|---|
|
Scanne le module-path et écrit |
|
Lance l’APT (équivalent à |
|
Génère les |
|
Analyse JPMS, détecte split packages et exports incohérents. |
|
Packaging d’une distribution prête à l’exécution (jlink + image). |
|
Chiffrement de jar signé via |
Extension JUnit (vauban-junit)
@VaubanTest boote un container léger pour les tests :
@VaubanTest
class GreetingServiceTest {
@Inject GreetingService greeting;
@Test
void hello() {
assertEquals("Hello, Vauban!", greeting.hello("Vauban"));
}
}
Trois modes de découverte :
-
@VaubanTestseul —scanLocal()du package du test. -
@VaubanTest(scan = ScanMode.CLASSPATH)—scanClasspath()complet. -
@VaubanTest(beans = {Foo.class, Bar.class})—addBeanClass(…).
Comparaison CDI 4.1 Lite vs Full
| Fonctionnalité | Lite | Full | Vauban |
|---|---|---|---|
Beans gérés, scopes standards |
✅ |
✅ |
✅ |
Producers, disposers |
✅ |
✅ |
✅ |
Événements ( |
✅ |
✅ |
✅ |
Intercepteurs ( |
✅ |
✅ |
✅ |
Build Compatible Extensions (BCE) |
✅ |
✅ |
✅ |
Portable Extensions ( |
❌ |
✅ |
❌ |
|
❌ |
✅ |
❌ |
|
❌ |
✅ |
// TODO@user: confirmer |
Passivation, sérialisation des beans |
❌ |
✅ |
❌ |
|
❌ |
✅ |
❌ |
EL pour beans gérés |
❌ |
✅ |
❌ |
Decorators |
Optionnel |
✅ |
// TODO@user: valider la couverture |
Configuration
Vauban ne nécessite aucun fichier de configuration applicatif. La sélection des beans se fait via :
-
le
module-info.java(visibilité JPMS) ; -
la stratégie de bootstrap (
scanLocal(),scanClasspath(),addBeanClass()).
Pour la configuration applicative dynamique, utiliser MicroProfile Config via Vidocq Runtime.