Saturday, 10 September 2016

First apache camel application

Apache Camel :- Is built on top of enterprise integration patterns which does all type heavy lifting working and focusing developers on code logic.It is mainly involved in integration of different services.Like moving a file from location to another by transforming/enriching content of file.

Pre-requisite :- Down load camel jars and have them in build path.

Step1 :- Create a plain java project

Main application :- Where we create camel context and add routes

package com.java.firstCamel;

import org.apache.camel.*;
import org.apache.camel.impl.DefaultCamelContext;

public class MainApp {

public static void main(String args[]) {
RouterBuilder routerBuilder = new RouterBuilder();
CamelContext camelContext = new DefaultCamelContext();
try {
camelContext.addRoutes(routerBuilder);
camelContext.start();
Thread.sleep(5 * 60 * 1000);
camelContext.stop();
} catch (Exception e) {
e.printStackTrace();
}
}

}

Route Builder :- Core logic for route builder to move file form one place to another.

package com.java.firstCamel;

import org.apache.camel.builder.RouteBuilder;

public class RouterBuilder extends RouteBuilder {

@Override
public void configure() throws Exception {
// TODO Auto-generated method stub
from("file:/C:/Location1/krishna").process(new LogProcessor()).bean(new Transformer(), "transfromMessage")
.to("file:/C:/Location12");

}

}

Transformer :- Core logic for transforming or modifying in coming data.

package com.java.firstCamel;

public class Transformer {

public String transfromMessage(String message) {
System.out.println("Tranformation executed");
return message.toUpperCase();
}
}

LogProcessor :- To log and verify the result is proper or not

package com.java.firstCamel;

import org.apache.camel.Exchange;
import org.apache.camel.Processor;

public class LogProcessor implements Processor {

@Override
public void process(Exchange exchange) throws Exception {
// TODO Auto-generated method stub
System.out.println("Executing log processor :- " + exchange.getIn().getBody(String.class));

}

}


No comments:

Post a Comment

Custom single threaded java server

 package com.diffengine.csv; import java.io.*; import java.net.*; import java.util.Date; public class Server { public static void main(Str...