> So reloading should work fine whether you use tomcat standalone and in
> conjunction with other webservers (in particular apache) due to the same
> AdaptiveClassLoader that is used from Jserv.
>
> thanks!
>
> P.S. Yes I did download 3.1 and run some tests and everything worked
> fine, a little assurance though would make me feel better!
It's not that easy.
What works:
- whenever a servlet is invoked, tomcat will check if _any_ class in the
servlet WEB-INF ( including the jars in lib/ ) is changed
- if changed, it will destroy the servlet, create a new class loader and start the
servlet
again. This is what 80% of people call "reloading"
- We can disable this "feature" in production sites by setting <context
reloading="false">
What doesn't work:
- only classes in WEB-INF are checked. Interaction with JSP is a mistery ( I never
checked it ), but it should work in most cases.
- The "reloading" is destructive - everything is thrown away, we don't attempt to
guess what can be saved, serialize on disk and restore after reload. That's what Jon
wants.
- We stop only the servlet that is called - some would argue that the whole context
should be shut down. That's a problem because if another servlet is called we'll
reload
again.
In general, as Jon agreed - it's a development-mode feature. The performance is not
very important in this mode, but having the desired functionality is.
If anyone has the time ( and need ) for more functionality - it would be great to
have those problems resolved.
IMHO we should focus on "production" mode and essential features first. Development
mode is very important, but we still have a lot of more important things to resolve
and only a limited amount of time.
( form based login is still not working, security is extremely important and needs a
lot
of review, performance is better but still not where it should be, etc )
Costin
|