The existing "check" approach calls loadComponents(file), which loaded all components from "file" into the next group, and then called configureComponents(), which configured all groups. This results in configuring components in some layers multiple times, if multiple files are loaded. e.g.
kickStart(file1);
kickStart(file2);
results in
load components from file 1
configure components from file 1
load components from file 2
configure components from file 1 // BAD!
configure components from file 2
The fix is to use the internal load/configure/start functions that know about groups, and which only load/configure/start the components of the current group. This effectively needs a kickStart() that knows whether the user wants to start components or not (which is the only net difference between a deployment run with and without checking.
The existing "check" approach calls loadComponents(file), which loaded all components from "file" into the next group, and then called configureComponents(), which configured all groups. This results in configuring components in some layers multiple times, if multiple files are loaded. e.g.
results in
The fix is to use the internal load/configure/start functions that know about groups, and which only load/configure/start the components of the current group. This effectively needs a kickStart() that knows whether the user wants to start components or not (which is the only net difference between a deployment run with and without checking.