Адаптер входящего канала создается с помощью средства опроса, чтобы опрашивать файлы, присутствующие в каталоге root и его подкаталогах
e.g.
RootDir
|_abc.txt
|_subdirectory1
|_subdirfile1.doc
Проблема в том, что адаптер входящего канала считывает каталог также как сообщение
@Bean
@InboundChannelAdapter(autoStartup = "false", value = "incomingchannel", poller = @Poller("custompoller"))
public MessageSource<File> fileReadingMessageSource(DirectoryScanner directoryScanner) {
FileReadingMessageSource sourceReader = new FileReadingMessageSource();
sourceReader.setScanner(directoryScanner);
}
@Bean
public DirectoryScanner directoryScanner() {
DirectoryScanner scanner = new RecursiveDirectoryScanner();
CompositeFileListFilter filter = new CompositeFileListFilter<>(
Arrays.asList(new AcceptOnceFileListFilter<>(), new RegexPatternFileListFilter(regex)));
scanner.setFilter(filter);
return scanner;
}
@Trasnformer(inputChannel="incomingchannel",....
torequest(Mesage<File> message) {
message.getPayload()
}
Здесь message.getpayLoad печатает подкаталог1, т. Е. Каталог также читается как файл сообщения
Я могу явно обработать, как файл является каталогом или нет в trasnformer и игнорировать, но хотел бы знать, есть ли какой-либо способ его можно отфильтровать в сканере рекурсивных каталогов, подключенном к адаптеру входящего канала?