// inject the Execution interface implementation (ie. an instance of this class)
ActionsExecutor executor = new ActionsExecutor(producerTemplate, index + 1);
ResourceInjector.inject(action, executor);
// execute the message, notice that the execution could be stopped or new messages routed
action.execute(message);
// if the action stopped the execution ...
if (executor.isStopped()) {
return;
}