public ProgressObject distribute(Target[] targetList, InputStream moduleArchive, InputStream deploymentPlan) {
if (kernel == null) {
throw new IllegalStateException("Disconnected");
}
DistributeCommand command = new DistributeCommand(kernel, targetList, moduleArchive, deploymentPlan);
command.setCommandContext(commandContext);
new Thread(command).start();
return command;
}