Consolidated technical reference. Use this page as an anchor for external links (issues, RFCs, other Antora sites).
Maven artefacts
| Artefact | Role |
|---|---|
|
Public SPI: |
|
Servlet 6.1 engine — dispatcher, filter chain, sessions, error pages, listeners, security, |
|
HTTP bridge to Chappe ( |
|
CDI bridge to Vauban ( |
|
Arquillian harness for the official TCK — standalone |
JPMS modules and 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; // M1 coupling — will become an SPI in 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
}
|
The |
Public API: FoyChappeBoot
| Method | Description |
|---|---|
|
Returns a fresh |
|
Required. Vauban |
|
URL prefix served by this container. Default: |
|
Session timeout in seconds. Default: |
|
Returns |
|
The |
|
Mount prefix to use ( |
|
The container’s |
|
Fire |
|
Fire |
Public SPI (foy-api)
| Type | Role |
|---|---|
|
Session storage backend. Default: |
|
Application authentication. Default: |
|
Immutable authenticated-user representation (login, roles, attributes). |
web.xml configuration
Foy reads the standard Servlet 6.1 WEB-INF/web.xml:
-
<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>exposed viaServletContext.getInitParameter -
<multipart-config>at<servlet>level
META-INF/web-fragment.xml fragments are merged under standard metadata-complete.
Servlet 6.1 API comparison
| Area | Foy status | Notes |
|---|---|---|
Core ( |
✅ |
Near-complete coverage in the official TCK. |
|
✅ |
Cross-context ( |
Async ( |
⚠️ |
Standard cases OK; |
Multipart ( |
✅ |
Streaming over the Chappe body. |
Sessions |
✅ |
|
Security (Basic) |
✅ |
|
Security (Form, Digest, Jakarta Auth) |
❌ |
|
WebSocket (Servlet 6.1 upgrade) |
❌ |
|
JSP |
❌ |
Not supported, not planned. |