# Package org.apache.catalina

Interface Summary
AccessLog: Intended for use by a `Valve` to indicate that the `Valve` provides access logging.
AsyncDispatcher
Authenticator: An Authenticator is a component (usually a Valve or Container) that provides some sort of authentication service.
Cluster: A Cluster works as a Cluster client/server for the local host Different Cluster implementations can be used to support different ways to communicate within the Cluster.
Contained: Decoupling interface which specifies that an implementing class is associated with at most one Container instance.
Container: A Container is an object that can execute requests received from a client, and return responses based on those requests.
ContainerListener: Interface defining a listener for significant Container generated events.
ContainerServlet: A ContainerServlet is a servlet that has access to Catalina internal functionality, and is loaded from the Catalina class loader instead of the web application class loader.
Context: A Context is a Container that represents a servlet context, and therefore an individual web application, in the Catalina servlet engine.
CredentialHandler: This interface is used by the `Realm` to compare the user provided credentials with the credentials stored in the `Realm` for that user.
DistributedManager: Interface implemented by session managers that do not keep a complete copy of all sessions in memory but do know where every session is.
Engine: An Engine is a Container that represents the entire Catalina servlet engine.
Executor
Group: Abstract representation of a group of `User`s in a `UserDatabase`.
Host: A Host is a Container that represents a virtual host in the Catalina servlet engine.
JmxEnabled: This interface is implemented by components that will be registered with an MBean server when they are created and unregistered when they are destroyed.
Lifecycle: Common interface for component life cycle methods.
Lifecycle.SingleUse: Marker interface used to indicate that the instance should only be used once.
LifecycleListener: Interface defining a listener for significant events (including "component start" and "component stop" generated by a component that implements the Lifecycle interface.
Loader: A Loader represents a Java ClassLoader implementation that can be used by a Container to load class files (within a repository associated with the Loader) that are designed to be reloaded upon request, as well as a mechanism to detect whether changes have occurred in the underlying repository.
Manager: A Manager manages the pool of Sessions that are associated with a particular Context.
Pipeline: Interface describing a collection of Valves that should be executed in sequence when the `invoke()` method is invoked.
Realm: A Realm is a read-only facade for an underlying security realm used to authenticate individual users, and identify the security roles associated with those users.
Role: Abstract representation of a security role, suitable for use in environments like JAAS that want to deal with `Principals`.
Server: A `Server` element represents the entire Catalina servlet container.
Service: A Service is a group of one or more Connectors that share a single Container to process their incoming requests.
Session: A Session is the Catalina-internal facade for an `HttpSession` that is used to maintain state information between requests for a particular user of a web application.
SessionIdGenerator
SessionListener: Interface defining a listener for significant Session generated events.
Store: A Store is the abstraction of a Catalina component that provides persistent storage and loading of Sessions and their associated user data.
StoreManager: PersistentManager would have been a better name but that would have clashed with the implementation name.
ThreadBindingListener: Callback for establishing naming association when entering the application scope.
TomcatPrincipal: Defines additional methods implemented by `Principal`s created by Tomcat's standard `Realm` implementations.
TrackedWebResource
User: Abstract representation of a user in a `UserDatabase`.
UserDatabase: Abstract representation of a database of `User`s and `Group`s that can be maintained by an application, along with definitions of corresponding `Role`s, and referenced by a `Realm` for authentication and access control.
Valve: A Valve is a request processing component associated with a particular Container.
WebResource: Represents a file or directory within a web application.
WebResourceRoot: Represents the complete set of resources for a web application.
WebResourceRoot.CacheStrategy: Provides a mechanism to modify the caching behaviour.
WebResourceSet: Represents a set of resources that are part of a web application.
Wrapper: A Wrapper is a Container that represents an individual servlet definition from the deployment descriptor of the web application.

Class Summary
ContainerEvent: General event for notifying listeners of significant changes on a Container.
Globals: Global constants that are applicable to multiple packages within Catalina.
LifecycleEvent: General event for notifying listeners of significant changes on a component that implements the Lifecycle interface.
SessionEvent: General event for notifying listeners of significant changes on a Session.

Enum Summary
LifecycleState: The list of valid states for components that implement `Lifecycle`.
WebResourceRoot.ArchiveIndexStrategy
WebResourceRoot.ResourceSetType

Exception Summary
LifecycleException: General purpose exception that is thrown to indicate a lifecycle related problem.