Class AxonServerQueryBus
java.lang.Object
org.axonframework.axonserver.connector.query.AxonServerQueryBus
- All Implemented Interfaces:
org.axonframework.lifecycle.Lifecycle,org.axonframework.messaging.Distributed<org.axonframework.queryhandling.QueryBus>,org.axonframework.messaging.MessageDispatchInterceptorSupport<org.axonframework.queryhandling.QueryMessage<?,,?>> org.axonframework.messaging.MessageHandlerInterceptorSupport<org.axonframework.queryhandling.QueryMessage<?,,?>> org.axonframework.queryhandling.QueryBus
public class AxonServerQueryBus
extends Object
implements org.axonframework.queryhandling.QueryBus, org.axonframework.messaging.Distributed<org.axonframework.queryhandling.QueryBus>, org.axonframework.lifecycle.Lifecycle
Axon
QueryBus implementation that connects to Axon Server to submit and receive queries and query responses.
Delegates incoming queries to the provided localSegment.- Since:
- 4.0
- Author:
- Marc Gathier
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder class to instantiate anAxonServerQueryBus.Nested classes/interfaces inherited from interface org.axonframework.lifecycle.Lifecycle
org.axonframework.lifecycle.Lifecycle.LifecycleHandler, org.axonframework.lifecycle.Lifecycle.LifecycleRegistry -
Constructor Summary
ConstructorsConstructorDescriptionInstantiate aAxonServerQueryBusbased on the fields contained in theAxonServerQueryBus.Builder. -
Method Summary
Modifier and TypeMethodDescriptionstatic AxonServerQueryBus.Builderbuilder()Instantiate a Builder to be able to create anAxonServerQueryBus.voidDisconnect the query bus from Axon Server, by unsubscribing all known query handlers and aborting all queries in progress.org.axonframework.queryhandling.QueryBus<Q,R> CompletableFuture<org.axonframework.queryhandling.QueryResponseMessage<R>> query(org.axonframework.queryhandling.QueryMessage<Q, R> queryMessage) org.axonframework.queryhandling.QueryUpdateEmitterorg.axonframework.common.RegistrationregisterDispatchInterceptor(org.axonframework.messaging.MessageDispatchInterceptor<? super org.axonframework.queryhandling.QueryMessage<?, ?>> dispatchInterceptor) org.axonframework.common.RegistrationregisterHandlerInterceptor(org.axonframework.messaging.MessageHandlerInterceptor<? super org.axonframework.queryhandling.QueryMessage<?, ?>> interceptor) voidregisterLifecycleHandlers(org.axonframework.lifecycle.Lifecycle.LifecycleRegistry lifecycle) <Q,R> Stream<org.axonframework.queryhandling.QueryResponseMessage<R>> scatterGather(org.axonframework.queryhandling.QueryMessage<Q, R> queryMessage, long timeout, TimeUnit timeUnit) Shutdown the query bus asynchronously for dispatching queries to Axon Server.voidstart()Start the Axon ServerQueryBusimplementation.<Q,R> org.reactivestreams.Publisher<org.axonframework.queryhandling.QueryResponseMessage<R>> streamingQuery(org.axonframework.queryhandling.StreamingQueryMessage<Q, R> query) <R> org.axonframework.common.Registrationsubscribe(String queryName, Type responseType, org.axonframework.messaging.MessageHandler<? super org.axonframework.queryhandling.QueryMessage<?, R>> handler) <Q,I, U> org.axonframework.queryhandling.SubscriptionQueryResult<org.axonframework.queryhandling.QueryResponseMessage<I>, org.axonframework.queryhandling.SubscriptionQueryUpdateMessage<U>> subscriptionQuery(org.axonframework.queryhandling.SubscriptionQueryMessage<Q, I, U> query, int updateBufferSize) <Q,I, U> org.axonframework.queryhandling.SubscriptionQueryResult<org.axonframework.queryhandling.QueryResponseMessage<I>, org.axonframework.queryhandling.SubscriptionQueryUpdateMessage<U>> subscriptionQuery(org.axonframework.queryhandling.SubscriptionQueryMessage<Q, I, U> query, org.axonframework.queryhandling.SubscriptionQueryBackpressure backPressure, int updateBufferSize) Deprecated.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.axonframework.queryhandling.QueryBus
subscriptionQuery
-
Constructor Details
-
AxonServerQueryBus
Instantiate aAxonServerQueryBusbased on the fields contained in theAxonServerQueryBus.Builder.- Parameters:
builder- theAxonServerQueryBus.Builderused to instantiate aAxonServerQueryBusinstance
-
-
Method Details
-
streamingQuery
public <Q,R> org.reactivestreams.Publisher<org.axonframework.queryhandling.QueryResponseMessage<R>> streamingQuery(org.axonframework.queryhandling.StreamingQueryMessage<Q, R> query) - Specified by:
streamingQueryin interfaceorg.axonframework.queryhandling.QueryBus
-
builder
Instantiate a Builder to be able to create anAxonServerQueryBus.The
QueryPriorityCalculatoris defaulted toQueryPriorityCalculator.defaultQueryPriorityCalculator(), theTargetContextResolverdefaults to a lambda returning theAxonServerConfiguration.getContext()as the context, theExecutorServiceBuilderdefaults toExecutorServiceBuilder.defaultQueryExecutorServiceBuilder(). TheAxonServerConnectionManagerand theQueryBusSpanFactorydefaults to aDefaultQueryBusSpanFactorybacked by aNoOpSpanFactory. TheAxonServerConfiguration, the localQueryBus, theQueryUpdateEmitter, and the message and genericSerializers are hard requirements and as such should be provided.- Returns:
- a Builder to be able to create a
AxonServerQueryBus
-
registerLifecycleHandlers
public void registerLifecycleHandlers(@Nonnull org.axonframework.lifecycle.Lifecycle.LifecycleRegistry lifecycle) - Specified by:
registerLifecycleHandlersin interfaceorg.axonframework.lifecycle.Lifecycle
-
start
public void start()Start the Axon ServerQueryBusimplementation. -
subscribe
public <R> org.axonframework.common.Registration subscribe(@Nonnull String queryName, @Nonnull Type responseType, @Nonnull org.axonframework.messaging.MessageHandler<? super org.axonframework.queryhandling.QueryMessage<?, R>> handler) - Specified by:
subscribein interfaceorg.axonframework.queryhandling.QueryBus
-
query
public <Q,R> CompletableFuture<org.axonframework.queryhandling.QueryResponseMessage<R>> query(@Nonnull org.axonframework.queryhandling.QueryMessage<Q, R> queryMessage) - Specified by:
queryin interfaceorg.axonframework.queryhandling.QueryBus
-
scatterGather
public <Q,R> Stream<org.axonframework.queryhandling.QueryResponseMessage<R>> scatterGather(@Nonnull org.axonframework.queryhandling.QueryMessage<Q, R> queryMessage, long timeout, @Nonnull TimeUnit timeUnit) - Specified by:
scatterGatherin interfaceorg.axonframework.queryhandling.QueryBus
-
subscriptionQuery
@Deprecated public <Q,I, org.axonframework.queryhandling.SubscriptionQueryResult<org.axonframework.queryhandling.QueryResponseMessage<I>,U> org.axonframework.queryhandling.SubscriptionQueryUpdateMessage<U>> subscriptionQuery(@Nonnull org.axonframework.queryhandling.SubscriptionQueryMessage<Q, I, U> query, org.axonframework.queryhandling.SubscriptionQueryBackpressure backPressure, int updateBufferSize) Deprecated.in favor of using the {subscriptionQuery(SubscriptionQueryMessage, int)}- Specified by:
subscriptionQueryin interfaceorg.axonframework.queryhandling.QueryBus
-
subscriptionQuery
public <Q,I, org.axonframework.queryhandling.SubscriptionQueryResult<org.axonframework.queryhandling.QueryResponseMessage<I>,U> org.axonframework.queryhandling.SubscriptionQueryUpdateMessage<U>> subscriptionQuery(@Nonnull org.axonframework.queryhandling.SubscriptionQueryMessage<Q, I, U> query, int updateBufferSize) - Specified by:
subscriptionQueryin interfaceorg.axonframework.queryhandling.QueryBus
-
queryUpdateEmitter
public org.axonframework.queryhandling.QueryUpdateEmitter queryUpdateEmitter()- Specified by:
queryUpdateEmitterin interfaceorg.axonframework.queryhandling.QueryBus
-
localSegment
public org.axonframework.queryhandling.QueryBus localSegment()- Specified by:
localSegmentin interfaceorg.axonframework.messaging.Distributed<org.axonframework.queryhandling.QueryBus>
-
registerHandlerInterceptor
public org.axonframework.common.Registration registerHandlerInterceptor(@Nonnull org.axonframework.messaging.MessageHandlerInterceptor<? super org.axonframework.queryhandling.QueryMessage<?, ?>> interceptor) - Specified by:
registerHandlerInterceptorin interfaceorg.axonframework.messaging.MessageHandlerInterceptorSupport<org.axonframework.queryhandling.QueryMessage<?,?>>
-
registerDispatchInterceptor
@Nonnull public org.axonframework.common.Registration registerDispatchInterceptor(@Nonnull org.axonframework.messaging.MessageDispatchInterceptor<? super org.axonframework.queryhandling.QueryMessage<?, ?>> dispatchInterceptor) - Specified by:
registerDispatchInterceptorin interfaceorg.axonframework.messaging.MessageDispatchInterceptorSupport<org.axonframework.queryhandling.QueryMessage<?,?>>
-
disconnect
public void disconnect()Disconnect the query bus from Axon Server, by unsubscribing all known query handlers and aborting all queries in progress. -
shutdownDispatching
Shutdown the query bus asynchronously for dispatching queries to Axon Server. This process will wait for dispatched queries which have not received a response yet and will close off running subscription queries. This shutdown operation is performed in thePhase.OUTBOUND_QUERY_CONNECTORSphase.- Returns:
- a completable future which is resolved once all query dispatching activities are completed
-
subscriptionQuery(SubscriptionQueryMessage, int)}