Class MetaFilter
- java.lang.Object
-
- org.eclipse.jgit.http.server.glue.MetaFilter
-
- All Implemented Interfaces:
javax.servlet.Filter
- Direct Known Subclasses:
GitFilter
public class MetaFilter extends java.lang.Object implements javax.servlet.Filter
Generic container filter to manage routing to different pipelines.Callers can create and configure a new processing pipeline by using one of the
serve(String)
orserveRegex(String)
methods to allocate a binder for a particular URL pattern.Registered filters and servlets are initialized lazily, usually during the first request. Once initialized the bindings in this servlet cannot be modified without destroying the servlet and thereby destroying all registered filters and servlets.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<ServletBinderImpl>
bindings
private UrlPipeline[]
pipelines
(package private) static java.lang.String
REGEX_GROUPS
private javax.servlet.ServletContext
servletContext
-
Constructor Summary
Constructors Constructor Description MetaFilter()
Empty filter with no bindings.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private UrlPipeline[]
createPipelines()
void
destroy()
void
doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain)
private UrlPipeline
find(javax.servlet.http.HttpServletRequest req)
private UrlPipeline[]
getPipelines()
void
init(javax.servlet.FilterConfig filterConfig)
private static java.util.Set<java.lang.Object>
newIdentitySet()
protected ServletBinder
register(ServletBinder b)
Configure a newly created binder.private ServletBinder
register(ServletBinderImpl b)
ServletBinder
serve(java.lang.String path)
Construct a binding for a specific path.ServletBinder
serveRegex(java.lang.String expression)
Construct a binding for a regular expression.ServletBinder
serveRegex(java.util.regex.Pattern pattern)
Construct a binding for a regular expression.
-
-
-
Field Detail
-
REGEX_GROUPS
static final java.lang.String REGEX_GROUPS
- See Also:
- Constant Field Values
-
servletContext
private javax.servlet.ServletContext servletContext
-
bindings
private final java.util.List<ServletBinderImpl> bindings
-
pipelines
private volatile UrlPipeline[] pipelines
-
-
Method Detail
-
serve
public ServletBinder serve(java.lang.String path)
Construct a binding for a specific path.- Parameters:
path
- pattern to match.- Returns:
- binder for the passed path.
-
serveRegex
public ServletBinder serveRegex(java.lang.String expression)
Construct a binding for a regular expression.- Parameters:
expression
- the regular expression to pattern match the URL against.- Returns:
- binder for the passed expression.
-
serveRegex
public ServletBinder serveRegex(java.util.regex.Pattern pattern)
Construct a binding for a regular expression.- Parameters:
pattern
- the regular expression to pattern match the URL against.- Returns:
- binder for the passed expression.
-
init
public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException
- Specified by:
init
in interfacejavax.servlet.Filter
- Throws:
javax.servlet.ServletException
-
destroy
public void destroy()
- Specified by:
destroy
in interfacejavax.servlet.Filter
-
newIdentitySet
private static java.util.Set<java.lang.Object> newIdentitySet()
-
doFilter
public void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain) throws java.io.IOException, javax.servlet.ServletException
- Specified by:
doFilter
in interfacejavax.servlet.Filter
- Throws:
java.io.IOException
javax.servlet.ServletException
-
find
private UrlPipeline find(javax.servlet.http.HttpServletRequest req) throws javax.servlet.ServletException
- Throws:
javax.servlet.ServletException
-
register
private ServletBinder register(ServletBinderImpl b)
-
register
protected ServletBinder register(ServletBinder b)
Configure a newly created binder.- Parameters:
b
- the newly created binder.- Returns:
- binder for the caller, potentially after adding one or more filters into the pipeline.
-
getPipelines
private UrlPipeline[] getPipelines() throws javax.servlet.ServletException
- Throws:
javax.servlet.ServletException
-
createPipelines
private UrlPipeline[] createPipelines() throws javax.servlet.ServletException
- Throws:
javax.servlet.ServletException
-
-