Class RegexPipeline
The pattern is bound and matched against the path info of the servlet
request, as this class assumes it is invoked by MetaServlet
.
If there are capture groups in the regular expression, the matched ranges of
the capture groups are stored as an array of modified HttpServetRequests,
into the request attribute MetaFilter.REGEX_GROUPS
. Using a capture
group that may not capture, e.g. "(/foo)?"
, will cause an error at
request handling time.
Each servlet request has been altered to have its getServletPath()
method return the original path info up to the beginning of the corresponding
capture group, and its getPathInfo()
method return the matched text.
A RegexGroupFilter
can be applied in the pipeline to switch the
current HttpServletRequest to reference a different capture group before
running additional filters, or the final servlet.
Note that for getPathInfo()
to start with a leading "/" as described
in the servlet documentation, capture groups must actually capture the
leading "/".
This class dispatches the remainder of the pipeline using the first capture
group as the current request, making RegexGroupFilter
required only
to access capture groups beyond the first.
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionRegexPipeline
(Pattern pattern, javax.servlet.Filter[] filters, javax.servlet.http.HttpServlet servlet) -
Method Summary
Modifier and TypeMethodDescription(package private) boolean
match
(javax.servlet.http.HttpServletRequest req) Determine if this pipeline handles the request's URL.(package private) void
service
(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp) Execute the filters and the servlet on the request.toString()
Methods inherited from class org.eclipse.jgit.http.server.glue.UrlPipeline
destroy, init
-
Field Details
-
pattern
-
-
Constructor Details
-
RegexPipeline
RegexPipeline(Pattern pattern, javax.servlet.Filter[] filters, javax.servlet.http.HttpServlet servlet)
-
-
Method Details
-
match
boolean match(javax.servlet.http.HttpServletRequest req) Description copied from class:UrlPipeline
Determine if this pipeline handles the request's URL.This method should match on the request's
getPathInfo()
method, asMetaServlet
passes the request along as-is to each pipeline's match method.- Specified by:
match
in classUrlPipeline
- Parameters:
req
- current HTTP request being considered byMetaServlet
.- Returns:
true
if this pipeline is configured to handle the request;false
otherwise.
-
service
void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp) throws javax.servlet.ServletException, IOException Description copied from class:UrlPipeline
Execute the filters and the servlet on the request.Invoked by
MetaServlet
onceUrlPipeline.match(HttpServletRequest)
has determined this pipeline is the correct pipeline to handle the current request.- Overrides:
service
in classUrlPipeline
- Parameters:
req
- current HTTP request.rsp
- current HTTP response.- Throws:
javax.servlet.ServletException
- request cannot be completed.IOException
- IO error prevents the request from being completed.
-
toString
-