I am currently looking into parallel deployment (of EARs) when more than
one cpu is available. This should speed up system startup times for bigger machines.
It looks like URLDeploymentScanner.scan() is about to be the right point when the deploy() calls are made to start this.
But after looking into this for some time I am no longer sure if this can be done without changing MainDeployer and EarDeployer etc. into factories that provide one specific deployer per parallel thread.
Am I right on this last assumption?
Or are there easier ways that I just did not see yet?
The URLDeploymentScanner.scan is the entry point to deployment processing, but paralleization will require that the MainDeployer is changed to dispatch the subdeployment tasks in parallel using a thread pool. This will open up a lot of code to thread safety issues that have not been considered before, so this is going to be a nontrivial endeavor.