BAEL-80 - file copy java config
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
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);
|
||||
return handler;
|
||||
}
|
||||
|
||||
public static void main(final String... args) {
|
||||
final AbstractApplicationContext context = new AnnotationConfigApplicationContext(FileCopyConfig.class.getCanonicalName());
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user