Package org.apache.tapestry5.http

## Class TapestryFilter

- java.lang.Object
- - org.apache.tapestry5.http.TapestryFilter

- All Implemented Interfaces:
    `Filter`
  Direct Known Subclasses:
    `TapestryFilter`, `TapestrySpringFilter`

      public class TapestryFilter
      extends Object
      implements Filter

  The TapestryFilter is responsible for intercepting all requests into the web application. It identifies the requests that are relevant to Tapestry, and lets the servlet container handle the rest. It is also responsible for initializing Tapestry. The application is primarily configured via context-level init parameters.
  tapestry.app-package
    The application package (used to search for pages, components, etc.)
  In addition, a JVM system property affects configuration: `tapestry.execution-mode` (with default value "production"). This property is a comma-separated list of execution modes. For each mode, an additional init parameter is checked for: `tapestry.mode-modules`; this is a comma-separated list of module class names to load. In this way, more precise control over the available modules can be obtained which is often needed during testing.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `REGISTRY_CONTEXT_NAME` | Key under which the Tapestry IoC `Registry` is stored in the ServletContext.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TapestryFilter()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `destroy()` | Shuts down and discards the registry.
    `protected void` | `destroy​(Registry registry)` | Invoked from `destroy()` to allow subclasses to add additional shutdown logic to the filter.
    `void` | `doFilter​(ServletRequest request, ServletResponse response, FilterChain chain)` |
    `protected FilterConfig` | `getFilterConfig()` |
    `void` | `init​(FilterConfig filterConfig)` | Initializes the filter using the `TapestryAppInitializer`.
    `protected void` | `init​(Registry registry)` | Invoked from `init(FilterConfig)` after the Registry has been created, to allow any additional initialization to occur.
    `protected Class[]` | `provideExtraModuleClasses​(ServletContext context)` | Overridden in subclasses to provide additional module classes beyond those normally located.
    `protected ModuleDef[]` | `provideExtraModuleDefs​(ServletContext context)` | Overridden in subclasses to provide additional module definitions beyond those normally located.
    `void` | `runFilter​(ServletRequest request, ServletResponse response, FilterChain chain)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### REGISTRY_CONTEXT_NAME

          public static final String REGISTRY_CONTEXT_NAME

      Key under which the Tapestry IoC `Registry` is stored in the ServletContext. This allows other code, beyond Tapestry, to obtain the Registry and, from it, any Tapestry services. Such code should be careful about invoking `Registry.cleanupThread()` appropriately.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### TapestryFilter

          public TapestryFilter()

  - ### Method Detail

    - #### init

          public final void init​(FilterConfig filterConfig)
                          throws ServletException

      Initializes the filter using the `TapestryAppInitializer`. The application name is the capitalization of the filter name (as specified in web.xml).
      Specified by:
        `init` in interface `Filter`
      Throws:
        `ServletException`

    - #### getFilterConfig

          protected final FilterConfig getFilterConfig()

    - #### init

          protected void init​(Registry registry)
                       throws ServletException

      Invoked from `init(FilterConfig)` after the Registry has been created, to allow any additional initialization to occur. This implementation does nothing, and my be overridden in subclasses.
      Parameters:
        `registry` - from which services may be extracted
      Throws:
        `ServletException`

    - #### provideExtraModuleDefs

          protected ModuleDef[] provideExtraModuleDefs​(ServletContext context)

      Overridden in subclasses to provide additional module definitions beyond those normally located. This implementation returns an empty array.

    - #### provideExtraModuleClasses

          protected Class[] provideExtraModuleClasses​(ServletContext context)

      Overridden in subclasses to provide additional module classes beyond those normally located. This implementation returns an empty array.
      Since:
        5.3

    - #### runFilter

          public final void runFilter​(ServletRequest request,
                                      ServletResponse response,
                                      FilterChain chain)
                               throws IOException,
                                      ServletException

      Throws:
        `IOException`
        `ServletException`

    - #### doFilter

          public final void doFilter​(ServletRequest request,
                                     ServletResponse response,
                                     FilterChain chain)
                              throws IOException,
                                     ServletException

      Specified by:
        `doFilter` in interface `Filter`
      Throws:
        `IOException`
        `ServletException`

    - #### destroy

          public final void destroy()

      Shuts down and discards the registry. Invokes `destroy(org.apache.tapestry5.ioc.Registry)` to allow subclasses to perform any shutdown logic, then shuts down the registry, and removes it from the ServletContext.
      Specified by:
        `destroy` in interface `Filter`

    - #### destroy

          protected void destroy​(Registry registry)

      Invoked from `destroy()` to allow subclasses to add additional shutdown logic to the filter. The Registry will be shutdown after this call. This implementation does nothing, and may be overridden in subclasses.
      Parameters:
        `registry` -