15장. EL

15.1. 개요

EL(Unified Expression Language)은 원래 JSP 2.1 표준(JSR-245)의 일부로 지정되었지만 이제 독립 실행형 언어로 사용할 수 있습니다. Apache Camel은 EL 언어의 오픈 소스 구현인 JUEL( http://juel.sourceforge.net/)과 통합됩니다.http://juel.sourceforge.net/

15.2. JUEL 패키지 추가

경로에서 EL을 사용하려면 예 15.1. “camel-juel 종속성 추가” 에 표시된 대로 camel-juel 에 대한 종속성을 프로젝트에 추가해야 합니다.

예 15.1. camel-juel 종속성 추가

<!-- Maven POM File -->
<properties>
  <camel-version>2.23.2.fuse-790054-redhat-00001</camel-version>
  ...
</properties>

<dependencies>
  ...
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-juel</artifactId>
    <version>${camel-version}</version>
  </dependency>
  ...
</dependencies>

15.3. 정적 가져오기

애플리케이션 코드에서 el() 정적 메서드를 사용하려면 Java 소스 파일에 다음 import 문을 포함합니다.

import static org.apache.camel.language.juel.JuelExpression.el;

15.4. 변수

표 15.1. “EL 변수” EL을 사용할 때 액세스할 수 있는 변수를 나열합니다.

표 15.1. EL 변수

Variable유형현재의

exchange

org.apache.camel.Exchange

현재 교환

in

org.apache.camel.Message

IN 메시지

out

org.apache.camel.Message

OUT 메시지

15.5. 예제

예 15.2. “EL을 사용하는 경로” EL을 사용하는 두 개의 경로를 보여줍니다.

예 15.2. EL을 사용하는 경로

<camelContext>
  <route>
    <from uri="seda:foo"/>
    <filter>
      <language language="el">${in.headers.foo == 'bar'}</language>
      <to uri="seda:bar"/>
    </filter>
  </route>
  <route>
    <from uri="seda:foo2"/>
    <filter>
      <language language="el">${in.headers['My Header'] == 'bar'}</language>
      <to uri="seda:bar"/>
    </filter>
  </route>
</camelContext>