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 Details

    • 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.