https://issues.apache.org/bugzilla/show_bug.cgi?id=51637

--- Comment #3 from Mark Thomas <ma...@apache.org> 2011-08-09 12:46:25 UTC ---
In short, yes.

The longer version is that prior to Tomcat 7 the Lifecycle interface was
loosely defined, largely optional and inconsistently implemented with large
quantities of almost but not quite duplicate code. The code wasn't
unmaintainable but it was a lot harder to maintain than it should have been.
The inconsistencies in things like component start/stop and JMX registration of
components was also causing problems.

As part of the wider code clean-up for Tomcat 7 the Lifecycle interface was
more tightly defined - particularly the permitted state transitions - and made
non-optional for most internal components. Most (all?) of those components all
extend LifecycleMBeanBase which ensures that MBean registration and
de-registration happens at the correct point. It also ensures that components
that extend correctly implement Lifecycle both in terms of the allowed state
transitions and the firing of associated events. A side effect of this is that
custom code that extends these components must override different methods.

API changes are going to happen between major versions. They aren't made for
the sake of it but neither are they avoided. It may be as simple as overriding
a different method but you may find that other changes are required as well. It
depends on exactly what the custom component is doing.

As an aside, initialisation should be happening in init() not start() which
probably means overriding initInternal().

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to