public static FileToStringTransformer fileToString() { return fileToString(null); }
public static FileToStringTransformer fileToString() { return fileToString(null); }
public void pollDirectories(File... directories) { for (File directory : directories) { StandardIntegrationFlow integrationFlow = IntegrationFlows .from(s -> s.file(directory) .scanner(new DefaultDirectoryScanner()), e -> e.poller(p -> p.fixedDelay(1000)) .id(directory.getName() + ".adapter")) .transform(Transformers.fileToString(), e -> e.id(directory.getName() + ".transformer")) .channel(this.dynamicAdaptersResult) .get(); this.beanFactory.initializeBean(integrationFlow, directory.getName()); this.beanFactory.getBean(directory.getName() + ".transformer", Lifecycle.class).start(); this.beanFactory.getBean(directory.getName() + ".adapter", Lifecycle.class).start(); } }
@Bean public IntegrationFlow fileToFile() { return IntegrationFlows.from(Files.inboundAdapter(new File("/tmp/in")) .autoCreateDirectory(true) .patternFilter("*.txt"), e -> e.poller(Pollers.fixedDelay(5000))) .transform(Transformers.fileToString()) .transform("payload.replaceAll('\r\n', '\n')") .handle(Files.outboundAdapter("'/tmp/out'") .autoCreateDirectory(true)) .get(); }
@Bean public IntegrationFlow fileToFile() { return IntegrationFlows.from(Files.inboundAdapter(new File("/tmp/in")) .autoCreateDirectory(true) .patternFilter("*.txt"), e -> e.poller(Pollers.fixedDelay(5000))) .transform(Transformers.fileToString()) .transform("payload.replaceAll('\r\n', '\n')") .publishSubscribeChannel(c -> c .subscribe(s -> s.handle(Files.outboundAdapter("'/tmp/out'") .autoCreateDirectory(true))) .subscribe(s -> s.log(LoggingHandler.Level.WARN, null, "headers['file_originalFile'].absolutePath + ' transferred'"))) .get(); }
@Bean public IntegrationFlow fileReadingFlow() { return IntegrationFlows .from(s -> s.file(tmpDir.getRoot()) .patternFilter("*.sitest") .useWatchService(true) .watchEvents(FileReadingMessageSource.WatchEventType.CREATE, FileReadingMessageSource.WatchEventType.MODIFY), e -> e.poller(Pollers.fixedDelay(100) .errorChannel("filePollingErrorChannel"))) .filter(File.class, p -> !p.getName().startsWith("a"), e -> e.throwExceptionOnRejection(true)) .transform(Transformers.fileToString()) .aggregate(a -> a.correlationExpression("1") .releaseStrategy(g -> g.size() == 25)) .channel(MessageChannels.queue("fileReadingResultChannel")) .get(); }