Package org.mockserver.async
Interface AsyncApiControlPlane
- All Known Implementing Classes:
AsyncApiControlPlaneImpl
public interface AsyncApiControlPlane
SPI interface for the AsyncAPI control-plane, defined in mockserver-core so that
HttpState can route PUT/GET /mockserver/asyncapi
without depending on the mockserver-async module.
The implementation lives in org.mockserver.async.controlplane.AsyncApiControlPlaneImpl
(mockserver-async) and is registered at server startup via
AsyncApiControlPlaneRegistry.register(AsyncApiControlPlane).
This follows the same singleton-registry pattern used by GrpcHealthRegistry,
WasmStore, and DriftStore:
a lightweight interface/holder in core, implementation in an optional module, HttpState
routes to the holder, and the holder gracefully returns "not available" when no
implementation is registered.
-
Method Summary
Modifier and TypeMethodDescriptioncom.fasterxml.jackson.databind.JsonNodeLoad an AsyncAPI spec and start mocking (publishing and/or subscribing).voidreset()Reset all async mocking state — stop publishers/subscribers, clear recorded messages.com.fasterxml.jackson.databind.JsonNodestatus()Return the current status: loaded spec info, active channels, publishers, subscribers, and recorded messages.Verify that recorded messages match the given criteria.
-
Method Details
-
load
Load an AsyncAPI spec and start mocking (publishing and/or subscribing).- Parameters:
requestBody- the raw request body — either a plain AsyncAPI spec (JSON/YAML) or a JSON wrapper{"spec": "...", "brokerConfig": {...}}- Returns:
- a JSON status node describing what was loaded and started
-
status
com.fasterxml.jackson.databind.JsonNode status()Return the current status: loaded spec info, active channels, publishers, subscribers, and recorded messages.- Returns:
- a JSON status node
-
reset
void reset()Reset all async mocking state — stop publishers/subscribers, clear recorded messages. Called fromHttpState.reset(). -
verify
Verify that recorded messages match the given criteria.The verification request is a JSON string with fields:
channel(required) — the channel/topic to checkpayloadSubstring(optional) — payload must contain this substringpayloadJsonPath(optional) — a dot-notation JSON path to extractexpectedValue(optional) — the expected value at the JSON pathcount(optional) — object withatLeast,atMost, orexactlyfields; defaults toatLeast: 1
- Parameters:
verificationJson- the JSON verification request- Returns:
nullor empty string if the verification passes; a human-readable failure description if it does not- Throws:
IllegalArgumentException- if the request is malformed
-