diff --git a/spring-apache-camel/src/main/java/com/baeldung/camel/file/FileProcessor.java b/spring-apache-camel/src/main/java/com/baeldung/camel/file/FileProcessor.java
new file mode 100644
index 0000000000..1ea2cad188
--- /dev/null
+++ b/spring-apache-camel/src/main/java/com/baeldung/camel/file/FileProcessor.java
@@ -0,0 +1,20 @@
+package com.baeldung.camel.file;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+
+public class FileProcessor implements Processor {
+
+ public void process(Exchange exchange) throws Exception {
+ String originalFileName = (String) exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
+
+ Date date = new Date();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
+ String changedFileName = dateFormat.format(date) + originalFileName;
+ exchange.getIn().setHeader(Exchange.FILE_NAME, changedFileName);
+ }
+
+}
diff --git a/spring-apache-camel/src/main/java/com/baeldung/camel/file/FileRouter.java b/spring-apache-camel/src/main/java/com/baeldung/camel/file/FileRouter.java
new file mode 100644
index 0000000000..5216c9a595
--- /dev/null
+++ b/spring-apache-camel/src/main/java/com/baeldung/camel/file/FileRouter.java
@@ -0,0 +1,15 @@
+package com.baeldung.camel.file;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class FileRouter extends RouteBuilder {
+
+ private static final String SOURCE_FOLDER = "src/test/source-folder";
+ private static final String DESTINATION_FOLDER = "src/test/destination-folder";
+
+ @Override
+ public void configure() throws Exception {
+ from("file://" + SOURCE_FOLDER + "?delete=true").process(new FileProcessor()).to("file://" + DESTINATION_FOLDER);
+ }
+
+}
diff --git a/spring-apache-camel/src/main/resources/camel-context-test.xml b/spring-apache-camel/src/main/resources/camel-context-test.xml
new file mode 100644
index 0000000000..e6435db9e5
--- /dev/null
+++ b/spring-apache-camel/src/main/resources/camel-context-test.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-apache-camel/src/main/resources/camel-context.xml b/spring-apache-camel/src/main/resources/camel-context.xml
index 0c10e0ecef..63ef406fdf 100644
--- a/spring-apache-camel/src/main/resources/camel-context.xml
+++ b/spring-apache-camel/src/main/resources/camel-context.xml
@@ -1,39 +1,39 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
- ${body.toLowerCase()}
-
+
+
+ ${body.toLowerCase()}
+
-
-
+
+
-
-
- .......... File content conversion completed ..........
-
-
+
+
+ .......... File content conversion completed ..........
+
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/spring-apache-camel/src/test/java/org/apache/camel/file/processor/FileProcessorTest.java b/spring-apache-camel/src/test/java/org/apache/camel/file/processor/FileProcessorTest.java
new file mode 100644
index 0000000000..3d63f614e0
--- /dev/null
+++ b/spring-apache-camel/src/test/java/org/apache/camel/file/processor/FileProcessorTest.java
@@ -0,0 +1,68 @@
+package org.apache.camel.file.processor;
+
+import java.io.File;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import com.baeldung.camel.file.FileProcessor;
+
+
+public class FileProcessorTest {
+
+ private static final long DURATION_MILIS = 10000;
+ private static final String SOURCE_FOLDER = "src/test/source-folder";
+ private static final String DESTINATION_FOLDER = "src/test/destination-folder";
+
+ @Before
+ public void setUp() throws Exception {
+ File sourceFolder = new File(SOURCE_FOLDER);
+ File destinationFolder = new File(DESTINATION_FOLDER);
+
+ cleanFolder(sourceFolder);
+ cleanFolder(destinationFolder);
+
+ sourceFolder.mkdirs();
+ File file1 = new File(SOURCE_FOLDER + "/File1.txt");
+ File file2 = new File(SOURCE_FOLDER + "/File2.txt");
+ file1.createNewFile();
+ file2.createNewFile();
+ }
+
+ private void cleanFolder(File folder) {
+ File[] files = folder.listFiles();
+ if (files != null) {
+ for (File file : files) {
+ if (file.isFile()) {
+ file.delete();
+ }
+ }
+ }
+ }
+
+ @Test
+ public void moveFolderContentJavaDSLTest() throws Exception {
+ final CamelContext camelContext = new DefaultCamelContext();
+ camelContext.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("file://" + SOURCE_FOLDER + "?delete=true").process(new FileProcessor()).to("file://" + DESTINATION_FOLDER);
+ }
+ });
+ camelContext.start();
+ Thread.sleep(DURATION_MILIS);
+ camelContext.stop();
+ }
+
+ @Test
+ public void moveFolderContentSpringDSLTest() throws InterruptedException {
+ ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("camel-context-test.xml");
+ Thread.sleep(DURATION_MILIS);
+ applicationContext.close();
+
+ }
+}
\ No newline at end of file