@Bean @ConditionalOnMissingBean public QueryInvocationErrorHandler queryInvocationErrorHandler() { return LoggingQueryInvocationErrorHandler.builder().build(); }
/** * Initializes a {@link LoggingQueryInvocationErrorHandler} as specified through this Builder. * * @return a {@link LoggingQueryInvocationErrorHandler} as specified through this Builder */ public LoggingQueryInvocationErrorHandler build() { return new LoggingQueryInvocationErrorHandler(this); }
@ConditionalOnMissingBean(value = {QueryBus.class, QueryInvocationErrorHandler.class}) @Qualifier("localSegment") @Bean public SimpleQueryBus queryBus(AxonConfiguration axonConfiguration, TransactionManager transactionManager) { return SimpleQueryBus.builder() .messageMonitor(axonConfiguration.messageMonitor(QueryBus.class, "queryBus")) .transactionManager(transactionManager) .errorHandler(axonConfiguration.getComponent( QueryInvocationErrorHandler.class, () -> LoggingQueryInvocationErrorHandler.builder().build() )) .queryUpdateEmitter(axonConfiguration.getComponent(QueryUpdateEmitter.class)) .build(); }
/** * Initialize the query bus using given {@code transactionManager} to manage transactions around query execution * with. No monitoring is applied to messages and a {@link LoggingQueryInvocationErrorHandler} is used * to log errors on handlers during a scatter-gather query. * * @param transactionManager The transaction manager to manage transactions around query execution with */ public SimpleQueryBus(TransactionManager transactionManager) { this(NoOpMessageMonitor.INSTANCE, transactionManager, new LoggingQueryInvocationErrorHandler(logger)); }
/** * Provides the default QueryBus implementations. Subclasses may override this method to provide their own default. * * @param config The configuration based on which the component is initialized. * @return The default QueryBus to use. */ protected QueryBus defaultQueryBus(Configuration config) { return SimpleQueryBus.builder() .messageMonitor(config.messageMonitor(SimpleQueryBus.class, "queryBus")) .transactionManager(config.getComponent(TransactionManager.class, NoTransactionManager::instance)) .errorHandler(config.getComponent( QueryInvocationErrorHandler.class, () -> LoggingQueryInvocationErrorHandler.builder().build() )) .queryUpdateEmitter(config.getComponent(QueryUpdateEmitter.class)) .build(); }
/** * Initializes a {@link LoggingQueryInvocationErrorHandler} as specified through this Builder. * * @return a {@link LoggingQueryInvocationErrorHandler} as specified through this Builder */ public LoggingQueryInvocationErrorHandler build() { return new LoggingQueryInvocationErrorHandler(this); }
private QueryBus buildQueryBus(Configuration c) { SimpleQueryBus localSegment = SimpleQueryBus.builder() .transactionManager(c.getComponent(TransactionManager.class, NoTransactionManager::instance)) .errorHandler(c.getComponent(QueryInvocationErrorHandler.class, () -> LoggingQueryInvocationErrorHandler.builder().build())) .queryUpdateEmitter(c.queryUpdateEmitter()) .messageMonitor(c.messageMonitor(QueryBus.class, "localQueryBus")) .build(); AxonServerQueryBus queryBus = new AxonServerQueryBus(c.getComponent(AxonServerConnectionManager.class), c.getComponent(AxonServerConfiguration.class), c.queryUpdateEmitter(), localSegment, c.messageSerializer(), c.serializer(), c.getComponent(QueryPriorityCalculator.class, () -> new QueryPriorityCalculator() {})); c.onShutdown(queryBus::disconnect); return queryBus; }
/** * Initialize the query bus without monitoring on messages and a {@link LoggingQueryInvocationErrorHandler}. */ public SimpleQueryBus() { this(NoOpMessageMonitor.INSTANCE, NoTransactionManager.instance(), new LoggingQueryInvocationErrorHandler(logger)); }
@Bean @ConditionalOnMissingBean public QueryInvocationErrorHandler queryInvocationErrorHandler() { return LoggingQueryInvocationErrorHandler.builder().build(); }
/** * Initialize the query bus with the given {@code messageMonitor}, {@code updateMessageMonitor}, {@code * transactionManager} and given {@code errorHandler}. * * @param messageMonitor The message monitor notified for incoming messages and their result * @param updateMessageMonitor The message monitor notified for incoming update message in regard to subscription * queries * @param transactionManager The transaction manager to manage transactions around query execution with * @param errorHandler The error handler to invoke when query handler report an error */ public SimpleQueryBus(MessageMonitor<? super QueryMessage<?, ?>> messageMonitor, MessageMonitor<? super SubscriptionQueryUpdateMessage<?>> updateMessageMonitor, TransactionManager transactionManager, QueryInvocationErrorHandler errorHandler) { this.messageMonitor = messageMonitor != null ? messageMonitor : NoOpMessageMonitor.instance(); this.updateMessageMonitor = updateMessageMonitor != null ? updateMessageMonitor : NoOpMessageMonitor.instance(); this.errorHandler = getOrDefault(errorHandler, () -> new LoggingQueryInvocationErrorHandler(logger)); if (transactionManager != null) { registerHandlerInterceptor(new TransactionManagingInterceptor<>(transactionManager)); } }
@ConditionalOnMissingBean(value = {QueryBus.class, QueryInvocationErrorHandler.class}) @Qualifier("localSegment") @Bean public SimpleQueryBus queryBus(AxonConfiguration axonConfiguration, TransactionManager transactionManager) { return SimpleQueryBus.builder() .messageMonitor(axonConfiguration.messageMonitor(QueryBus.class, "queryBus")) .transactionManager(transactionManager) .errorHandler(axonConfiguration.getComponent( QueryInvocationErrorHandler.class, () -> LoggingQueryInvocationErrorHandler.builder().build() )) .queryUpdateEmitter(axonConfiguration.getComponent(QueryUpdateEmitter.class)) .build(); }
/** * Provides the default QueryBus implementations. Subclasses may override this method to provide their own default. * * @param config The configuration based on which the component is initialized. * @return The default QueryBus to use. */ protected QueryBus defaultQueryBus(Configuration config) { return SimpleQueryBus.builder() .messageMonitor(config.messageMonitor(SimpleQueryBus.class, "queryBus")) .transactionManager(config.getComponent(TransactionManager.class, NoTransactionManager::instance)) .errorHandler(config.getComponent( QueryInvocationErrorHandler.class, () -> LoggingQueryInvocationErrorHandler.builder().build() )) .queryUpdateEmitter(config.getComponent(QueryUpdateEmitter.class)) .build(); }
private QueryBus buildQueryBus(Configuration c) { SimpleQueryBus localSegment = SimpleQueryBus.builder() .transactionManager(c.getComponent(TransactionManager.class, NoTransactionManager::instance)) .errorHandler(c.getComponent(QueryInvocationErrorHandler.class, () -> LoggingQueryInvocationErrorHandler.builder().build())) .queryUpdateEmitter(c.queryUpdateEmitter()) .messageMonitor(c.messageMonitor(QueryBus.class, "localQueryBus")) .build(); AxonServerQueryBus queryBus = new AxonServerQueryBus(c.getComponent(AxonServerConnectionManager.class), c.getComponent(AxonServerConfiguration.class), c.queryUpdateEmitter(), localSegment, c.messageSerializer(), c.serializer(), c.getComponent(QueryPriorityCalculator.class, () -> new QueryPriorityCalculator() {})); c.onShutdown(queryBus::disconnect); return queryBus; }