diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/component/ContainerLifeCycle.java b/jetty-util/src/main/java/org/eclipse/jetty/util/component/ContainerLifeCycle.java index e44b840e803..3fe7c448929 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/component/ContainerLifeCycle.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/component/ContainerLifeCycle.java @@ -36,9 +36,17 @@ import org.eclipse.jetty.util.log.Logger; * Beans can be added the ContainerLifeCycle either as managed beans or as unmanaged beans. A managed bean is started, stopped and destroyed with the aggregate. * An unmanaged bean is associated with the aggregate for the purposes of {@link #dump()}, but it's lifecycle must be managed externally. *

- * When a {@link LifeCycle} bean is added with out a managed state being specified, if it is already started, then it is assumed to be an unmanaged bean. - * If it is not started then it is added in and auto managed state, which means that when this bean is itself started, it if must also start the added bean, then it - * is switched from Auto to be a managed bean. Otherwise it becomes an unmanaged bean. Simply put an Auto bean will be stopped by this aggregate only if it + * When a {@link LifeCycle} bean is added without a managed state being specified the state is determined heuristically: + *

+ * When the container is started, then all contained managed beans will also be started. Any contained Auto beans + * will be check for their status and if already started will be switched unmanaged beans, else they will be + * started and switched to managed beans. Beans added after a container is started are not started and their state needs to + * be explicitly managed. + *

+ * When stopping the container, a contained bean will be stopped by this aggregate only if it * is started by this aggregate. *

* The methods {@link #addBean(Object, boolean)}, {@link #manage(Object)} and {@link #unmanage(Object)} can be used to