husted 2002/11/27 06:42:19 Modified: doc/faqs newbie.xml Log: Expand "Reload" entry. Revision Changes Path 1.5 +46 -7 jakarta-struts/doc/faqs/newbie.xml Index: newbie.xml =================================================================== RCS file: /home/cvs/jakarta-struts/doc/faqs/newbie.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- newbie.xml 22 Nov 2002 02:45:22 -0000 1.4 +++ newbie.xml 27 Nov 2002 14:42:19 -0000 1.5 @@ -3,6 +3,7 @@ <properties> <author>Ted Husted</author> <author>James Holmes</author> +<author>Craig R. McClanahan</author> <title>Newbie FAQ - Apache Struts</title> </properties> <body> @@ -83,15 +84,53 @@ <section href="reload" name="Why was reload removed from Struts 1.1?"> -<p>ReloadAction is not supported in 1.1 for two reasons:</p> +<p> +The problem with ReloadAction was that Struts was trying to act like a +container, but it couldn't do a proper job of it. For example, you +can't reload classes that have been modified, or (portably) add new +classes to a running web application (even if the container supported it). +</p> + +<p> +Meanwhile, as 1.1 was being developed, work progressed on things +like Tomcat's reload command via the Manager webapp. This feature allows +you to quickly reload-on-demand, complete with saving and restoring your +session). It started to make even less sense for Struts to half-implement +a feature that containers are implementing fully. +</p> + +<p> +A more minor point is that freezing the configuration information at application +startup time allows Struts to safely access the mapping information without +bothering with synchronization. The "startup-only" strategy creates a modest +but real improvement in performance for all users. +</p> + +<p>So, ReloadAction is not supported in 1.1 for two reasons:</p> + <ul> -<li>It never did let you reload everything that you would really - want to -- particularly changed classes -- so many people - ended up having to reload the webapp anyway.</li> -<li>Not supporting ReloadAction lets Struts avoid doing synchronization - locks around all the lookups (like figuring out which action to use, - or the destination of an ActionForward) so apps can run a little faster.</li> +<li> + It never did let you reload everything that you would really + want to -- particularly changed classes -- so many people + ended up having to reload the webapp anyway. +</li> +<li> + Containers are starting to offer reload-on-demand features + which does the same thing as the Struts ReloadAction, only better. +</li> +<li> + Not supporting ReloadAction lets Struts avoid doing synchronization + locks around all the lookups (like figuring out which action to use, + or the destination of an ActionForward) so applications can run a + little faster. +</li> </ul> + +<p> +Of course, if someone came up with an implementation that solved these +problems without creating any others, we would not be opposed to including +a new ReloadAction. +</p> </section>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>