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 |
|
Container-neutral |
|
|
|
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 or cassini-cdi-vauban): @ApplicationScoped, @RequestScoped, @Singleton, @Inject, and the interceptors of the container.
Other CDI containers NEW
Cassini does not need Vauban. cassini-cdi finds the running container through CDI.current() and resolves the resources and providers as its beans; with Vauban, cassini-cdi-vauban outranks it. With no container running, Cassini runs without CDI, as before (cassini#53).
cassini-it-weld, part of every build and never published, runs Cassini on Chappe with Weld SE 6.0 (CDI 4.1) on a class path: a resource gets an injected bean, a @RequestScoped bean is one instance per request, and an interceptor on a resource method applies. Without cassini-cdi, the same resources answer 404.
-
Start the container first, then build the
CassiniStack: the provider is chosen when the stack is built. -
annotateddiscovery mode —CassiniScopeExtensiongives a@Pathclass without a scope@RequestScoped, but a container inannotatedmode only visits classes that already have a bean-defining annotation. Give your resources a scope, or usebean-discovery-mode="all"for the archive that holds them. -
No Open Liberty module — on an application server, use the server’s own Jakarta REST: replacing it with Cassini brings nothing.
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 — |