Class ResourceHandler

  • All Implemented Interfaces:
    Handler

    public class ResourceHandler
    extends Object
    implements Handler
    A ResourceHandler is a handler that serves static content (content of a directory, or a zip).

    It's using the remaining URL information provided by the UriRouterContext to determine the resource path to look for. Configuration options:

     
     {
          "type": "ResourceHandler",
              "config": {
                  "directories"            : array of strings,   [REQUIRED - the list of directories to be searched when
                                                                             looking up static content to be served.]
                  "basePath"               : string,             [OPTIONAL - default to "", required if the route
                                                                             is anything other than /.]
                  "welcomePages"           : array of strings,   [OPTIONAL - default to empty list. Represents a set of
                                                                             static content that should be served from
                                                                             one of the specified directories when no
                                                                             specific resource is requested.]
              }
     }
     
    
     
    For example:
     
     {
         "type": "ResourceHandler",
         "name": "StaticWebsite",
         "config": {
             "directories"            : ["/path/to/static/pages"],
             "basePath"               : "website",
             "welcomePages"           : ["index.html"]
         }
     }
     
     
    • Constructor Detail

      • ResourceHandler

        public ResourceHandler​(Factory<Buffer> storage,
                               List<ResourceSet> sets,
                               List<String> welcomePages)
        Creates a new ResourceHandler with the given sets of ResourceSet and the list of welcome pages mappings.
        Parameters:
        storage - the temporary storage to use to stream the resource
        sets - provide access to Resource.
        welcomePages - the list of resources name to be searched if there is no remaining path to use in the request.
    • 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.