2016-04-06 2 views
2

У меня есть источник XD пользовательских Spring, который я хочу использовать:Как настроить Spring InboundChannelAdapter для Spring XD?

package com.my.springproject; 

    import org.springframework.integration.annotation.InboundChannelAdapter; 
    import org.springframework.integration.annotation.Poller; 

    public class MySource 
    { 
     @InboundChannelAdapter(value = "output", 
      poller = @Poller(fixedDelay = "5000", maxMessagesPerPoll = "1")) 
     public String next() { 
      return "foo"; 
     } 
    } 

Вопрос теперь в том, как я могу зарегистрировать это в моем ModuleConfiguration.java, так что весна XD распознает его как действительный источник? Пока у меня это есть, но Source никогда ничего не записывает.

Мой ModuleConfiguration выглядит следующим образом:

package com.my.springproject; 

import org.springframework.beans.factory.annotation.Value; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.integration.channel.DirectChannel; 
import org.springframework.integration.config.EnableIntegration; 
import org.springframework.messaging.MessageChannel; 

@Configuration 
@EnableIntegration 
@ComponentScan(value = { "com.my.springproject" }) 
public class ModuleConfiguration { 
    @Bean 
    MessageChannel output() { 
     return new DirectChannel(); 
    } 

     @Bean 
    MySource source() { 
     return new MySource(); 
    } 
} 

ответ

1

Вы должны отметить ваш MySource с @MessageEndpoint, или просто с @Component.

Похоже, мы переборщили там немного, и иметь эту логику в MessagingAnnotationPostProcessor:

if (AnnotationUtils.findAnnotation(beanClass, Component.class) == null) { 
     // we only post-process stereotype components 
     return bean; 
    } 

Похоже, что это немного странно, не проверять сообщения аннотаций на только @Bean.

Не стесняйтесь поднять JIRA (https://jira.spring.io/browse/INT) вопрос по этому вопросу!

+1

См. JIRA по вопросу https://jira.spring.io/browse/INT-3980 –

+0

Спасибо, это работает! –

Смежные вопросы