Factual reference: published Maven artefacts, exported Java modules, supported Jakarta REST 4.0 annotations, configuration properties.
Maven artefacts
| Artefact | Role |
|---|---|
|
Public SPI: HTTP/transport ( |
|
JAX-RS engine (Invoker, ResourceScanner, RouteRegistry, MessageBodyRegistry, filters, providers, SSE, multipart) + the adapter generators ( |
|
JAX-RS Client 4.0 — zero-dependency |
|
|
|
Reference transport — wires Cassini onto Chappe (HTTP/1.1, H2, virtual threads). Used for the TCK. |
|
Pure JDK transport — |
|
APT annotation processor — generates |
|
Maven plugin ( |
|
Examples: |
cassini-tck is not published; it is an in-reactor module gated behind the tck Maven profile — a plain mvn install neither downloads nor runs anything TCK-related. See TCK — runner architecture.
|
Java modules
| Module | Exports / Provides |
|---|---|
|
|
|
One public export:
|
|
|
|
|
|
|
|
|
|
|
cassini-core deliberately does not expose its CassiniRuntimeDelegate via ServiceLoader — to avoid a collision with the RuntimeDelegate from the active transport (cassini-chappe or cassini-jdk-http).
|
Supported annotations
@Path, @GET, @POST, @PUT, @DELETE, @PATCH, @HEAD, @OPTIONS, @HttpMethod, @ApplicationPath,
@Produces, @Consumes,
@PathParam, @QueryParam, @HeaderParam, @CookieParam, @FormParam, @MatrixParam, @BeanParam,
@DefaultValue, @Encoded,
@Provider, @Priority, @NameBinding, @PreMatching,
@Context,
@Suspended (async — supported; SSE real-time streaming since M2i, and M2h was dropped as a non-goal — see TCK).
CDI (with cassini-cdi-vauban): @ApplicationScoped, @RequestScoped, @Singleton, @Inject.
Implemented JAX-RS interfaces
Application, SeBootstrap, Configuration, Configurable,
UriInfo, Request, HttpHeaders, SecurityContext, Providers,
MessageBodyReader, MessageBodyWriter, ContextResolver, ExceptionMapper,
ContainerRequestFilter, ContainerResponseFilter, ReaderInterceptor, WriterInterceptor,
DynamicFeature, Feature,
Sse, SseEventSink, SseBroadcaster,
AsyncResponse, CompletionCallback, ConnectionCallback,
EntityPart, EntityPart.Builder (multipart §3.5.4).
Client side (cassini-client): Client, ClientBuilder, WebTarget, Invocation, Invocation.Builder, AsyncInvoker, ClientRequestContext, ClientResponseContext, ClientRequestFilter, ClientResponseFilter.
Configuration
Cassini is configured via SeBootstrap.Configuration (standard) or via the CassiniStack.builder() builder (advanced):
Property |
Default |
Description |
|
|
Transport listening interface. |
|
|
HTTP port. |
|
|
Mount prefix for the |
|
|
|
When Cassini is driven by Vidocq Runtime (the io.vidocq.runtime.extensions.jakartaee.core:vidocq-runtime-cassini-rest-extension extension), the JAX-RS application is mounted on the shared Chappe server through the runtime’s HTTP mount configuration:
Property |
Example |
Description |
|
|
Mount prefix of the JAX-RS application in the Vidocq server. |
|
|
Mount type — |