# Class FrameworkListener

java.lang.Object
org.apache.catalina.core.FrameworkListener

All Implemented Interfaces:
  `ContainerListener, LifecycleListener`

Direct Known Subclasses:
  `ThreadLocalLeakPreventionListener`

public abstract class FrameworkListener extends Object implements LifecycleListener, ContainerListener
This listener must be declared in server.xml as a Server listener, possibly optional. It will register a lifecycle listener on all contexts. This is an alternative to adding a Listener in context.xml with more flexibility.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final ConcurrentHashMap<Context, LifecycleListener>`
  `contextListeners`
  Map of context to their associated lifecycle listeners.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FrameworkListener()`
  Creates a new FrameworkListener instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `containerEvent(ContainerEvent event)`
  Acknowledge the occurrence of the specified event.
  `protected abstract LifecycleListener`
  `createLifecycleListener(Context context)`
  Create a lifecycle listener which will then be added to the specified context.
  `void`
  `lifecycleEvent(LifecycleEvent event)`
  Acknowledge the occurrence of the specified event.
  `protected void`
  `processContainerAddChild(Container child)`
  Processes the addition of a child container by registering appropriate listeners.
  `protected void`
  `processContainerRemoveChild(Container child)`
  Processes the removal of a child container by unregistering appropriate listeners.
  `protected void`
  `registerContextListener(Context context)`
  Creates and registers a lifecycle listener for the given context.
  `protected void`
  `registerListenersForEngine(Engine engine)`
  Registers listeners on all hosts of the given engine.
  `protected void`
  `registerListenersForHost(Host host)`
  Registers listeners on all contexts of the given host.
  `protected void`
  `registerListenersForServer(Server server)`
  Registers listeners on all engines of the given server.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### contextListeners

    protected final ConcurrentHashMap<Context, LifecycleListener> contextListeners
    Map of context to their associated lifecycle listeners.

- ## Constructor Details

  - ### FrameworkListener

    public FrameworkListener()
    Creates a new FrameworkListener instance.

- ## Method Details

  - ### createLifecycleListener

    protected abstract LifecycleListener createLifecycleListener(Context context)
    Create a lifecycle listener which will then be added to the specified context.
    Parameters:
      `context` - the associated Context
    Returns:
      the lifecycle listener

  - ### lifecycleEvent

    public void lifecycleEvent(LifecycleEvent event)
    Description copied from interface: `LifecycleListener`
    Acknowledge the occurrence of the specified event.
    Specified by:
      `lifecycleEvent` in interface `LifecycleListener`
    Parameters:
      `event` - LifecycleEvent that has occurred

  - ### containerEvent

    public void containerEvent(ContainerEvent event)
    Description copied from interface: `ContainerListener`
    Acknowledge the occurrence of the specified event.
    Specified by:
      `containerEvent` in interface `ContainerListener`
    Parameters:
      `event` - ContainerEvent that has occurred

  - ### registerListenersForServer

    protected void registerListenersForServer(Server server)
    Registers listeners on all engines of the given server.
    Parameters:
      `server` - The server to register listeners for

  - ### registerListenersForEngine

    protected void registerListenersForEngine(Engine engine)
    Registers listeners on all hosts of the given engine.
    Parameters:
      `engine` - The engine to register listeners for

  - ### registerListenersForHost

    protected void registerListenersForHost(Host host)
    Registers listeners on all contexts of the given host.
    Parameters:
      `host` - The host to register listeners for

  - ### registerContextListener

    protected void registerContextListener(Context context)
    Creates and registers a lifecycle listener for the given context.
    Parameters:
      `context` - The context to register a listener for

  - ### processContainerAddChild

    protected void processContainerAddChild(Container child)
    Processes the addition of a child container by registering appropriate listeners.
    Parameters:
      `child` - The child container that was added

  - ### processContainerRemoveChild

    protected void processContainerRemoveChild(Container child)
    Processes the removal of a child container by unregistering appropriate listeners.
    Parameters:
      `child` - The child container that was removed