forked from eugenp/tutorials
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- added new camel example (eugenp#812)
- added new camel context for junit test
- Loading branch information
Showing
5 changed files
with
141 additions
and
24 deletions.
There are no files selected for viewing
20 changes: 20 additions & 0 deletions
20
spring-apache-camel/src/main/java/com/baeldung/camel/file/FileProcessor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} | ||
|
||
} |
15 changes: 15 additions & 0 deletions
15
spring-apache-camel/src/main/java/com/baeldung/camel/file/FileRouter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} | ||
|
||
} |
14 changes: 14 additions & 0 deletions
14
spring-apache-camel/src/main/resources/camel-context-test.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,39 @@ | ||
<?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 | ||
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"> | ||
|
||
<camelContext xmlns="http://camel.apache.org/schema/spring"> | ||
<camelContext xmlns="http://camel.apache.org/schema/spring"> | ||
|
||
<route customId="true" id="route1"> | ||
<route customId="true" id="route1"> | ||
|
||
<!-- Read files from input directory --> | ||
<from uri="file://src/test/data/input"/> | ||
<!-- Read files from input directory --> | ||
<from uri="file://src/test/data/input" /> | ||
|
||
<!-- Transform content to UpperCase --> | ||
<process ref="myFileProcessor"/> | ||
<!-- Transform content to UpperCase --> | ||
<process ref="myFileProcessor" /> | ||
|
||
<!-- Write converted file content --> | ||
<to uri="file://src/test/data/outputUpperCase"/> | ||
<!-- Write converted file content --> | ||
<to uri="file://src/test/data/outputUpperCase" /> | ||
|
||
<!-- Transform content to LowerCase --> | ||
<transform> | ||
<simple>${body.toLowerCase()}</simple> | ||
</transform> | ||
<!-- Transform content to LowerCase --> | ||
<transform> | ||
<simple>${body.toLowerCase()}</simple> | ||
</transform> | ||
|
||
<!-- Write converted file content --> | ||
<to uri="file://src/test/data/outputLowerCase"/> | ||
<!-- Write converted file content --> | ||
<to uri="file://src/test/data/outputLowerCase" /> | ||
|
||
<!-- Display process completion message on console --> | ||
<transform> | ||
<simple>.......... File content conversion completed ..........</simple> | ||
</transform> | ||
<to uri="stream:out"/> | ||
<!-- Display process completion message on console --> | ||
<transform> | ||
<simple>.......... File content conversion completed ..........</simple> | ||
</transform> | ||
<to uri="stream:out" /> | ||
|
||
</route> | ||
</route> | ||
|
||
</camelContext> | ||
</camelContext> | ||
|
||
<bean id="myFileProcessor" class="com.baeldung.camel.processor.FileProcessor"/> | ||
<bean id="myFileProcessor" class="com.baeldung.camel.processor.FileProcessor" /> | ||
</beans> |
68 changes: 68 additions & 0 deletions
68
spring-apache-camel/src/test/java/org/apache/camel/file/processor/FileProcessorTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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(); | ||
|
||
} | ||
} |