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.FilterGeneric 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>bindingsprivate UrlPipeline[]pipelines(package private) static java.lang.StringREGEX_GROUPSprivate javax.servlet.ServletContextservletContext
-
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()voiddestroy()voiddoFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain)private UrlPipelinefind(javax.servlet.http.HttpServletRequest req)private UrlPipeline[]getPipelines()voidinit(javax.servlet.FilterConfig filterConfig)private static java.util.Set<java.lang.Object>newIdentitySet()protected ServletBinderregister(ServletBinder b)Configure a newly created binder.private ServletBinderregister(ServletBinderImpl b)ServletBinderserve(java.lang.String path)Construct a binding for a specific path.ServletBinderserveRegex(java.lang.String expression)Construct a binding for a regular expression.ServletBinderserveRegex(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:
initin interfacejavax.servlet.Filter- Throws:
javax.servlet.ServletException
-
destroy
public void destroy()
- Specified by:
destroyin 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:
doFilterin interfacejavax.servlet.Filter- Throws:
java.io.IOExceptionjavax.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
-
-