Reading Robert's very interesting blog entry OSGi: YAGNI , I can only agree with the author's view of OSGi.
OSGi makes a nice kernel if you want to build really modular applications, but how many real world systems really need this? I'd dare to say maybe 10% of them and certainly less than 20%. The remaining 80-90% will have little to benefit from a super modular design, although they will have to bear the overhead and cost of creating and maintaining an application according to OSGi rules.
Witness the success of dynamic languages and development environments where development speed is the ultimate goal. Those guys care less about packaging, isolation and hot-swapping of subsystems and more about getting their work done. As long as the containers are fast, recycling the whole application is simpler and safer in most cases.
People have been writing enterprise web applications for years, do you think packaging is really their primary concern or the offered standardized functionality, richness and relevance of APIs?
Don't get me wrong, a kernel based design is essential for runtime environments, or other truly dynamic designs. JBoss had a kernel since 2001 and I presume that for the other players an OSGi kernel makes sense, if you didn't have one in the first place and if you feel comfortable with tying up your server internals with this particular technology. We are also in the process of adding support for OSGi deployments, although this is not our #1 priority simply because our customers and users don't really ask for it.
But proposing that every other application needs to fit this particular design is just an effort to tie you up in elaborate development environments and runtimes that promise to alleviate the pain of complying to the new "standard". Even if that means you need 20 steps to run and deploy a simple hello world application.
Or else, how can you can possibly monetize tomcat? :-)