PollerSpec(Trigger trigger) { this.target = new PollerMetadata(); this.target.setAdviceChain(this.adviceChain); this.target.setTrigger(trigger); }
}); pollerMetadata.setAdviceChain(adviceChain); factoryBean.setPollerMetadata(pollerMetadata); factoryBean.setAutoStartup(true);
@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(); }
PollerSpec(Trigger trigger) { this.target = new PollerMetadata(); this.target.setAdviceChain(this.adviceChain); this.target.setTrigger(trigger); }
PollerSpec(Trigger trigger) { this.target = new PollerMetadata(); this.target.setAdviceChain(this.adviceChain); this.target.setTrigger(trigger); }
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); } }
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); }
private Consumer<SourcePollingChannelAdapterSpec> consumerSpecWithDelete(Advice advice) { final PollerMetadata poller = new PollerMetadata(); BeanUtils.copyProperties(this.defaultPoller, poller, "transactionSynchronizationFactory"); TransactionSynchronizationProcessor processor = new RemoteFileDeletingTransactionSynchronizationProcessor( this.sftpTemplate, this.properties.getRemoteFileSeparator()); poller.setTransactionSynchronizationFactory(new DefaultTransactionSynchronizationFactory(processor)); poller.setAdviceChain(Collections.singletonList(new TransactionInterceptor( new PseudoTransactionManager(), new MatchAlwaysTransactionAttributeSource()))); if (advice != null) { poller.setAdviceChain(Arrays.asList(advice)); } return spec -> spec.poller(poller); }