public static class AxonServerCommandBus.Builder extends Object
AxonServerCommandBus.
The CommandPriorityCalculator is defaulted to
CommandPriorityCalculator#defaultCommandPriorityCalculator(), and the {@link TargetContextResolver}
defaults to a lambda returning the {@link AxonServerConfiguration#getContext()} as the context. The
{@link ExecutorServiceBuilder} defaults to {@link ExecutorServiceBuilder#defaultCommandExecutorServiceBuilder()}.
The {@link SpanFactory} defaults to a {@link NoOpSpanFactory}. The {@link AxonServerConnectionManager}, the
{@link AxonServerConfiguration}, the local {@link CommandBus}, {@link Serializer} and the {@link RoutingStrategy}
are hard requirements and as such should be provided.
| Constructor and Description |
|---|
Builder() |
| Modifier and Type | Method and Description |
|---|---|
AxonServerCommandBus.Builder |
axonServerConnectionManager(AxonServerConnectionManager axonServerConnectionManager)
Sets the
AxonServerConnectionManager used to create connections between this application and an Axon
Server instance. |
AxonServerCommandBus |
build()
Initializes a
AxonServerCommandBus as specified through this Builder. |
protected CommandSerializer |
buildSerializer()
|
AxonServerCommandBus.Builder |
configuration(AxonServerConfiguration configuration)
Sets the
AxonServerConfiguration used to configure several components within the Axon Server Command
Bus, like setting the client id or the number of command handling threads used. |
AxonServerCommandBus.Builder |
defaultCommandCallback(CommandCallback<Object,Object> defaultCommandCallback)
Sets the callback to use when commands are dispatched in a "fire and forget" method, such as
AxonServerCommandBus.dispatch(CommandMessage). |
AxonServerCommandBus.Builder |
defaultContext(String defaultContext)
Sets the default context for this command bus to connect to.
|
AxonServerCommandBus.Builder |
executorServiceBuilder(ExecutorServiceBuilder executorServiceBuilder)
Sets the
ExecutorServiceBuilder which builds an ExecutorService based on a given
AxonServerConfiguration and BlockingQueue of Runnable. |
AxonServerCommandBus.Builder |
loadFactorProvider(CommandLoadFactorProvider loadFactorProvider)
Sets the
CommandLoadFactorProvider which provides the load factor values for all commands this client
can handle. |
AxonServerCommandBus.Builder |
localSegment(CommandBus localSegment)
Sets the local
CommandBus used to dispatch incoming commands to the local environment. |
AxonServerCommandBus.Builder |
priorityCalculator(CommandPriorityCalculator priorityCalculator)
Sets the
CommandPriorityCalculator used to deduce the priority of an incoming command among other
commands, to give precedence over high(er) valued queries for example. |
AxonServerCommandBus.Builder |
routingStrategy(RoutingStrategy routingStrategy)
Sets the
RoutingStrategy used to correctly configure connections between Axon clients and Axon
Server. |
AxonServerCommandBus.Builder |
serializer(Serializer serializer)
Sets the
Serializer used to de-/serialize incoming and outgoing commands and command results. |
AxonServerCommandBus.Builder |
spanFactory(SpanFactory spanFactory)
Sets the
SpanFactory implementation to use for providing tracing capabilities. |
AxonServerCommandBus.Builder |
targetContextResolver(TargetContextResolver<? super CommandMessage<?>> targetContextResolver)
Sets the
TargetContextResolver used to resolve the target (bounded) context of an ingested
CommandMessage. |
protected void |
validate()
Validates whether the fields contained in this Builder are set accordingly.
|
public AxonServerCommandBus.Builder axonServerConnectionManager(AxonServerConnectionManager axonServerConnectionManager)
AxonServerConnectionManager used to create connections between this application and an Axon
Server instance.axonServerConnectionManager - an AxonServerConnectionManager used to create connections between
this application and an Axon Server instancepublic AxonServerCommandBus.Builder configuration(AxonServerConfiguration configuration)
AxonServerConfiguration used to configure several components within the Axon Server Command
Bus, like setting the client id or the number of command handling threads used.configuration - an AxonServerConfiguration used to configure several components within the Axon
Server Command Buspublic AxonServerCommandBus.Builder localSegment(CommandBus localSegment)
CommandBus used to dispatch incoming commands to the local environment.localSegment - a CommandBus used to dispatch incoming commands to the local environmentpublic AxonServerCommandBus.Builder serializer(Serializer serializer)
Serializer used to de-/serialize incoming and outgoing commands and command results.serializer - a Serializer used to de-/serialize incoming and outgoing commands and command
resultspublic AxonServerCommandBus.Builder routingStrategy(RoutingStrategy routingStrategy)
RoutingStrategy used to correctly configure connections between Axon clients and Axon
Server.routingStrategy - a RoutingStrategypublic AxonServerCommandBus.Builder defaultCommandCallback(CommandCallback<Object,Object> defaultCommandCallback)
AxonServerCommandBus.dispatch(CommandMessage). Defaults to a NoOpCallback. Passing null will result in a
NoOpCallback being used.defaultCommandCallback - the callback to invoke when no explicit callback is provided for a commandpublic AxonServerCommandBus.Builder priorityCalculator(CommandPriorityCalculator priorityCalculator)
CommandPriorityCalculator used to deduce the priority of an incoming command among other
commands, to give precedence over high(er) valued queries for example. Defaults to a
CommandPriorityCalculator.defaultCommandPriorityCalculator().priorityCalculator - a CommandPriorityCalculator used to deduce the priority of an incoming
command among other commandspublic AxonServerCommandBus.Builder targetContextResolver(TargetContextResolver<? super CommandMessage<?>> targetContextResolver)
TargetContextResolver used to resolve the target (bounded) context of an ingested
CommandMessage. Defaults to returning the AxonServerConfiguration.getContext() on any type of
command message being ingested.targetContextResolver - a TargetContextResolver used to resolve the target (bounded) context of
an ingested CommandMessagepublic AxonServerCommandBus.Builder executorServiceBuilder(ExecutorServiceBuilder executorServiceBuilder)
ExecutorServiceBuilder which builds an ExecutorService based on a given
AxonServerConfiguration and BlockingQueue of Runnable. This ExecutorService is used
to process incoming commands with. Defaults to a ThreadPoolExecutor, using the
AxonServerConfiguration.getCommandThreads() for the pool size, a keep-alive-time of 100ms,
the given BlockingQueue as the work queue and an AxonThreadFactory.
Note that it is highly recommended to use the given BlockingQueue if you are to provide you own
executorServiceBuilder, as it ensure the command's priority is taken into consideration. Defaults to
ExecutorServiceBuilder.defaultCommandExecutorServiceBuilder().executorServiceBuilder - an ExecutorServiceBuilder used to build an ExecutorService
based on the AxonServerConfiguration and a BlockingQueuepublic AxonServerCommandBus.Builder loadFactorProvider(CommandLoadFactorProvider loadFactorProvider)
CommandLoadFactorProvider which provides the load factor values for all commands this client
can handle. The load factor values are sent to AxonServer during command subscription. AxonServer uses these
values to balance the dispatching of commands among the client instances. The default implementation of
loadFactorProvider returns always CommandLoadFactorProvider.DEFAULT_VALUEloadFactorProvider - a CommandLoadFactorProvider used to get the load factor value for each
specific command that this client can handlepublic AxonServerCommandBus.Builder defaultContext(String defaultContext)
defaultContext - for this bus to connect to.public AxonServerCommandBus.Builder spanFactory(@Nonnull SpanFactory spanFactory)
SpanFactory implementation to use for providing tracing capabilities. Defaults to a
NoOpSpanFactory by default, which provides no tracing capabilities.spanFactory - The SpanFactory implementationpublic AxonServerCommandBus build()
AxonServerCommandBus as specified through this Builder.AxonServerCommandBus as specified through this Builderprotected CommandSerializer buildSerializer()
CommandSerializer based on the configured serializer and configurationprotected void validate()
throws AxonConfigurationException
AxonConfigurationException - if one field is asserted to be incorrect according to the Builder's
specificationsCopyright © 2010–2023. All rights reserved.