* @param command The command to dispatch
* @param callback The callback to notify with the processing result
* @param <R> The type of response expected from the command
*/
protected <R> void send(Object command, CommandCallback<R> callback) {
CommandMessage commandMessage = processInterceptors(createCommandMessage(command));
CommandCallback<R> commandCallback = callback;
if (retryScheduler != null) {
commandCallback = new RetryingCallback<R>(callback, commandMessage, retryScheduler, commandBus);
}
commandBus.dispatch(commandMessage, commandCallback);