Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

Super Coding Addict

아파치 카멜 본문

Today I learned

아파치 카멜

밍응애 2021. 2. 5. 17:55

 

barunmo.blogspot.com/2013/10/apache-camel-hello-world.html

 

Apache Camel, Hello, world!

세상을 위한 바른 기술

barunmo.blogspot.com

 

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