Référence technique consolidée. Cette page sert de point d’ancrage pour les liens externes (issues, RFC, autres sites Antora).
Artefacts Maven
| Artefact | Rôle |
|---|---|
|
Interfaces SPI publiques : |
|
Moteur Servlet 6.1 — dispatcher, filter chain, sessions, error pages, listeners, sécurité, parser |
|
Pont HTTP vers Chappe ( |
|
Pont CDI vers Vauban ( |
|
Harness Arquillian pour le TCK officiel — POM |
Modules JPMS et exports
module io.vidocq.foy.api {
requires transitive jakarta.servlet;
requires static jakarta.annotation;
exports io.vidocq.foy.spi.session; // SessionStore
exports io.vidocq.foy.spi.security; // SecurityProvider, AuthenticatedUser
}
module io.vidocq.foy.core {
requires transitive io.vidocq.foy.api;
requires transitive jakarta.servlet;
requires static jakarta.cdi;
requires static jakarta.annotation;
requires java.xml;
requires static java.net.http;
requires io.vidocq.chappe.api; // couplage M1 — sera SPI en M2
exports io.vidocq.foy.internal.async;
exports io.vidocq.foy.internal.boot;
exports io.vidocq.foy.internal.bridge;
exports io.vidocq.foy.internal.container;
exports io.vidocq.foy.internal.dispatcher;
exports io.vidocq.foy.internal.error;
exports io.vidocq.foy.internal.http;
exports io.vidocq.foy.internal.listener;
exports io.vidocq.foy.internal.security;
exports io.vidocq.foy.internal.session;
exports io.vidocq.foy.internal.webxml;
}
module io.vidocq.foy.chappe {
requires transitive io.vidocq.foy.api;
requires io.vidocq.foy.core;
requires io.vidocq.chappe.api;
requires jakarta.servlet;
requires jakarta.cdi;
exports io.vidocq.foy.chappe; // FoyChappeBoot
}
module io.vidocq.foy.cdi.vauban {
requires transitive io.vidocq.foy.api;
requires jakarta.cdi;
requires io.vidocq.vauban.core;
exports io.vidocq.foy.cdi.vauban; // FoyVaubanBootstrap
}
|
Les packages |
API publique : FoyChappeBoot
| Méthode | Description |
|---|---|
|
Retourne un |
|
Obligatoire. |
|
Préfixe d’URL servi par ce container. Défaut : |
|
Timeout de session en secondes. Défaut : |
|
Retourne |
|
Le |
|
Préfixe de mount à utiliser ( |
|
Le |
|
Déclenche les |
|
Déclenche les |
SPI publique (foy-api)
| Type | Rôle |
|---|---|
|
Backend de stockage de sessions. Default : |
|
Authentification applicative. Default : |
|
Représentation immutable d’un utilisateur authentifié (login, rôles, attributs). |
Configuration web.xml
Foy lit le WEB-INF/web.xml standard Servlet 6.1 :
-
<servlet>/<servlet-mapping> -
<filter>/<filter-mapping> -
<listener> -
<session-config>(timeout, cookie config) -
<security-constraint>,<login-config>,<security-role> -
<error-page> -
<welcome-file-list> -
<context-param>exposés viaServletContext.getInitParameter -
<multipart-config>au niveau<servlet>
Les fragments META-INF/web-fragment.xml sont mergés selon metadata-complete standard.
Comparaison API Servlet 6.1
| Domaine | Statut Foy | Notes |
|---|---|---|
Core ( |
✅ |
Couverture quasi complète au TCK officiel. |
|
✅ |
Cross-context ( |
Async ( |
⚠️ |
Cas standards OK ; |
Multipart ( |
✅ |
Streaming sur le body Chappe. |
Sessions |
✅ |
|
Security (Basic) |
✅ |
|
Security (Form, Digest, Jakarta Auth) |
❌ |
|
WebSocket (Servlet 6.1 upgrade) |
❌ |
|
JSP |
❌ |
Non supporté, non planifié. |