Interface AdapterProvider

All Superinterfaces:
AutoCloseable

public interface AdapterProvider extends AutoCloseable
Vendor-neutral provider contract for optional J7M adapters.

Provider implementations are owned by the adapter module that creates them. They are expected to be thread-safe after construction unless their descriptor explicitly reports narrower lifecycle or concurrency limits. Methods may perform bounded I/O or validation work; implementations must document blocking behavior, honor caller deadlines in their own public facades, and normalize failures into stable J7M error codes when they cross a public boundary. Closing a provider releases owned resources and causes later work to fail with an unavailable-style error.

The contract does not expose vendor SDK types and does not require any external product for J7M native acceptance. Capability descriptors, status, health, metrics, audit events, and probe results must be redacted and must not contain credentials, bearer tokens, raw payloads, private keys, or endpoint secrets.

  • Method Details

    • id

      Returns the stable adapter provider identifier.
      Returns:
      adapter provider identifier
    • descriptor

      Returns the current capability descriptor.
      Returns:
      immutable descriptor describing claimed and unsupported semantics
    • health

      AdapterHealth health()
      Returns a safe health snapshot.
      Returns:
      current provider health
    • status

      AdapterStatus status()
      Returns a safe status snapshot.
      Returns:
      current provider status
    • metrics

      Returns safe provider metrics.
      Returns:
      metrics snapshot
    • auditEvents

      List<AdapterAuditEvent> auditEvents()
      Returns safe audit events retained by the provider.
      Returns:
      immutable audit event list
    • close

      void close()
      Closes provider-owned resources.

      Implementations must be idempotent. The method must not leak raw credentials or payload values in thrown exceptions. Blocking cleanup work should be bounded and documented by the implementation.

      Specified by:
      close in interface AutoCloseable