Interface LifecycleObserver
public interface LifecycleObserver
Read-only hook methods for observing system and request lifecycle events.
Note: some of these methods are "fail-fast" - exceptions thrown will bubble out and stop execution - and for others,
Soklet will catch exceptions and surface separately via didReceiveLogEvent(LogEvent).
A standard threadsafe implementation can be acquired via the defaultInstance() factory method.
Full documentation is available at https://www.soklet.com/docs/request-lifecycle.
- Author:
- Mark Allen
-
Method Summary
Modifier and TypeMethodDescriptionstatic @NonNull LifecycleObserverAcquires a threadsafeLifecycleObserverinstance with sensible defaults.default voiddidAcceptConnection(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress) Called after a server accepts a new TCP connection.default voiddidAcceptRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget) Called after a request is accepted for application-level handling.default voiddidEstablishServerSentEventConnection(@NonNull ServerSentEventConnection serverSentEventConnection) Called after an SSE connection is established.default voiddidFailToAcceptConnection(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @NonNull ConnectionRejectionReason reason, @Nullable Throwable throwable) Called after a server fails to accept a new TCP connection.default voiddidFailToAcceptRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget, @NonNull RequestRejectionReason reason, @Nullable Throwable throwable) Called when a request fails to be accepted before application-level handling begins.default voiddidFailToEstablishServerSentEventConnection(@NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull ServerSentEventConnection.HandshakeFailureReason reason, @Nullable Throwable throwable) Called if an SSE connection fails to establish.default voiddidFailToReadRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget, @NonNull RequestReadFailureReason reason, @Nullable Throwable throwable) Called when a request could not be read or parsed into a validRequest.default voiddidFailToStartServer(@NonNull Server server, @NonNull Throwable throwable) Called after aServerinstance was asked to start, but failed due to an exception.default voiddidFailToStartServerSentEventServer(@NonNull ServerSentEventServer serverSentEventServer, @NonNull Throwable throwable) Called after aServerSentEventServerinstance was asked to start, but failed due to an exception.default voiddidFailToStartSoklet(@NonNull Soklet soklet, @NonNull Throwable throwable) Called after aSokletinstance was asked to start, but failed due to an exception.default voiddidFailToStopServer(@NonNull Server server, @NonNull Throwable throwable) Called after aServerinstance was asked to stop, but failed due to an exception.default voiddidFailToStopServerSentEventServer(@NonNull ServerSentEventServer serverSentEventServer, @NonNull Throwable throwable) Called after aServerSentEventServerinstance was asked to stop, but failed due to an exception.default voiddidFailToStopSoklet(@NonNull Soklet soklet, @NonNull Throwable throwable) Called after aSokletinstance was asked to stop, but failed due to an exception.default voiddidFailToWriteResponse(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse, @NonNull Duration responseWriteDuration, @NonNull Throwable throwable) Called after response data fails to write.default voiddidFailToWriteServerSentEvent(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEvent serverSentEvent, @NonNull Duration writeDuration, @NonNull Throwable throwable) Called after an SSE event fails to write.default voiddidFailToWriteServerSentEventComment(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEventComment serverSentEventComment, @NonNull Duration writeDuration, @NonNull Throwable throwable) Called after an SSE comment fails to write.default voiddidFinishRequestHandling(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse, @NonNull Duration duration, @NonNull List<@NonNull Throwable> throwables) Called after a request finishes processing.default voiddidReadRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget) Called when a request was successfully read or parsed into a validRequest.default voiddidReceiveLogEvent(@NonNull LogEvent logEvent) Called when Soklet emits a log event.default voiddidStartRequestHandling(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod) Called as soon as a request is received and a Resource Method has been resolved to handle it.default voiddidStartServer(@NonNull Server server) Called after the server starts.default voiddidStartServerSentEventServer(@NonNull ServerSentEventServer serverSentEventServer) Called after the SSE server starts.default voiddidStartSoklet(@NonNull Soklet soklet) Called after aSokletinstance starts.default voiddidStopServer(@NonNull Server server) Called after the server stops.default voiddidStopServerSentEventServer(@NonNull ServerSentEventServer serverSentEventServer) Called after the SSE server stops.default voiddidStopSoklet(@NonNull Soklet soklet) Called after aSokletinstance stops.default voiddidTerminateServerSentEventConnection(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull Duration connectionDuration, @NonNull ServerSentEventConnection.TerminationReason terminationReason, @Nullable Throwable throwable) Called after an SSE connection is terminated.default voiddidWriteResponse(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse, @NonNull Duration responseWriteDuration) Called after response data is written.default voiddidWriteServerSentEvent(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEvent serverSentEvent, @NonNull Duration writeDuration) Called after an SSE event is written.default voiddidWriteServerSentEventComment(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEventComment serverSentEventComment, @NonNull Duration writeDuration) Called after an SSE comment is written.default voidwillAcceptConnection(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress) Called when a server is about to accept a new TCP connection.default voidwillAcceptRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget) Called when a request is about to be accepted for application-level handling.default voidwillEstablishServerSentEventConnection(@NonNull Request request, @Nullable ResourceMethod resourceMethod) Called before an SSE connection is established.default voidwillReadRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget) Called when Soklet is about to read or parse a request into a validRequest.default voidwillStartServer(@NonNull Server server) Called before the server starts.default voidwillStartServerSentEventServer(@NonNull ServerSentEventServer serverSentEventServer) Called before the SSE server starts.default voidwillStartSoklet(@NonNull Soklet soklet) Called before aSokletinstance starts.default voidwillStopServer(@NonNull Server server) Called before the server stops.default voidwillStopServerSentEventServer(@NonNull ServerSentEventServer serverSentEventServer) Called before the SSE server stops.default voidwillStopSoklet(@NonNull Soklet soklet) Called before aSokletinstance stops.default voidwillTerminateServerSentEventConnection(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEventConnection.TerminationReason terminationReason, @Nullable Throwable throwable) Called before an SSE connection is terminated.default voidwillWriteResponse(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse) Called before response data is written.default voidwillWriteServerSentEvent(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEvent serverSentEvent) Called before an SSE event is written.default voidwillWriteServerSentEventComment(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEventComment serverSentEventComment) Called before an SSE comment is written.
-
Method Details
-
willStartSoklet
Called before aSokletinstance starts. -
didStartSoklet
Called after aSokletinstance starts. -
didFailToStartSoklet
-
willStopSoklet
Called before aSokletinstance stops. -
didStopSoklet
Called after aSokletinstance stops. -
didFailToStopSoklet
-
willStartServer
Called before the server starts. -
didStartServer
Called after the server starts. -
didFailToStartServer
-
willStopServer
Called before the server stops. -
didStopServer
Called after the server stops. -
didFailToStopServer
-
willAcceptConnection
default void willAcceptConnection(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress) Called when a server is about to accept a new TCP connection.- Parameters:
serverType- the server type that is accepting the connectionremoteAddress- the best-effort remote address, ornullif unavailable
-
didAcceptConnection
default void didAcceptConnection(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress) Called after a server accepts a new TCP connection.- Parameters:
serverType- the server type that accepted the connectionremoteAddress- the best-effort remote address, ornullif unavailable
-
didFailToAcceptConnection
default void didFailToAcceptConnection(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @NonNull ConnectionRejectionReason reason, @Nullable Throwable throwable) Called after a server fails to accept a new TCP connection.- Parameters:
serverType- the server type that failed to accept the connectionremoteAddress- the best-effort remote address, ornullif unavailablereason- the failure reasonthrowable- an optional underlying cause, ornullif not applicable
-
willAcceptRequest
default void willAcceptRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget) Called when a request is about to be accepted for application-level handling.- Parameters:
serverType- the server type that received the requestremoteAddress- the best-effort remote address, ornullif unavailablerequestTarget- the raw request target (path + query) if known, ornullif unavailable
-
didAcceptRequest
default void didAcceptRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget) Called after a request is accepted for application-level handling.- Parameters:
serverType- the server type that received the requestremoteAddress- the best-effort remote address, ornullif unavailablerequestTarget- the raw request target (path + query) if known, ornullif unavailable
-
didFailToAcceptRequest
default void didFailToAcceptRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget, @NonNull RequestRejectionReason reason, @Nullable Throwable throwable) Called when a request fails to be accepted before application-level handling begins.- Parameters:
serverType- the server type that received the requestremoteAddress- the best-effort remote address, ornullif unavailablerequestTarget- the raw request target (path + query) if known, ornullif unavailablereason- the rejection reasonthrowable- an optional underlying cause, ornullif not applicable
-
willReadRequest
default void willReadRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget) Called when Soklet is about to read or parse a request into a validRequest.- Parameters:
serverType- the server type that received the requestremoteAddress- the best-effort remote address, ornullif unavailablerequestTarget- the raw request target (path + query) if known, ornullif unavailable
-
didReadRequest
default void didReadRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget) Called when a request was successfully read or parsed into a validRequest.- Parameters:
serverType- the server type that received the requestremoteAddress- the best-effort remote address, ornullif unavailablerequestTarget- the raw request target (path + query) if known, ornullif unavailable
-
didFailToReadRequest
default void didFailToReadRequest(@NonNull ServerType serverType, @Nullable InetSocketAddress remoteAddress, @Nullable String requestTarget, @NonNull RequestReadFailureReason reason, @Nullable Throwable throwable) Called when a request could not be read or parsed into a validRequest.- Parameters:
serverType- the server type that received the requestremoteAddress- the best-effort remote address, ornullif unavailablerequestTarget- the raw request target (path + query) if known, ornullif unavailablereason- the failure reasonthrowable- an optional underlying cause, ornullif not applicable
-
didStartRequestHandling
default void didStartRequestHandling(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod) Called as soon as a request is received and a Resource Method has been resolved to handle it.- Parameters:
serverType- the server type that received the request
-
didFinishRequestHandling
default void didFinishRequestHandling(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse, @NonNull Duration duration, @NonNull List<@NonNull Throwable> throwables) Called after a request finishes processing. -
willWriteResponse
default void willWriteResponse(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse) Called before response data is written. -
didWriteResponse
default void didWriteResponse(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse, @NonNull Duration responseWriteDuration) Called after response data is written. -
didFailToWriteResponse
default void didFailToWriteResponse(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse, @NonNull Duration responseWriteDuration, @NonNull Throwable throwable) Called after response data fails to write. -
willStartServerSentEventServer
Called before the SSE server starts. -
didStartServerSentEventServer
Called after the SSE server starts. -
didFailToStartServerSentEventServer
default void didFailToStartServerSentEventServer(@NonNull ServerSentEventServer serverSentEventServer, @NonNull Throwable throwable) Called after aServerSentEventServerinstance was asked to start, but failed due to an exception. -
willStopServerSentEventServer
Called before the SSE server stops. -
didStopServerSentEventServer
Called after the SSE server stops. -
didFailToStopServerSentEventServer
default void didFailToStopServerSentEventServer(@NonNull ServerSentEventServer serverSentEventServer, @NonNull Throwable throwable) Called after aServerSentEventServerinstance was asked to stop, but failed due to an exception. -
willEstablishServerSentEventConnection
default void willEstablishServerSentEventConnection(@NonNull Request request, @Nullable ResourceMethod resourceMethod) Called before an SSE connection is established. -
didEstablishServerSentEventConnection
default void didEstablishServerSentEventConnection(@NonNull ServerSentEventConnection serverSentEventConnection) Called after an SSE connection is established. -
didFailToEstablishServerSentEventConnection
default void didFailToEstablishServerSentEventConnection(@NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull ServerSentEventConnection.HandshakeFailureReason reason, @Nullable Throwable throwable) Called if an SSE connection fails to establish.- Parameters:
reason- the handshake failure reasonthrowable- an optional underlying cause, ornullif not applicable
-
willTerminateServerSentEventConnection
default void willTerminateServerSentEventConnection(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEventConnection.TerminationReason terminationReason, @Nullable Throwable throwable) Called before an SSE connection is terminated. -
didTerminateServerSentEventConnection
default void didTerminateServerSentEventConnection(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull Duration connectionDuration, @NonNull ServerSentEventConnection.TerminationReason terminationReason, @Nullable Throwable throwable) Called after an SSE connection is terminated. -
willWriteServerSentEvent
default void willWriteServerSentEvent(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEvent serverSentEvent) Called before an SSE event is written. -
didWriteServerSentEvent
default void didWriteServerSentEvent(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEvent serverSentEvent, @NonNull Duration writeDuration) Called after an SSE event is written. -
didFailToWriteServerSentEvent
default void didFailToWriteServerSentEvent(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEvent serverSentEvent, @NonNull Duration writeDuration, @NonNull Throwable throwable) Called after an SSE event fails to write. -
willWriteServerSentEventComment
default void willWriteServerSentEventComment(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEventComment serverSentEventComment) Called before an SSE comment is written. -
didWriteServerSentEventComment
default void didWriteServerSentEventComment(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEventComment serverSentEventComment, @NonNull Duration writeDuration) Called after an SSE comment is written. -
didFailToWriteServerSentEventComment
default void didFailToWriteServerSentEventComment(@NonNull ServerSentEventConnection serverSentEventConnection, @NonNull ServerSentEventComment serverSentEventComment, @NonNull Duration writeDuration, @NonNull Throwable throwable) Called after an SSE comment fails to write. -
didReceiveLogEvent
Called when Soklet emits a log event. -
defaultInstance
Acquires a threadsafeLifecycleObserverinstance with sensible defaults.- Returns:
- a
LifecycleObserverwith default settings
-