Okay, had another IM conversation with Jeremy, and some new things came to light, and I'll present this as an alternative to the previous option. As before, please feel free to chime in with feedback.
1) There will be some way of saving the current MBean state of the server and reloading it later. That way when you start the server, instead of reprocessing all the config files, it will just "deserialize" the MBeans into their previous state. Then the deployment scanner will update that state according to the current deploy directory (redeploying a service if the config file changed, for example). (Apparently this saving and loading is a work in progress at the moment.) 2) There will be a "service controller" that manages the JSR-77 state of various objects in the server. I need to get more information about this from Dain. But the relevant part is that based on the above, all the applications that were previously deployed have MBeans, and those MBeans would brought back in the "stopped" state when the server is started. Then with the service controller in place, the service controller can go try to start the ones that were formerly running. Thus it is the service controller (or if not, then the MBeans), not the individual app DDs, which remember what state the different components are in. 2a) A possible corollary of "2" is that if the service controller knows what should be running or not at any given time, that solves the problem of what to do when something in the "deploy" directory is stopped. The service controller knows it was stopped, so we won't try to redeploy it immediately. 3) Jeremy feels strongly that if you deploy an app via JSR-88, we should just save it in a "working" directory and unpack it there, and not mix and match JSR-88 deployment actions with "deploy directory" deployment actions. On the whole, I think we should focus on the larger differences between this proposal and the last, and we can figure out whether to save downloads to the "working" directory or the "deploy" directory later. Aaron
