List of usage examples for org.springframework.integration.file.locking NioFileLocker NioFileLocker
NioFileLocker
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 w w . ja va 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); } }