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 Classes
    Modifier and Type
    Class
    Description
    static class 
    Builder class to instantiate an AxonServerQueryBus.

    Nested classes/interfaces inherited from interface org.axonframework.lifecycle.Lifecycle

    org.axonframework.lifecycle.Lifecycle.LifecycleHandler, org.axonframework.lifecycle.Lifecycle.LifecycleRegistry
  • Constructor Summary

    Constructors
    Constructor
    Description
    Instantiate a AxonServerQueryBus based on the fields contained in the AxonServerQueryBus.Builder.
  • Method Summary

    Modifier and Type
    Method
    Description
    Instantiate a Builder to be able to create an AxonServerQueryBus.
    void
    Disconnect 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.QueryUpdateEmitter
     
    org.axonframework.common.Registration
    registerDispatchInterceptor(org.axonframework.messaging.MessageDispatchInterceptor<? super org.axonframework.queryhandling.QueryMessage<?,?>> dispatchInterceptor)
     
    org.axonframework.common.Registration
    registerHandlerInterceptor(org.axonframework.messaging.MessageHandlerInterceptor<? super org.axonframework.queryhandling.QueryMessage<?,?>> interceptor)
     
    void
    registerLifecycleHandlers(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.
    void
    Start the Axon Server QueryBus implementation.
    <Q, R> org.reactivestreams.Publisher<org.axonframework.queryhandling.QueryResponseMessage<R>>
    streamingQuery(org.axonframework.queryhandling.StreamingQueryMessage<Q,R> query)
     
    <R> org.axonframework.common.Registration
    subscribe(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, wait

    Methods inherited from interface org.axonframework.queryhandling.QueryBus

    subscriptionQuery
  • Constructor Details

  • Method Details

    • streamingQuery

      public <Q, R> org.reactivestreams.Publisher<org.axonframework.queryhandling.QueryResponseMessage<R>> streamingQuery(org.axonframework.queryhandling.StreamingQueryMessage<Q,R> query)
      Specified by:
      streamingQuery in interface org.axonframework.queryhandling.QueryBus
    • builder

      public static AxonServerQueryBus.Builder builder()
      Instantiate a Builder to be able to create an AxonServerQueryBus.

      The QueryPriorityCalculator is defaulted to QueryPriorityCalculator.defaultQueryPriorityCalculator(), the TargetContextResolver defaults to a lambda returning the AxonServerConfiguration.getContext() as the context, the ExecutorServiceBuilder defaults to ExecutorServiceBuilder.defaultQueryExecutorServiceBuilder(). The AxonServerConnectionManager and the QueryBusSpanFactory defaults to a DefaultQueryBusSpanFactory backed by a NoOpSpanFactory. The AxonServerConfiguration, the local QueryBus, the QueryUpdateEmitter, and the message and generic Serializers 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:
      registerLifecycleHandlers in interface org.axonframework.lifecycle.Lifecycle
    • start

      public void start()
      Start the Axon Server QueryBus implementation.
    • 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:
      subscribe in interface org.axonframework.queryhandling.QueryBus
    • query

      public <Q, R> CompletableFuture<org.axonframework.queryhandling.QueryResponseMessage<R>> query(@Nonnull org.axonframework.queryhandling.QueryMessage<Q,R> queryMessage)
      Specified by:
      query in interface org.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:
      scatterGather in interface org.axonframework.queryhandling.QueryBus
    • subscriptionQuery

      @Deprecated public <Q, I, U> org.axonframework.queryhandling.SubscriptionQueryResult<org.axonframework.queryhandling.QueryResponseMessage<I>,org.axonframework.queryhandling.SubscriptionQueryUpdateMessage<U>> subscriptionQuery(@Nonnull org.axonframework.queryhandling.SubscriptionQueryMessage<Q,I,U> query, org.axonframework.queryhandling.SubscriptionQueryBackpressure backPressure, int updateBufferSize)
      Deprecated.
      Specified by:
      subscriptionQuery in interface org.axonframework.queryhandling.QueryBus
    • subscriptionQuery

      public <Q, I, U> org.axonframework.queryhandling.SubscriptionQueryResult<org.axonframework.queryhandling.QueryResponseMessage<I>,org.axonframework.queryhandling.SubscriptionQueryUpdateMessage<U>> subscriptionQuery(@Nonnull org.axonframework.queryhandling.SubscriptionQueryMessage<Q,I,U> query, int updateBufferSize)
      Specified by:
      subscriptionQuery in interface org.axonframework.queryhandling.QueryBus
    • queryUpdateEmitter

      public org.axonframework.queryhandling.QueryUpdateEmitter queryUpdateEmitter()
      Specified by:
      queryUpdateEmitter in interface org.axonframework.queryhandling.QueryBus
    • localSegment

      public org.axonframework.queryhandling.QueryBus localSegment()
      Specified by:
      localSegment in interface org.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:
      registerHandlerInterceptor in interface org.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:
      registerDispatchInterceptor in interface org.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

      public CompletableFuture<Void> 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 the Phase.OUTBOUND_QUERY_CONNECTORS phase.
      Returns:
      a completable future which is resolved once all query dispatching activities are completed