/** * Create a DirectChannel with a {@link LoadBalancingStrategy}. The * strategy <em>must not</em> be null. * * @param loadBalancingStrategy The load balancing strategy implementation. */ public DirectChannel(LoadBalancingStrategy loadBalancingStrategy) { this.dispatcher.setLoadBalancingStrategy(loadBalancingStrategy); }
/** * Create an ExecutorChannel with a {@link LoadBalancingStrategy} that * delegates to the provided {@link Executor} when dispatching Messages. * <p> * The Executor must not be null. * @param executor The executor. * @param loadBalancingStrategy The load balancing strategy implementation. */ public ExecutorChannel(Executor executor, LoadBalancingStrategy loadBalancingStrategy) { super(executor); Assert.notNull(executor, "executor must not be null"); UnicastingDispatcher unicastingDispatcher = new UnicastingDispatcher(executor); if (loadBalancingStrategy != null) { this.loadBalancingStrategy = loadBalancingStrategy; unicastingDispatcher.setLoadBalancingStrategy(loadBalancingStrategy); } this.dispatcher = unicastingDispatcher; }
@Override protected AbstractDispatcher createDispatcher() { UnicastingDispatcher unicastingDispatcher = new UnicastingDispatcher(); unicastingDispatcher.setLoadBalancingStrategy(new RoundRobinLoadBalancingStrategy()); return unicastingDispatcher; }
@Before public void setupDispatcher() { this.dispatcher.setLoadBalancingStrategy(new RoundRobinLoadBalancingStrategy()); }
private void configureDispatcher(boolean isPubSub) { if (isPubSub) { BroadcastingDispatcher broadcastingDispatcher = new BroadcastingDispatcher(true); broadcastingDispatcher.setBeanFactory(this.getBeanFactory()); this.dispatcher = broadcastingDispatcher; } else { UnicastingDispatcher unicastingDispatcher = new UnicastingDispatcher(); unicastingDispatcher.setLoadBalancingStrategy(new RoundRobinLoadBalancingStrategy()); this.dispatcher = unicastingDispatcher; } if (this.maxSubscribers == null) { this.maxSubscribers = this.getIntegrationProperty(isPubSub ? IntegrationProperties.CHANNELS_MAX_BROADCAST_SUBSCRIBERS : IntegrationProperties.CHANNELS_MAX_UNICAST_SUBSCRIBERS, Integer.class); } this.dispatcher.setMaxSubscribers(this.maxSubscribers); }
/** * Create a DirectChannel with a {@link LoadBalancingStrategy}. The * strategy <em>must not</em> be null. * * @param loadBalancingStrategy The load balancing strategy implementation. */ public DirectChannel(LoadBalancingStrategy loadBalancingStrategy) { this.dispatcher.setLoadBalancingStrategy(loadBalancingStrategy); }
/** * Create a DirectChannel with a {@link LoadBalancingStrategy}. The * strategy <emphasis>must not</emphasis> be null. */ public DirectChannel(LoadBalancingStrategy loadBalancingStrategy) { this.dispatcher.setLoadBalancingStrategy(loadBalancingStrategy); }
@Before public void initialize() { dispatcher.setLoadBalancingStrategy(new RoundRobinLoadBalancingStrategy()); executor.setCorePoolSize(10); executor.setMaxPoolSize(10); executor.initialize(); }
doThrow(new MessageRejectedException(message, null)).when(handlerA).handleMessage(message); UnicastingDispatcher dispatcher = channel.getDispatcher(); dispatcher.setLoadBalancingStrategy(new RoundRobinLoadBalancingStrategy()); dispatcher.addHandler(handlerA); dispatcher.addHandler(handlerB);
@Override public final void onInit() { Assert.state(getDispatcher().getHandlerCount() == 0, "You cannot subscribe() until the channel " + "bean is fully initialized by the framework. Do not subscribe in a @Bean definition"); super.onInit(); if (!(this.executor instanceof ErrorHandlingTaskExecutor)) { ErrorHandler errorHandler = new MessagePublishingErrorHandler( new BeanFactoryChannelResolver(this.getBeanFactory())); this.executor = new ErrorHandlingTaskExecutor(this.executor, errorHandler); } UnicastingDispatcher unicastingDispatcher = new UnicastingDispatcher(this.executor); unicastingDispatcher.setFailover(this.failover); if (this.maxSubscribers == null) { this.maxSubscribers = getIntegrationProperty(IntegrationProperties.CHANNELS_MAX_UNICAST_SUBSCRIBERS, Integer.class); } unicastingDispatcher.setMaxSubscribers(this.maxSubscribers); if (this.loadBalancingStrategy != null) { unicastingDispatcher.setLoadBalancingStrategy(this.loadBalancingStrategy); } unicastingDispatcher.setMessageHandlingTaskDecorator(task -> { if (ExecutorChannel.this.executorInterceptorsSize > 0) { return new MessageHandlingTask(task); } else { return task; } }); this.dispatcher = unicastingDispatcher; }
/** * Create an ExecutorChannel with a {@link LoadBalancingStrategy} that * delegates to the provided {@link TaskExecutor} when dispatching Messages. * <p> * The TaskExecutor must not be null. */ public ExecutorChannel(TaskExecutor taskExecutor, LoadBalancingStrategy loadBalancingStrategy) { Assert.notNull(taskExecutor, "taskExecutor must not be null"); this.taskExecutor = taskExecutor; this.dispatcher = new UnicastingDispatcher(taskExecutor); if (loadBalancingStrategy != null) { this.loadBalancingStrategy = loadBalancingStrategy; this.dispatcher.setLoadBalancingStrategy(loadBalancingStrategy); } }
/** * Create an ExecutorChannel with a {@link LoadBalancingStrategy} that * delegates to the provided {@link Executor} when dispatching Messages. * <p> * The Executor must not be null. * @param executor The executor. * @param loadBalancingStrategy The load balancing strategy implementation. */ public ExecutorChannel(Executor executor, LoadBalancingStrategy loadBalancingStrategy) { super(executor); Assert.notNull(executor, "executor must not be null"); UnicastingDispatcher unicastingDispatcher = new UnicastingDispatcher(executor); if (loadBalancingStrategy != null) { this.loadBalancingStrategy = loadBalancingStrategy; unicastingDispatcher.setLoadBalancingStrategy(loadBalancingStrategy); } this.dispatcher = unicastingDispatcher; }
@Override protected AbstractDispatcher createDispatcher() { UnicastingDispatcher unicastingDispatcher = new UnicastingDispatcher(); unicastingDispatcher.setLoadBalancingStrategy(new RoundRobinLoadBalancingStrategy()); return unicastingDispatcher; }
public void setBeanFactory(BeanFactory beanFactory) { if (!(this.taskExecutor instanceof ErrorHandlingTaskExecutor)) { ErrorHandler errorHandler = new MessagePublishingErrorHandler(new BeanFactoryChannelResolver(beanFactory)); this.taskExecutor = new ErrorHandlingTaskExecutor(this.taskExecutor, errorHandler); } this.dispatcher = new UnicastingDispatcher(this.taskExecutor); this.dispatcher.setFailover(this.failover); if (this.loadBalancingStrategy != null) { this.dispatcher.setLoadBalancingStrategy(this.loadBalancingStrategy); } }
private void configureDispatcher(boolean isPubSub) { if (isPubSub) { BroadcastingDispatcher broadcastingDispatcher = new BroadcastingDispatcher(true); broadcastingDispatcher.setBeanFactory(this.getBeanFactory()); this.dispatcher = broadcastingDispatcher; } else { UnicastingDispatcher unicastingDispatcher = new UnicastingDispatcher(); unicastingDispatcher.setLoadBalancingStrategy(new RoundRobinLoadBalancingStrategy()); this.dispatcher = unicastingDispatcher; } if (this.maxSubscribers == null) { this.maxSubscribers = this.getIntegrationProperty(isPubSub ? IntegrationProperties.CHANNELS_MAX_BROADCAST_SUBSCRIBERS : IntegrationProperties.CHANNELS_MAX_UNICAST_SUBSCRIBERS, Integer.class); } this.dispatcher.setMaxSubscribers(this.maxSubscribers); }
@Override public final void onInit() { Assert.state(getDispatcher().getHandlerCount() == 0, "You cannot subscribe() until the channel " + "bean is fully initialized by the framework. Do not subscribe in a @Bean definition"); super.onInit(); if (!(this.executor instanceof ErrorHandlingTaskExecutor)) { ErrorHandler errorHandler = new MessagePublishingErrorHandler( new BeanFactoryChannelResolver(this.getBeanFactory())); this.executor = new ErrorHandlingTaskExecutor(this.executor, errorHandler); } UnicastingDispatcher unicastingDispatcher = new UnicastingDispatcher(this.executor); unicastingDispatcher.setFailover(this.failover); if (this.maxSubscribers == null) { this.maxSubscribers = getIntegrationProperty(IntegrationProperties.CHANNELS_MAX_UNICAST_SUBSCRIBERS, Integer.class); } unicastingDispatcher.setMaxSubscribers(this.maxSubscribers); if (this.loadBalancingStrategy != null) { unicastingDispatcher.setLoadBalancingStrategy(this.loadBalancingStrategy); } unicastingDispatcher.setMessageHandlingTaskDecorator(task -> { if (ExecutorChannel.this.executorInterceptorsSize > 0) { return new MessageHandlingTask(task); } else { return task; } }); this.dispatcher = unicastingDispatcher; }