/** * Custom poller poller metadata. * * @return the poller metadata */ @Bean(name = StreamSpanReporter.POLLER) PollerMetadata customPoller() { PollerMetadata poller = new PollerMetadata(); poller.setMaxMessagesPerPoll(500); poller.setTrigger(new PeriodicTrigger(5000L)); return poller; }
PollerSpec(Trigger trigger) { this.target = new PollerMetadata(); this.target.setAdviceChain(this.adviceChain); this.target.setTrigger(trigger); }
@Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata defaultPoller() { PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(t -> null); return pollerMetadata; }
@Bean public PollerMetadata myPoller() { PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(11)); return pollerMetadata; }
@Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata defaultPoller() { PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(10)); return pollerMetadata; }
@Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata defaultPoller() { PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(500)); pollerMetadata.setMaxMessagesPerPoll(2000); return pollerMetadata; }
@Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata defaultPoller() { PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(500)); pollerMetadata.setMaxMessagesPerPoll(2000); return pollerMetadata; }
pollerMetadata = new PollerMetadata(); if (StringUtils.hasText(maxMessagesPerPollValue)) { pollerMetadata.setMaxMessagesPerPoll(Long.parseLong(maxMessagesPerPollValue));
@Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata defaultPoller() { PollerMetadata poller = new PollerMetadata(); poller.setTrigger(new PeriodicTrigger(60000)); MessagePublishingErrorHandler errorHandler = new MessagePublishingErrorHandler(); errorHandler.setDefaultErrorChannel(myErrors()); poller.setErrorHandler(errorHandler); return poller; }
PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setMaxMessagesPerPoll(-1); pollerMetadata.setTrigger(new PeriodicTrigger(2000));
factoryBean.setOutputChannel(outputChannel); factoryBean.setSource(() -> new GenericMessage<>("test")); PollerMetadata pollerMetadata = new PollerMetadata(); List<Advice> adviceChain = new ArrayList<>(); final AtomicBoolean adviceApplied = new AtomicBoolean(false);
@Test public void testAdviceChain() throws Exception { SourcePollingChannelAdapterFactoryBean factoryBean = new SourcePollingChannelAdapterFactoryBean(); QueueChannel outputChannel = new QueueChannel(); TestApplicationContext context = TestUtils.createTestApplicationContext(); factoryBean.setBeanFactory(context.getBeanFactory()); factoryBean.setBeanClassLoader(ClassUtils.getDefaultClassLoader()); factoryBean.setOutputChannel(outputChannel); factoryBean.setSource(() -> new GenericMessage<>("test")); PollerMetadata pollerMetadata = new PollerMetadata(); List<Advice> adviceChain = new ArrayList<>(); final AtomicBoolean adviceApplied = new AtomicBoolean(false); adviceChain.add((MethodInterceptor) invocation -> { adviceApplied.set(true); return invocation.proceed(); }); pollerMetadata.setTrigger(new PeriodicTrigger(5000)); pollerMetadata.setMaxMessagesPerPoll(1); pollerMetadata.setAdviceChain(adviceChain); factoryBean.setPollerMetadata(pollerMetadata); factoryBean.setAutoStartup(true); factoryBean.afterPropertiesSet(); context.registerEndpoint("testPollingEndpoint", factoryBean.getObject()); context.refresh(); Message<?> message = outputChannel.receive(5000); assertEquals("test", message.getPayload()); assertTrue("adviceChain was not applied", adviceApplied.get()); context.close(); }
@Test public void ensurePollerTaskStopsForAdapter() throws Exception { final CountDownLatch latch = new CountDownLatch(1); QueueChannel channel = new QueueChannel(); SourcePollingChannelAdapterFactoryBean adapterFactory = new SourcePollingChannelAdapterFactoryBean(); PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(2000)); adapterFactory.setPollerMetadata(pollerMetadata); //Has to be an explicit implementation - Mockito cannot mock/spy lambdas MessageSource<String> source = spy(new MessageSource<String>() { @Override public Message<String> receive() { latch.countDown(); return new GenericMessage<>("hello"); } }); adapterFactory.setSource(source); adapterFactory.setOutputChannel(channel); adapterFactory.setBeanFactory(mock(ConfigurableBeanFactory.class)); SourcePollingChannelAdapter adapter = adapterFactory.getObject(); adapter.setTaskScheduler(this.taskScheduler); adapter.afterPropertiesSet(); adapter.start(); assertTrue(latch.await(20, TimeUnit.SECONDS)); assertNotNull(channel.receive(100)); adapter.stop(); assertNull(channel.receive(10)); Mockito.verify(source, times(1)).receive(); }
adapterFactory.setOutputChannel(new NullChannel()); adapterFactory.setBeanFactory(mock(ConfigurableBeanFactory.class)); PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(2000)); adapterFactory.setPollerMetadata(pollerMetadata);
@Test public void errorChannelWithFailedDispatch() throws InterruptedException { TestApplicationContext context = TestUtils.createTestApplicationContext(); QueueChannel errorChannel = new QueueChannel(); QueueChannel outputChannel = new QueueChannel(); context.registerChannel("errorChannel", errorChannel); CountDownLatch latch = new CountDownLatch(1); SourcePollingChannelAdapter channelAdapter = new SourcePollingChannelAdapter(); channelAdapter.setSource(new FailingSource(latch)); PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(1000)); channelAdapter.setOutputChannel(outputChannel); context.registerEndpoint("testChannel", channelAdapter); context.refresh(); latch.await(2000, TimeUnit.MILLISECONDS); Message<?> message = errorChannel.receive(5000); context.close(); assertNull(outputChannel.receive(100)); assertNotNull("message should not be null", message); assertTrue(message instanceof ErrorMessage); Throwable exception = ((ErrorMessage) message).getPayload(); assertEquals("intentional test failure", exception.getCause().getMessage()); }
PollerSpec(Trigger trigger) { this.target = new PollerMetadata(); this.target.setAdviceChain(this.adviceChain); this.target.setTrigger(trigger); }
@Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata defaultPoller() { PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(10)); return pollerMetadata; }
private Consumer<SourcePollingChannelAdapterSpec> consumerSpec(Advice advice) { if (advice == null) { return spec -> spec.poller(this.defaultPoller); } else { PollerMetadata poller = new PollerMetadata(); BeanUtils.copyProperties(this.defaultPoller, poller, "transactionSynchronizationFactory"); poller.setAdviceChain(Arrays.asList(advice)); return spec -> spec.poller(poller); } }
PollerSpec(Trigger trigger) { this.target = new PollerMetadata(); this.target.setAdviceChain(this.adviceChain); this.target.setTrigger(trigger); }
public PollerMetadata getPollerMetadata() { PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(this.fixedDelay)); pollerMetadata.setMaxMessagesPerPoll(this.maxMessagesPerPoll); return pollerMetadata; }