Apache Camel-프로젝트
Maven을 사용하여 Camel 프로젝트를 빌드합니다. 그러나 우리는 개발을 위해 IntelliJ IDE를 선호했습니다. 이 프로젝트에 원하는 IDE를 사용할 수 있습니다.
새 프로젝트 생성
새로 만들기 Maven 프로젝트를 지정하고 다음을 지정하십시오-
GroupId: Basket
ArtifactId: Basket
프로젝트의 기본 위치를 선택하거나 원하는 경우 원하는 디렉토리를 지정하십시오.
종속성 추가
Camel을 사용하려면 몇 가지 종속성을 추가해야합니다. 종속성이 추가되었습니다.pom.xml. 따라서 pom.xml을 열고 다음 두 가지 종속성을 추가하십시오.
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-stream</artifactId>
<version>2.20.0</version>
</dependency>
</dependencies>
Note− 애플리케이션에 대한 최소한의 종속성이 필요합니다. 라이브러리에서 더 많은 Camel 구성 요소를 사용함에 따라이 pom.xml 파일에 해당 종속성을 추가해야합니다.
Java DSL 생성
다음으로 Java DSL에서 필터링 및 라우팅 코드를 작성합니다. 라는 새 Java 클래스를 만듭니다.DistributeOrderDSL. 그것에 다음 코드를 추가하십시오-
public class DistributeOrderDSL {
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
try {
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:DistributeOrderDSL")
.split(xpath("//order[@product='soaps']/items")).to("stream:out");
// .to("file:src/main/resources/order/");
}
});
context.start();
ProducerTemplate orderProducerTemplate = context.createProducerTemplate();
InputStream orderInputStream = new FileInputStream(ClassLoader.getSystemClassLoader()
.getResource("order.xml").getFile());
orderProducerTemplate.sendBody("direct:DistributeOrderDSL", orderInputStream);
} finally {
context.stop();
}
}
}
에서 main 방법, 먼저 우리는 CamelContext 에 제공된 기본 구현을 인스턴스화하여 DefaultCamelContext 수업.
CamelContext context = new DefaultCamelContext();
다음으로 익명을 생성하여 경로를 추가합니다. RouteBuilder 인스턴스-
context.addRoutes(new RouteBuilder() {
우리는 configure 직접 URI에서 경로를 추가하는 방법 DistributeOrderDSL시스템 콘솔에. xpath 쿼리를 사용하여 일부 필터링을 제공합니다.
public void configure() throws Exception {
from("direct:DistributeOrderDSL")
.split(xpath("//order[@product = 'soaps']/items")).to("stream:out");
// .to("file:src/main/resources/order/");
}
경로를 추가 한 후 컨텍스트를 시작합니다.
context.start();
다음으로 직접 URI를 만들기위한 코드를 추가합니다. DistributeOrderDSL.
ProducerTemplate orderProducerTemplate = context.createProducerTemplate();
InputStream orderInputStream = new FileInputStream(ClassLoader.getSystemClassLoader()
.getResource("order.xml").getFile());
마지막으로 처리를 시작합니다.
orderProducerTemplate.sendBody("direct:DistributeOrderDSL", orderInputStream);
이제 Java DSL 코드가 완성되면 응용 프로그램을 테스트하기 전에 남은 유일한 것은 order.xml프로젝트에 파일을 추가하십시오. 이를 위해 소개 장에 표시된 샘플 XML을 사용할 수 있습니다.
시험 결과
응용 프로그램을 실행하면 다음 출력이 표시됩니다.
<items>
<item>
<Brand>Cinthol</Brand>
<Type>Original</Type>
<Quantity>4</Quantity>
<Price>25</Price>
</item>
<item>
<Brand>Cinthol</Brand>
<Type>Lime</Type>
<Quantity>6</Quantity>
<Price>30</Price>
</item>
</items>
여기에는 비누 주문 만 나열됩니다. 이것을 로컬 파일에 저장하려면stream.out 다음 줄의 주석 처리를 제거하십시오. configure 방법-
// .to("file:src/main/resources/order/");
다음 섹션에서는 Spring과 함께 Camel을 사용하는 방법을 배웁니다.