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
.
SimpleCommandBus
public <C> void dispatch(@Nonnull CommandMessage<C> command)
CommandBus
command
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 CommandBus
C
- 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)
CommandBus
command
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 CommandBus
C
- 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 CommandBus
commandName
- 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.