Oh the horror I have been through the last 6 years where I could randomly call add() inside my page's and panel's constructor. Over 1500 hand crafted pages by about 4 hands of developers and they are all ready for anti-depressants because of the troubles the component constructor has caused. Yes, things are really bad when you execute code in a constructor.
Seriously, in my 6+ years of developing Wicket applications, adding components to the component hierarchy, I have yet to encounter the problems you say are so detrimental to developing with Wicket. Similarly calling methods from constructors that may be overridden. Those things are easily discovered with a debugger. At my company I have not encountered anything bad happening because of this. Perhaps in 5 years one or two days in total lost on a team with 25 developers. whooptidoo. not. a. big. deal. Using Subversion, Eclipse, Hibernate, Maven and Spring has caused much more lost hours than any problem you mentioned. There are just a couple of components, or rather models that require the component path in order to work properly. However those are typically better rewritten to evaluate their stuff at render time rather than construction time. If that doesn't work, those usually were better added in onBeforeRender, or more recently onInitialize or onConfigure. Given that in all my Wicket time I have not encountered unsurmountable problems with using constructors for what they are intended for, I will not be voting favorable for something that will throw away 6 years of code, libraries, books, blogs, articles and presentations, just because one person dislikes constructors. If I wanted such an experience, I'd used Tapestry instead. Yes, we break compatibility between releases. We do this to improve our framework and the way applications can be built. We strive to minimize compatibility breaks and try to keep upgrades of medium sized applications to a couple of days. We learnt our valuable lesson with the constructor change—and we're not about to repeat that fiasco again [1]. We try to balance the improvements we can achieve with the pain it will cause for upgrading between versions. In this instance, the pain is huge and community wide. The benefits are slim at best, as evidenced by 6 years of successful application development. The balance in this issue is severely off. So to summarize my rant: -1 for removing the ability to use add inside a constructor. +0 for improving the handling of oninitialize +1 for improving the documentation on the lifecycle of components and the event chain called during processing [2] Martijn [1] we had to rewrite Wicket in Action twice, and still discovered old 2.0 code in the examples days before going to the press [2] I'll have a go at that soonish if no-one beats me to the punch --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org