50 lines
2.1 KiB
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+"]}")
|
|
;
|
|
|
|
}
|
|
}
|