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 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) or serveRegex(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 Details

  • Constructor Details

    • MetaFilter

      public MetaFilter()
      Empty filter with no bindings.
  • Method Details

    • serve

      public ServletBinder serve(String path)
      Construct a binding for a specific path.
      Parameters:
      path - pattern to match.
      Returns:
      binder for the passed path.
    • serveRegex

      public ServletBinder serveRegex(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(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 interface javax.servlet.Filter
      Throws:
      javax.servlet.ServletException
    • destroy

      public void destroy()
      Specified by:
      destroy in interface javax.servlet.Filter
    • newIdentitySet

      private static Set<Object> newIdentitySet()
    • doFilter

      public void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain) throws IOException, javax.servlet.ServletException
      Specified by:
      doFilter in interface javax.servlet.Filter
      Throws:
      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