There are certain things that a hot-deploy can’t deal with. If you have components configured in your app that are initialized at startup or lazy-initialized (e.g., an authorization service), changes to their configuration may get pushed over to an exploded deployment, but there’s no way to get the component to reload the configuration. You can push over Java code changes and get the hot-deploy server to reload compiled code, but custom components don’t have the same luxury. I make config changes at least as often as I make java code changes, and it requires a restart.