- added new camel example
- added new camel context for junit test
This commit is contained in:
parent
48f5fdb8e9
commit
9187dbd362
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
|
||||||
|
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
|
||||||
|
|
||||||
|
<bean id="fileRouter" class="com.baeldung.camel.file.FileRouter" />
|
||||||
|
<bean id="fileProcessor" class="com.baeldung.camel.file.FileProcessor" />
|
||||||
|
|
||||||
|
<camelContext xmlns="http://camel.apache.org/schema/spring">
|
||||||
|
<routeBuilder ref="fileRouter" />
|
||||||
|
</camelContext>
|
||||||
|
|
||||||
|
</beans>
|
|
@ -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();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue