Example usage for org.springframework.integration.file FileReadingMessageSource FileReadingMessageSource

List of usage examples for org.springframework.integration.file FileReadingMessageSource FileReadingMessageSource

Introduction

In this page you can find the example usage for org.springframework.integration.file FileReadingMessageSource FileReadingMessageSource.

Prototype

public FileReadingMessageSource() 

Source Link

Document

Creates a FileReadingMessageSource with a naturally ordered queue of unbounded capacity.

Usage

From source file:com.create.application.configuration.IntegrationConfiguration.java

@Bean
@InboundChannelAdapter(value = "inboundFileChannel", poller = @Poller(cron = "${ticket.poller.cron}"))
public MessageSource<File> fileMessageSource(@Value("${ticket.poller.path}") final String path,
        @Value("${ticket.poller.fileMask}") final String fileMask) {
    final FileReadingMessageSource source = new FileReadingMessageSource();
    final CompositeFileListFilter<File> compositeFileListFilter = new CompositeFileListFilter<>();
    final SimplePatternFileListFilter simplePatternFileListFilter = new SimplePatternFileListFilter(fileMask);
    final AcceptOnceFileListFilter<File> acceptOnceFileListFilter = new AcceptOnceFileListFilter<>();
    compositeFileListFilter.addFilter(simplePatternFileListFilter);
    compositeFileListFilter.addFilter(acceptOnceFileListFilter);
    source.setFilter(compositeFileListFilter);
    source.setDirectory(new File(path));
    return source;
}

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;//w ww  .  j  a  v a 2 s .c  o  m
    }

    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:com.joshlong.esb.springintegration.modules.net.sftp.config.SFTPMessageSourceFactoryBean.java

@Override
protected SFTPMessageSource createInstance() throws Exception {
    try {//w w w. j  a v a 2  s  . c om
        if ((localWorkingDirectory == null) || StringUtils.isEmpty(localWorkingDirectory)) {
            File tmp = SystemUtils.getJavaIoTmpDir();
            File sftpTmp = new File(tmp, "sftpInbound");
            this.localWorkingDirectory = "file://" + sftpTmp.getAbsolutePath();
        }
        assert !StringUtils
                .isEmpty(this.localWorkingDirectory) : "the local working directory mustn't be null!";

        // resource for local directory
        ResourceEditor editor = new ResourceEditor(this.resourceLoader);
        editor.setAsText(this.localWorkingDirectory);
        this.localDirectoryResource = (Resource) editor.getValue();

        fileReadingMessageSource = new FileReadingMessageSource();

        synchronizer = new SFTPInboundSynchronizer();

        if (null == taskScheduler) {
            Map<String, TaskScheduler> tss = null;

            if ((tss = applicationContext.getBeansOfType(TaskScheduler.class)).keySet().size() != 0) {
                taskScheduler = tss.get(tss.keySet().iterator().next());
            }
        }

        if (null == taskScheduler) {
            ThreadPoolTaskScheduler ts = new ThreadPoolTaskScheduler();
            ts.setPoolSize(10);
            ts.setErrorHandler(new ErrorHandler() {
                public void handleError(Throwable t) {
                    // todo make this forward a message onto the error channel (how does that work?)
                    logger.debug("error! ", t);
                }
            });

            ts.setWaitForTasksToCompleteOnShutdown(true);
            ts.initialize();
            this.taskScheduler = ts;
        }

        SFTPSessionFactory sessionFactory = SFTPSessionUtils.buildSftpSessionFactory(this.getHost(),
                this.getPassword(), this.getUsername(), this.getKeyFile(), this.getKeyFilePassword(),
                this.getPort());

        QueuedSFTPSessionPool pool = new QueuedSFTPSessionPool(15, sessionFactory);
        pool.afterPropertiesSet();
        synchronizer.setRemotePath(this.getRemoteDirectory());
        synchronizer.setPool(pool);
        synchronizer.setAutoCreatePath(this.isAutoCreateDirectories());
        synchronizer.setShouldDeleteDownloadedRemoteFiles(this.isAutoDeleteRemoteFilesOnSync());

        SFTPMessageSource sftpMessageSource = new SFTPMessageSource(fileReadingMessageSource, synchronizer);

        sftpMessageSource.setTaskScheduler(taskScheduler);

        if (null != this.trigger) {
            sftpMessageSource.setTrigger(trigger);
        }

        sftpMessageSource.setLocalDirectory(this.localDirectoryResource);
        sftpMessageSource.afterPropertiesSet();
        sftpMessageSource.start();

        return sftpMessageSource;
    } catch (Throwable thr) {
        logger.debug("error occurred when trying to configure SFTPmessageSource ", thr);
    }

    return null;
}