protected boolean executeBlocking(IProcessComponent process, String itemName) throws InterruptedException,
InvalidProcessStateException {
print(String.format("Executing '%s'...", itemName));
ProcessComponentListener listener = new ProcessComponentListener();
process.attachListener(listener);
process.start().await();
if (listener.hasFailed()) {
RollbackReason reason = listener.getRollbackReason();
print(String.format("The process has failed%s", reason != null ? ": " + reason.getHint() : "."));
}
return listener.hasSucceeded();
}