Interface ResourceEngine


  • public interface ResourceEngine
    The ResourceEngine is used to create implementations of the Resource interface that suit the targeted resource. Different Resource objects may be needed to handle different files/directories or even applications. The request URI specified must be a HTTP request URI as of RFC 2616.

    The meaning of HTTP URI in this instance is the request URI from a HTTP/x.x request, as RFC 2616 and RFC 2396 defines it

     
     Request-Line = Method SP Request-URI SP HTTP-Version CRLF
    
     Request-URI = "*" | absoluteURI | abs_path | authority
     absoluteURI = "http:" "//" host [":" port] [abs_path ["?" query]] 
     abs_path = "/" path_segments         
     path_segments = segment *( "/" segment )
     
    The ResourceEngine object must be prepared to accept the request URI that come in the form outlined above. These can include formats like
     
     http://some.host/pub;param=value/bin/index.html?name=value
     http://some.host:8080/index.en_US.html
     some.host:8080/index.html
     /usr/bin;param=value/README.txt
     /usr/bin/compress.tar.gz
     
    The ResourceEngine implementation should be able to directly take a Request-URI as defined in RFC 2616 and translate this into a Resource. This keeps the objects semantics simple and explicit, although at the expense of performance.
    Author:
    Niall Gallagher
    • Method Detail

      • resolve

        Resource resolve​(Address target)
        This will look for and retrieve the requested resource. The target given must be in the form of a request URI. This will locate the resource and return the Resource implementation that will handle the target.
        Parameters:
        target - the address used to identify the resource
        Returns:
        this returns the resource used to handle the request