Affects Version/s: webconsole-3.1.8
Fix Version/s: None
Component/s: Web Console
Consider an administrator wishing to install a number of interdependent bundles through the Web Console. There are basically two options:
(1) Multiple requests with one bundle after the other. Problem is that installation takes place asynchronously and there is no easy and direct feedback on the installation. Thus sending successive requests must be timed. Not nice.
(2) Send one single request with multiple bundlefile parameters. Unfortunately, this does not work either, because each bundle is installed in its own thread. Not nice.
I see two solutions:
(a) add an option requesting synchronous installation instead of background installation. When using HTTP clients such as cURL such an option can easily be used and leveraged because there is little chance of deadlocks (which lead to the asynchronous installation in the first place)
(b) implement a proper queue for asynchronous installation such that the installation of multiple bundles can be properly serialized. This would have the added benefit of not creating a new thread for each installation.
Caveat for synchronization: If the Web Console itself is to be updated, synchronous installation/update may fail. Such an implementation much take precaution.