public interface CommandGateway extends MessageDispatchInterceptorSupport<CommandMessage<?>>
CommandBus
. The CommandGateway allows for components dispatching
commands to wait for the result.DefaultCommandGateway
Modifier and Type | Method and Description |
---|---|
<C,R> void |
send(C command,
CommandCallback<? super C,? super R> callback)
Sends the given
command , and have the result of the command's execution reported to the given callback . |
<R> CompletableFuture<R> |
send(Object command)
Sends the given
command and returns a CompletableFuture immediately, without waiting for the
command to execute. |
default <R> CompletableFuture<R> |
send(Object command,
MetaData metaData)
Sends the given
command with the given metaData and returns a CompletableFuture
immediately, without waiting for the command to execute. |
<R> R |
sendAndWait(Object command)
Sends the given
command and wait for it to execute. |
<R> R |
sendAndWait(Object command,
long timeout,
TimeUnit unit)
Sends the given
command and wait for it to execute. |
default <R> R |
sendAndWait(Object command,
MetaData metaData)
Sends the given
command with the given metaData and wait for it to execute. |
default <R> R |
sendAndWait(Object command,
MetaData metaData,
long timeout,
TimeUnit unit)
Sends the given
command with the given metaData and wait for it to execute. |
registerDispatchInterceptor
<C,R> void send(@Nonnull C command, @Nonnull CommandCallback<? super C,? super R> callback)
command
, and have the result of the command's execution reported to the given callback
.
The given command
is wrapped as the payload of the CommandMessage
that is eventually posted on
the CommandBus
, unless the command
already implements Message
. In that case, a CommandMessage
is constructed from that message's payload and MetaData
.R
- the type of result expected from command executioncommand
- the command to dispatchcallback
- the callback to notify when the command has been processed<R> R sendAndWait(@Nonnull Object command)
command
and wait for it to execute. The result of the execution is returned when
available. This method will block indefinitely, until a result is available, or until the Thread is interrupted.
When the thread is interrupted, this method returns null
. If command execution resulted in an exception,
it is wrapped in a CommandExecutionException
. If command dispatching failed,
CommandDispatchException
is thrown instead.
The given command
is wrapped as the payload of the CommandMessage
that is eventually posted on
the CommandBus
, unless the command
already implements Message
. In that case, a CommandMessage
is constructed from that message's payload and MetaData
.
Note that the interrupted flag is set back on the thread if it has been interrupted while waiting.R
- the type of result expected from command executioncommand
- the command to dispatchnull
if the thread was interrupted while waiting for the
command to executeCommandExecutionException
- when an exception occurred while processing the commandCommandDispatchException
- when an exception occurred while dispatching the commanddefault <R> R sendAndWait(@Nonnull Object command, @Nonnull MetaData metaData)
command
with the given metaData
and wait for it to execute. The result of the
execution is returned when available. This method will block indefinitely, until a result is available, or until
the Thread is interrupted. When the thread is interrupted, this method returns null
. If command execution
resulted in an exception, it is wrapped in a CommandExecutionException
. If command dispatching failed,
CommandDispatchException
is thrown instead.
The given command
and metaData
are wrapped as the payload of the CommandMessage
that is
eventually posted on the CommandBus
, unless the command
already
implements Message
. In that case, a CommandMessage
is constructed from that message's payload and
MetaData
. The provided metaData
is attached afterwards in this case.
Note that the interrupted flag is set back on the thread if it has been interrupted while waiting.R
- the type of result expected from command executioncommand
- the command to dispatchmetaData
- meta-data that must be registered with the command
null
if the thread was interrupted while waiting for the
command to executeCommandExecutionException
- when an exception occurred while processing the commandCommandDispatchException
- when an exception occurred while dispatching the command<R> R sendAndWait(@Nonnull Object command, long timeout, @Nonnull TimeUnit unit)
command
and wait for it to execute. The result of the execution is returned when
available. This method will block until a result is available, or the given timeout
was reached, or until
the Thread is interrupted. When the timeout is reached or the thread is interrupted, this method returns null
. If command execution resulted in an exception, it is wrapped in a CommandExecutionException
.
If command dispatching failed, CommandDispatchException
is thrown instead.
The given command
is wrapped as the payload of the CommandMessage
that is eventually posted on
the CommandBus
, unless the command
already implements Message
. In that case, a CommandMessage
is constructed from that message's payload and MetaData
.
Note that the interrupted flag is set back on the thread if it has been interrupted while waiting.R
- the type of result expected from command executioncommand
- the command to dispatchtimeout
- the amount of time in the given unit
the thread is allowed to wait for the resultunit
- the unit in which timeout
is expressednull
if the thread was interrupted while waiting for the
command to executeCommandExecutionException
- when an exception occurred while processing the commandCommandDispatchException
- when an exception occurred while dispatching the commanddefault <R> R sendAndWait(@Nonnull Object command, @Nonnull MetaData metaData, long timeout, @Nonnull TimeUnit unit)
command
with the given metaData
and wait for it to execute. The result of the
execution is returned when available. This method will block until a result is available, or the given timeout
was reached, or until the Thread is interrupted. When the timeout is reached or the thread is
interrupted, this method returns null
. If command execution resulted in an exception, it is wrapped in a
CommandExecutionException
. If command dispatching failed, CommandDispatchException
is thrown
instead.
The given command
and metaData
are wrapped as the payload of the CommandMessage
that is
eventually posted on the CommandBus
, unless the command
already
implements Message
. In that case, a CommandMessage
is constructed from that message's payload and
MetaData
. The provided metaData
is attached afterwards in this case.
Note that the interrupted flag is set back on the thread if it has been interrupted while waiting.R
- the type of result expected from command executioncommand
- the command to dispatchmetaData
- meta-data that must be registered with the command
timeout
- the amount of time in the given unit
the thread is allowed to wait for the resultunit
- the unit in which timeout
is expressednull
if the thread was interrupted while waiting for the
command to executeCommandExecutionException
- when an exception occurred while processing the commandCommandDispatchException
- when an exception occurred while dispatching the command<R> CompletableFuture<R> send(@Nonnull Object command)
command
and returns a CompletableFuture
immediately, without waiting for the
command to execute. The caller will therefore not receive any immediate feedback on the command
's
execution. Instead hooks can be added to the returned CompletableFuture
to react on success or
failure of command execution.
The given command
is wrapped as the payload of the CommandMessage
that is eventually posted on
the CommandBus
, unless the command
already implements Message
. In that case, a CommandMessage
is constructed from that message's payload and MetaData
.command
- the command to dispatchCompletableFuture
which will be resolved successfully or exceptionally based on the eventual
command execution resultdefault <R> CompletableFuture<R> send(@Nonnull Object command, @Nonnull MetaData metaData)
command
with the given metaData
and returns a CompletableFuture
immediately, without waiting for the command to execute. The caller will therefore not receive any immediate
feedback on the command
's execution. Instead, hooks can be added to the returned CompletableFuture
to react on success or failure of command execution.
The given command
and metaData
are wrapped as the payload of the CommandMessage
that is
eventually posted on the CommandBus
, unless the command
already
implements Message
. In that case, a CommandMessage
is constructed from that message's payload and
MetaData
. The provided metaData
is attached afterwards in this case.command
- the command to dispatchmetaData
- meta-data that must be registered with the command
CompletableFuture
which will be resolved successfully or exceptionally based on the eventual
command execution resultCopyright © 2010–2023. All rights reserved.