Michael McGrady wrote:

To expand (part question and part statement): Suppose:

1. We made an interface, Action, which the present Struts Action (renamed, say, "ActionImpl") implemented.
2. We created a daemon ActionFactory which loaded actions from outside the CLASSPATH using a URLClassloader, etc., and which did not reference the implementation(s) but only the interface.
3. We created a method in the main(String [] params) for the web container which allowed us to reload using the ActionFactory.

Steps 1 and 2 are pretty much how many servlet container deals with individual JSP pages that have been changed ... they are each loaded into a separate class loader (an alternative strategy is to change the classname for each generated servlet, and add that class to the existing webapp class loader).


This works fine for classes that never refer to each other. But what do you do with classes (like DTOs or form beans) that might be referenced by more than one Action? You're back to where we started. Unless/until Java provides ClassLoader.unloadClass(), this is not a problem that can be solved inside a webapp.

I am not a believer in providing half-assed solutions to this kind of problem, or an application framework pretending to be an app server container. Instead, you're better off finding app server implementations that do the reload trick fast enough to meet your needs. My typical reload turnaround time during development, on either Tomcat or Sun's app server (the 8.0 version of PE) is under two seconds, even counting the fact that I typically invoke it with a command line Ant invocation. I don't consider that to be a problem.



Wouldn't that work with very little effort?

As described above, it only solves part of the problem ... not enough to make it worth implementing, IMHO.



Michael McGrady

Craig




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to