74 lines
2.7 KiB
Java
74 lines
2.7 KiB
Java
package com.baeldung.samples;
|
|
|
|
import java.io.File;
|
|
import java.util.Scanner;
|
|
|
|
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.support.AbstractApplicationContext;
|
|
import org.springframework.integration.annotation.InboundChannelAdapter;
|
|
import org.springframework.integration.annotation.Poller;
|
|
import org.springframework.integration.annotation.ServiceActivator;
|
|
import org.springframework.integration.channel.DirectChannel;
|
|
import org.springframework.integration.config.EnableIntegration;
|
|
import org.springframework.integration.core.MessageSource;
|
|
import org.springframework.integration.file.FileReadingMessageSource;
|
|
import org.springframework.integration.file.FileWritingMessageHandler;
|
|
import org.springframework.integration.file.filters.SimplePatternFileListFilter;
|
|
import org.springframework.integration.file.support.FileExistsMode;
|
|
import org.springframework.messaging.MessageChannel;
|
|
import org.springframework.messaging.MessageHandler;
|
|
|
|
@Configuration
|
|
@EnableIntegration
|
|
public class FileCopyConfig {
|
|
|
|
public final String INPUT_DIR = "source";
|
|
public final String OUTPUT_DIR = "target";
|
|
public final String FILE_PATTERN = "*.jpg";
|
|
|
|
@Bean
|
|
public MessageChannel fileChannel() {
|
|
return new DirectChannel();
|
|
}
|
|
|
|
@Bean
|
|
@InboundChannelAdapter(value = "fileChannel", poller = @Poller(fixedDelay = "10000"))
|
|
public MessageSource<File> fileReadingMessageSource() {
|
|
FileReadingMessageSource sourceReader = new FileReadingMessageSource();
|
|
sourceReader.setDirectory(new File(INPUT_DIR));
|
|
sourceReader.setFilter(new SimplePatternFileListFilter(FILE_PATTERN));
|
|
return sourceReader;
|
|
}
|
|
|
|
@Bean
|
|
@ServiceActivator(inputChannel = "fileChannel")
|
|
public MessageHandler fileWritingMessageHandler() {
|
|
FileWritingMessageHandler handler = new FileWritingMessageHandler(new File(OUTPUT_DIR));
|
|
handler.setFileExistsMode(FileExistsMode.REPLACE);
|
|
handler.setExpectReply(false);
|
|
return handler;
|
|
}
|
|
|
|
public static void main(final String... args) {
|
|
final AbstractApplicationContext context = new AnnotationConfigApplicationContext(FileCopyConfig.class);
|
|
context.registerShutdownHook();
|
|
final Scanner scanner = new Scanner(System.in);
|
|
System.out.print("Please enter a string and press <enter>: ");
|
|
while (true) {
|
|
final String input = scanner.nextLine();
|
|
if ("q".equals(input.trim())) {
|
|
context.close();
|
|
scanner.close();
|
|
break;
|
|
}
|
|
}
|
|
System.exit(0);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|