Class ScriptableHandler

  • All Implemented Interfaces:
    Closeable, AutoCloseable, Handler

    public class ScriptableHandler
    extends AbstractScriptableHeapObject<Response>
    implements Handler
    A scriptable handler. This handler acts as a simple wrapper around the scripting engine. Scripts are provided with the bindings provided by AbstractScriptableHeapObject plus :

    Contains also easy access to attributes from the AttributesContext, e.g: attributes.user = "jackson", instead of contexts.attributes.attributes.user = "jackson".

    In the same way, it gives access to session from the SessionContext, for example, you can use: session.put(...), instead of contexts.session.session.put(...).

    • Method Detail

      • handle

        public Promise<Response,​NeverThrowsException> handle​(Context context,
                                                                   Request request)
        Description copied from interface: Handler
        Returns a Promise representing the asynchronous Response of the given request. If any (asynchronous) processing goes wrong, the promise still contains a Response (probably from the 4xx or 5xx status code family).

        A handler that doesn't hand-off the processing to another downstream handler is responsible for creating the response.

        The returned Promise contains the response returned from the server as-is. This is responsibility of the handler to produce the appropriate error response (404, 500, ...) in case of processing error.

        Note: As of Promise 2.0 implementation, it is not permitted to throw any runtime exception here. Doing so produce unexpected behaviour (most likely a server-side hang of the processing thread).

        Specified by:
        handle in interface Handler
        Parameters:
        context - The request context.
        request - The request.
        Returns:
        A Promise representing the response to be returned to the caller.