JavaLessons/camel-testing/src/main/java/me/bvn13/lesson/camel/testing/cameltesting/danielolivaw/FileBackupRouteBuilder.java

50 lines
2.1 KiB
Java

package me.bvn13.lesson.camel.testing.cameltesting.danielolivaw;
import org.apache.camel.builder.RouteBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
@Component
public class FileBackupRouteBuilder extends RouteBuilder {
public static final String SOURCE_FILE_NAME = "SourceFileName";
public static final String DESTINATION_FILE_NAME = "DestinationFileName";
public static final String DATE_PART_1 = "DATE_PART_1";
public static final String DATE_PART_2 = "DATE_PART_2";
public static final String DATE_PART_3 = "DATE_PART_3";
@Value("${source.path}")
private String sourcePath;
@Value("${destination.path}")
private String destinationPath;
@Override
public void configure() throws Exception {
from("file://" + sourcePath + "?delete=false&recursively=true")
.routeId("Transfer_Backup")
.setProperty(SOURCE_FILE_NAME, header("CamelFileName"))
.log("Transferring ${exchangeProperty["+SOURCE_FILE_NAME+"]}")
.process(exchange -> {
String sourceFileName = exchange.getProperty(SOURCE_FILE_NAME, String.class);
// be sure sourceFileName is a name without path
String newFileName = sourceFileName + ".bup"; // maybe
LocalDate now = LocalDate.now();
exchange.setProperty(DATE_PART_1, now.getYear());
exchange.setProperty(DATE_PART_2, now.getMonthValue());
exchange.setProperty(DATE_PART_3, now.getDayOfMonth());
exchange.setProperty(DESTINATION_FILE_NAME, newFileName);
})
.toD("file://" + destinationPath +
"/${exchangeProperty["+DATE_PART_1+"]}" +
"/${exchangeProperty["+DATE_PART_2+"]}" +
"/${exchangeProperty["+DATE_PART_3+"]}" +
"/${exchangeProperty["+DESTINATION_FILE_NAME+"]}")
;
}
}