Class ContainerBase

All Implemented Interfaces:
MBeanRegistration, Container, JmxEnabled, Lifecycle
Direct Known Subclasses:
StandardContext, StandardEngine, StandardHost, StandardWrapper

public abstract class ContainerBase extends LifecycleMBeanBase implements Container
Abstract implementation of the Container interface, providing common functionality required by nearly every implementation. Classes extending this base class must may implement a replacement for invoke().

All subclasses of this abstract base class will include support for a Pipeline object that defines the processing to be performed for each request received by the invoke() method of this class, utilizing the "Chain of Responsibility" design pattern. A subclass should encapsulate its own processing functionality as a Valve, and configure this Valve into the pipeline by calling setBasic().

This implementation fires property change events, per the JavaBeans design pattern, for changes in singleton properties. In addition, it fires the following ContainerEvent events to listeners who register themselves with addContainerListener():

ContainerEvents fired by this implementation
Type Data Description
addChild Container Child container added to this Container.
pipeline.addValve Valve Valve added to this Container.
removeChild Container Child container removed from this Container.
pipeline.removeValve Valve Valve removed from this Container.
start null Container was started.
stop null Container was stopped.
Subclasses that fire additional events should document them in the class comments of the implementation class.
Craig R. McClanahan