Example usage for org.springframework.integration.endpoint SourcePollingChannelAdapter setTrigger

List of usage examples for org.springframework.integration.endpoint SourcePollingChannelAdapter setTrigger

Introduction

In this page you can find the example usage for org.springframework.integration.endpoint SourcePollingChannelAdapter setTrigger.

Prototype

public void setTrigger(Trigger trigger) 

Source Link

Usage

From source file:eu.openanalytics.rsb.component.DirectoryDepositHandler.java

@PostConstruct
public void setupChannelAdapters() {
    final List<DepositDirectoryConfiguration> depositDirectoryConfigurations = getConfiguration()
            .getDepositRootDirectories();

    if ((depositDirectoryConfigurations == null) || (depositDirectoryConfigurations.isEmpty())) {
        return;//from   w w w .ja  v  a  2s .  com
    }

    final NioFileLocker nioFileLocker = new NioFileLocker();

    for (final DepositDirectoryConfiguration depositDirectoryConfiguration : depositDirectoryConfigurations) {
        final PeriodicTrigger fileTrigger = new PeriodicTrigger(
                depositDirectoryConfiguration.getPollingPeriod(), TimeUnit.MILLISECONDS);
        fileTrigger.setInitialDelay(5000L);

        final File depositRootDirectory = depositDirectoryConfiguration.getRootDirectory();

        final FileReadingMessageSource fileMessageSource = new FileReadingMessageSource();
        fileMessageSource.setAutoCreateDirectory(true);
        fileMessageSource.setBeanFactory(beanFactory);
        fileMessageSource.setBeanName("rsb-deposit-dir-ms-" + depositRootDirectory.getPath());
        fileMessageSource.setDirectory(new File(depositRootDirectory, Configuration.DEPOSIT_JOBS_SUBDIR));
        fileMessageSource.setFilter(zipJobFilter);
        fileMessageSource.setLocker(nioFileLocker);
        fileMessageSource.afterPropertiesSet();

        final HeaderSettingMessageSourceWrapper<File> messageSource = new HeaderSettingMessageSourceWrapper<File>(
                fileMessageSource, DIRECTORY_CONFIG_HEADER_NAME, depositDirectoryConfiguration);

        final SourcePollingChannelAdapter channelAdapter = new SourcePollingChannelAdapter();
        channelAdapter.setBeanFactory(beanFactory);
        channelAdapter.setBeanName("rsb-deposit-dir-ca-" + depositRootDirectory.getPath());
        channelAdapter.setOutputChannel(directoryDepositChannel);
        channelAdapter.setSource(messageSource);
        channelAdapter.setTrigger(fileTrigger);
        channelAdapter.afterPropertiesSet();
        channelAdapter.start();

        getLogger().info("Started channel adapter: " + channelAdapter);

        channelAdapters.add(channelAdapter);
    }
}

From source file:eu.openanalytics.rsb.component.EmailDepositHandler.java

@PostConstruct
public void setupChannelAdapters() throws URISyntaxException {
    final List<DepositEmailConfiguration> depositEmailConfigurations = getConfiguration()
            .getDepositEmailAccounts();// ww  w. j  a va 2  s .c o  m

    if ((depositEmailConfigurations == null) || (depositEmailConfigurations.isEmpty())) {
        return;
    }

    for (final DepositEmailConfiguration depositEmailConfiguration : depositEmailConfigurations) {
        final PeriodicTrigger trigger = new PeriodicTrigger(depositEmailConfiguration.getPollingPeriod(),
                TimeUnit.MILLISECONDS);
        trigger.setInitialDelay(5000L);

        AbstractMailReceiver mailReceiver = null;

        final URI emailAccountURI = depositEmailConfiguration.getAccountURI();
        if (StringUtils.equals(emailAccountURI.getScheme(), "pop3")) {
            mailReceiver = new Pop3MailReceiver(emailAccountURI.toString());
        } else if (StringUtils.equals(emailAccountURI.getScheme(), "imap")) {
            mailReceiver = new ImapMailReceiver(emailAccountURI.toString());
            ((ImapMailReceiver) mailReceiver).setShouldMarkMessagesAsRead(true);
        } else {
            throw new IllegalArgumentException("Invalid email account URI: " + emailAccountURI);
        }

        mailReceiver.setBeanFactory(beanFactory);
        mailReceiver.setBeanName("rsb-email-ms-" + emailAccountURI.getHost() + emailAccountURI.hashCode());
        mailReceiver.setShouldDeleteMessages(true);
        mailReceiver.setMaxFetchSize(1);
        mailReceiver.afterPropertiesSet();
        final MailReceivingMessageSource fileMessageSource = new MailReceivingMessageSource(mailReceiver);
        final HeaderSettingMessageSourceWrapper<javax.mail.Message> messageSource = new HeaderSettingMessageSourceWrapper<javax.mail.Message>(
                fileMessageSource, EMAIL_CONFIG_HEADER_NAME, depositEmailConfiguration);

        final SourcePollingChannelAdapter channelAdapter = new SourcePollingChannelAdapter();
        channelAdapter.setBeanFactory(beanFactory);
        channelAdapter.setBeanName("rsb-email-ca-" + emailAccountURI.getHost() + emailAccountURI.hashCode());
        channelAdapter.setOutputChannel(emailDepositChannel);
        channelAdapter.setSource(messageSource);
        channelAdapter.setTrigger(trigger);
        channelAdapter.afterPropertiesSet();
        channelAdapter.start();

        getLogger().info("Started channel adapter: " + channelAdapter);

        channelAdapters.add(channelAdapter);
    }
}