Below code gives just an idea that Camel is useful. Just download the libraries for Camel. I have used Camel 2.13.2 & configure the project like shown below -
Now below is the class to copy files from one folder to another folder & it relieves you from writing the code for I/O operations & give the below kind of output on the console telling that which file is copied where , quite easy :)
package routing;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
public class FileCopierWithCamel {
public static void main(String args[]) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
Processor dummy = new Processor() {
public void process(Exchange exchange) throws Exception {
System.out.println("We just copied: "
+ exchange.getIn().getHeader("CamelFileName") + " to " + exchange.getProperty("CamelToEndpoint").toString().substring(7));
}
};
from("file:E:/Source?noop=true").choice().when(header("CamelFileName").endsWith("docx")).to("file:E:/docFiles")
.process(dummy).when(header("CamelFileName").regex("^.*(xlsx|txt)$")).to("file:E:/textxlsxFiles").process(dummy).otherwise()
.to("file:E:/Junk");
}
});
context.start();
Thread.sleep(10000);
context.stop();
}
}
Output -
We just copied: New Microsoft Excel Worksheet.xlsx to E:/textxlsxFiles
We just copied: New Microsoft Word Document.docx to E:/docFiles
We just copied: New Text Document.txt to E:/textxlsxFiles
Download 'apache-camel-2.13.2' or the latest available, there are around 50 good examples. Check those :)
Well, above example I tried in 2014, to check 'Apache Camel', but it has added a lot of features & quite popular now in
'Microservices' world, so surely check if you are looking for some integration solutions & want to define different routes to
connect your microservices.
Microservices With Apache Camel - DZone Microservices
Microservices with Apache Camel – Piotr's TechBlog (wordpress.com)
package routing;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
public class FileCopierWithCamel {
public static void main(String args[]) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
Processor dummy = new Processor() {
public void process(Exchange exchange) throws Exception {
System.out.println("We just copied: "
+ exchange.getIn().getHeader("CamelFileName") + " to " + exchange.getProperty("CamelToEndpoint").toString().substring(7));
}
};
from("file:E:/Source?noop=true").choice().when(header("CamelFileName").endsWith("docx")).to("file:E:/docFiles")
.process(dummy).when(header("CamelFileName").regex("^.*(xlsx|txt)$")).to("file:E:/textxlsxFiles").process(dummy).otherwise()
.to("file:E:/Junk");
}
});
context.start();
Thread.sleep(10000);
context.stop();
}
}
Output -
We just copied: New Microsoft Excel Worksheet.xlsx to E:/textxlsxFiles
We just copied: New Microsoft Word Document.docx to E:/docFiles
We just copied: New Text Document.txt to E:/textxlsxFiles
Download 'apache-camel-2.13.2' or the latest available, there are around 50 good examples. Check those :)
Well, above example I tried in 2014, to check 'Apache Camel', but it has added a lot of features & quite popular now in
'Microservices' world, so surely check if you are looking for some integration solutions & want to define different routes to
connect your microservices.
Microservices With Apache Camel - DZone Microservices
Microservices with Apache Camel – Piotr's TechBlog (wordpress.com)