public interface ResourceEngine
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.gzThe
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.Resource resolve(Address target)
Resource
implementation that will handle the target.target
- the address used to identify the resource