All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.simpleframework.http.resource.ResourceEngine Maven / Gradle / Ivy

Go to download

Simple is a high performance asynchronous HTTP server for Java

There is a newer version: 5.1.6
Show newest version
/*
 * ResourceEngine.java February 2001
 *
 * Copyright (C) 2001, Niall Gallagher 
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General 
 * Public License along with this library; if not, write to the 
 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
 * Boston, MA  02111-1307  USA
 */
 
package org.simpleframework.http.resource;

import org.simpleframework.http.Address;

/**
 * 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 */ public interface ResourceEngine { /** * 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. * * @param target the address used to identify the resource * * @return this returns the resource used to handle the request */ public Resource resolve(Address target); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy