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을 사용하는 방법을 배웁니다.