Class ServletUtils
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringRequest attribute storing either UploadPack or ReceivePack.static final StringRequest attribute which stores theRepositoryinstance. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static booleanacceptsGzipEncoding(String accepts) (package private) static booleanacceptsGzipEncoding(javax.servlet.http.HttpServletRequest req) private static byte[]compress(byte[] raw) static voidConsume the rest of the input stream and discard it.static voidconsumeRequestBody(javax.servlet.http.HttpServletRequest req) Consume the entire request body, if one was supplied.private static Stringetag(byte[] content) static InputStreamgetInputStream(javax.servlet.http.HttpServletRequest req) Open the request input stream, automatically inflating if necessary.static RepositorygetRepository(javax.servlet.ServletRequest req) Get the selected repository from the request.(package private) static Stringidentify(Repository git) (package private) static booleanisChunked(javax.servlet.http.HttpServletRequest req) static voidsend(byte[] content, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp) Send a response to aGETorHEADHTTP request.private static byte[]sendInit(byte[] content, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp) static voidsendPlainText(String content, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp) Send a plain text response to aGETorHEADHTTP request.
-
Field Details
-
ATTRIBUTE_REPOSITORY
Request attribute which stores theRepositoryinstance.- See Also:
-
ATTRIBUTE_HANDLER
Request attribute storing either UploadPack or ReceivePack.- See Also:
-
-
Constructor Details
-
ServletUtils
private ServletUtils()
-
-
Method Details
-
getRepository
Get the selected repository from the request.- Parameters:
req- the current request.- Returns:
- the repository; never null.
- Throws:
IllegalStateException- the repository was not set by the filter, the servlet is being invoked incorrectly and the programmer should ensure the filter runs before the servlet.- See Also:
-
getInputStream
public static InputStream getInputStream(javax.servlet.http.HttpServletRequest req) throws IOException Open the request input stream, automatically inflating if necessary.This method automatically inflates the input stream if the request
Content-Encodingheader was set togzipor the legacyx-gzip.- Parameters:
req- the incoming request whose input stream needs to be opened.- Returns:
- an input stream to read the raw, uncompressed request body.
- Throws:
IOException- if an input or output exception occurred.
-
consumeRequestBody
public static void consumeRequestBody(javax.servlet.http.HttpServletRequest req) Consume the entire request body, if one was supplied.- Parameters:
req- the request whose body must be consumed.
-
isChunked
static boolean isChunked(javax.servlet.http.HttpServletRequest req) -
consumeRequestBody
Consume the rest of the input stream and discard it.- Parameters:
in- the stream to discard, closed if not null.
-
sendPlainText
public static void sendPlainText(String content, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp) throws IOException Send a plain text response to aGETorHEADHTTP request.The text response is encoded in the Git character encoding, UTF-8.
If the user agent supports a compressed transfer encoding and the content is large enough, the content may be compressed before sending.
The
ETagandContent-Lengthheaders are automatically set by this method.Content-Encodingis conditionally set if the user agent supports a compressed transfer. Callers are responsible for setting any cache control headers.- Parameters:
content- to return to the user agent as this entity's body.req- the incoming request.rsp- the outgoing response.- Throws:
IOException- the servlet API rejected sending the body.
-
send
public static void send(byte[] content, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp) throws IOException Send a response to aGETorHEADHTTP request.If the user agent supports a compressed transfer encoding and the content is large enough, the content may be compressed before sending.
The
ETagandContent-Lengthheaders are automatically set by this method.Content-Encodingis conditionally set if the user agent supports a compressed transfer. Callers are responsible for settingContent-Typeand any cache control headers.- Parameters:
content- to return to the user agent as this entity's body.req- the incoming request.rsp- the outgoing response.- Throws:
IOException- the servlet API rejected sending the body.
-
sendInit
private static byte[] sendInit(byte[] content, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp) throws IOException - Throws:
IOException
-
acceptsGzipEncoding
static boolean acceptsGzipEncoding(javax.servlet.http.HttpServletRequest req) -
acceptsGzipEncoding
-
compress
- Throws:
IOException
-
etag
-
identify
-