org.apache.tapestry5

## Class TapestryFilter

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

- All Implemented Interfaces:
    javax.servlet.Filter
  Direct Known Subclasses:
    TapestrySpringFilter

      public class TapestryFilter
      extends java.lang.Object
      implements javax.servlet.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 and Description
    --- | ---
    `static java.lang.String` | `REGISTRY_CONTEXT_NAME` Key under which the Tapestry IoC `Registry` is stored in the ServletContext.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TapestryFilter()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain)`
    `protected javax.servlet.FilterConfig` | `getFilterConfig()`
    `void` | `init(javax.servlet.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 java.lang.Class[]` | `provideExtraModuleClasses(javax.servlet.ServletContext context)` Overridden in subclasses to provide additional module classes beyond those normally located.
    `protected ModuleDef[]` | `provideExtraModuleDefs(javax.servlet.ServletContext context)` Overridden in subclasses to provide additional module definitions beyond those normally located.

    - ### 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 java.lang.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(javax.servlet.FilterConfig filterConfig)
                          throws javax.servlet.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 `javax.servlet.Filter`
      Throws:
        `javax.servlet.ServletException`

    - #### getFilterConfig

          protected final javax.servlet.FilterConfig getFilterConfig()

    - #### init

          protected void init(Registry registry)
                       throws javax.servlet.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:
        `javax.servlet.ServletException`

    - #### provideExtraModuleDefs

          protected ModuleDef[] provideExtraModuleDefs(javax.servlet.ServletContext context)

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

    - #### provideExtraModuleClasses

          protected java.lang.Class[] provideExtraModuleClasses(javax.servlet.ServletContext context)

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

    - #### doFilter

          public final 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 interface `javax.servlet.Filter`
      Throws:
        `java.io.IOException`
        `javax.servlet.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 `javax.servlet.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` -

${project.version} - Copyright © 2003-2015 The Apache Software Foundation.