Super Coding Addict
아파치 카멜 본문
barunmo.blogspot.com/2013/10/apache-camel-hello-world.html
package com.vtw.camel;
import java.util.Arrays;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class CamelApplication extends RouteBuilder {
public static void main(String[] args) {
SpringApplication.run(CamelApplication.class, args);
}
@Override
public void configure() throws Exception {
// move data from one file to another file
System.out.println("started...");
// moveAllFile();
// moveSpecificFile("myFile");
// moveSpecificFileWithBody("Java");
// fileProcess();
multiFileProcessor();
System.out.println("End...");
}
public void moveAllFile() {
from("file:C:/Users/user/Desktop/A?noop=true").to("file:C:/Users/user/Desktop/B");
}
public void moveSpecificFile(String type) {
from("file:C:/Users/user/Desktop/A?noop=true").filter(header(Exchange.FILE_NAME).startsWith(type))
.to("file:C:/Users/user/Desktop/B");
}
public void moveSpecificFileWithBody(String content) {
from("file:C:/Users/user/Desktop/A?noop=true").filter(body().startsWith(content))
.to("file:C:/Users/user/Desktop/B");
}
public void fileProcess() {
from("file:source?noop=true").process(p -> {
String body = p.getIn().getBody(String.class);
StringBuilder sb = new StringBuilder();
Arrays.stream(body.split(" ")).forEach(s -> {
sb.append(s + ",");
});
p.getIn().setBody(sb);
})
.to("file:destination?fileName=records.csv");
}
public void multiFileProcessor(){
from("file:source?noop=true")
.unmarshal().csv().split(body().tokenize(",")).choice()
.when(body().contains("Closed")).to("file:destination?fileName=close.csv")
.when(body().contains("Pending")).to("file:destination?fileName=pending.csv")
.when(body().contains("Interest")).to("file:destination?fileName=interest.csv");
}
}
'Today I learned' 카테고리의 다른 글
오라클 문법 연습 (210223) (0) | 2021.02.24 |
---|---|
오라클 문법 연습 (210218) (0) | 2021.02.19 |
VO와 Mapper의 resultMap (0) | 2021.02.04 |
@RequestBody, JSON.Stringify (0) | 2021.02.02 |
카프카 설치 (0) | 2021.02.02 |