public class SimpleCommandBus extends Object implements CommandBus
| Modifier and Type | Class and Description |
|---|---|
static class |
SimpleCommandBus.Builder
Builder class to instantiate a
SimpleCommandBus. |
| Modifier | Constructor and Description |
|---|---|
protected |
SimpleCommandBus(SimpleCommandBus.Builder builder)
Instantiate a
SimpleCommandBus based on the fields contained in the SimpleCommandBus.Builder. |
| Modifier and Type | Method and Description |
|---|---|
static SimpleCommandBus.Builder |
builder()
Instantiate a Builder to be able to create a
SimpleCommandBus. |
<C> void |
dispatch(CommandMessage<C> command)
Dispatch the given
command to the CommandHandler subscribed to the given command's name. |
<C,R> void |
dispatch(CommandMessage<C> command,
CommandCallback<? super C,? super R> callback)
Dispatch the given
command to the CommandHandler subscribed to the given command's name. |
protected <C,R> void |
doDispatch(CommandMessage<C> command,
CommandCallback<? super C,? super R> callback)
Performs the actual dispatching logic.
|
protected <C,R> void |
handle(CommandMessage<C> command,
MessageHandler<? super CommandMessage<?>> handler,
CommandCallback<? super C,? super R> callback)
Performs the actual handling logic.
|
protected <C> CommandMessage<C> |
intercept(CommandMessage<C> command)
Invokes all the dispatch interceptors.
|
Registration |
registerDispatchInterceptor(MessageDispatchInterceptor<? super CommandMessage<?>> dispatchInterceptor)
Registers the given list of dispatch interceptors to the command bus.
|
Registration |
registerHandlerInterceptor(MessageHandlerInterceptor<? super CommandMessage<?>> handlerInterceptor)
Registers the given interceptor to the command bus.
|
void |
setRollbackConfiguration(RollbackConfiguration rollbackConfiguration)
Sets the
RollbackConfiguration that allows you to change when the UnitOfWork is rolled back. |
Registration |
subscribe(String commandName,
MessageHandler<? super CommandMessage<?>> handler)
Subscribe the given
handler to commands with given commandName. |
protected SimpleCommandBus(SimpleCommandBus.Builder builder)
SimpleCommandBus based on the fields contained in the SimpleCommandBus.Builder.
Will assert that the TransactionManager, MessageMonitor and RollbackConfiguration are not
null, and will throw an AxonConfigurationException if any of them is null.
builder - the SimpleCommandBus.Builder used to instantiate a SimpleCommandBus instancepublic static SimpleCommandBus.Builder builder()
SimpleCommandBus.
The TransactionManager is defaulted to a NoTransactionManager, the MessageMonitor is
defaulted to a NoOpMessageMonitor, the RollbackConfiguration defaults to a
RollbackConfigurationType.UNCHECKED_EXCEPTIONS, the DuplicateCommandHandlerResolver defaults to
DuplicateCommandHandlerResolution.logAndOverride() and the SpanFactory defaults to a
NoOpSpanFactory. The TransactionManager, MessageMonitor and RollbackConfiguration
are hard requirements. Thus setting them to null will result in an
AxonConfigurationException.
SimpleCommandBuspublic <C> void dispatch(@Nonnull CommandMessage<C> command)
CommandBuscommand to the CommandHandler subscribed to the given command's name. No
feedback is given about the status of the dispatching process. Implementations may return immediately after
asserting a valid handler is registered for the given command.dispatch in interface CommandBusC - The payload type of the command to dispatchcommand - The Command to dispatchGenericCommandMessage.asCommandMessage(Object)public <C,R> void dispatch(@Nonnull CommandMessage<C> command, @Nonnull CommandCallback<? super C,? super R> callback)
CommandBuscommand to the CommandHandler subscribed to the given command's name. When the
command is processed, one of the callback's methods is called, depending on the result of the processing.
There are no guarantees about the successful completion of command dispatching or handling after the method
returns. Implementations are highly recommended to perform basic validation of the command before returning
from this method call.
Implementations must start a UnitOfWork when before dispatching the command, and either commit or rollback after
a successful or failed execution, respectively.dispatch in interface CommandBusC - The payload type of the command to dispatchR - The type of the expected resultcommand - The Command to dispatchcallback - The callback to invoke when command processing is completeGenericCommandMessage.asCommandMessage(Object)protected <C> CommandMessage<C> intercept(CommandMessage<C> command)
C - The type of payload contained in the CommandMessagecommand - The original command being dispatchedprotected <C,R> void doDispatch(CommandMessage<C> command, CommandCallback<? super C,? super R> callback)
C - The type of payload of the commandR - The type of result expected from the command handlercommand - The actual command to dispatch to the handlercallback - The callback to notify of the resultprotected <C,R> void handle(CommandMessage<C> command, MessageHandler<? super CommandMessage<?>> handler, CommandCallback<? super C,? super R> callback)
C - The type of payload of the commandR - The type of result expected from the command handlercommand - The actual command to handlehandler - The handler that must be invoked for this commandcallback - The callback to notify of the resultpublic Registration subscribe(@Nonnull String commandName, @Nonnull MessageHandler<? super CommandMessage<?>> handler)
handler to commands with given commandName. If a subscription already exists
for the given name, the configured DuplicateCommandHandlerResolver will resolve the command handler which
should be subscribed.subscribe in interface CommandBuscommandName - The name of the command to subscribe the handler tohandler - The handler instance that handles the given type of commandhandler. When unsubscribed it will no longer receive commands.public Registration registerHandlerInterceptor(@Nonnull MessageHandlerInterceptor<? super CommandMessage<?>> handlerInterceptor)
registerHandlerInterceptor in interface MessageHandlerInterceptorSupport<CommandMessage<?>>handlerInterceptor - The interceptor to invoke when commands are handledpublic Registration registerDispatchInterceptor(@Nonnull MessageDispatchInterceptor<? super CommandMessage<?>> dispatchInterceptor)
registerDispatchInterceptor in interface MessageDispatchInterceptorSupport<CommandMessage<?>>dispatchInterceptor - The interceptors to invoke when commands are dispatchedpublic void setRollbackConfiguration(@Nonnull RollbackConfiguration rollbackConfiguration)
RollbackConfiguration that allows you to change when the UnitOfWork is rolled back. If
not set the, RollbackConfigurationType.UNCHECKED_EXCEPTIONS will be used, which triggers a rollback on
all unchecked exceptions.rollbackConfiguration - a RollbackConfiguration specifying when a UnitOfWork should be
rolled backCopyright © 2010–2023. All rights reserved.