376장. Cryostat 언어
Camel 버전 1.1에서 사용 가능
Camel은 DSL 또는 Cryostat 구성에서 Expression 또는 Predicate를 사용할 수 있도록 Cryostat 를 지원합니다. 예를 들어 Cryostat를 사용하여 메시지 필터 에서 또는 수신자 목록의 표현식으로 Predicate를 만들 수 있습니다.
스트림
메시지 본문이 스트림 기반인 경우 수신되는 입력이 스트림으로 Camel에 제출됨을 의미합니다. 즉, 스트림의 내용을 한 번만 읽을 수 있습니다. 따라서 Cryostat를 메시지 필터 또는 콘텐츠 기반 라우터로 사용하는 경우 여러 번 데이터에 액세스해야 하며 Stream Caching을 사용하거나 메시지 본문을 여러 번 다시 읽기 전에 문자열로 변환해야 합니다. ???
from("queue:foo"). filter().xpath("//foo")). to("queue:bar")
from("queue:foo"). choice().xpath("//foo")).to("queue:bar"). otherwise().to("queue:others");
376.1. Cryostat 언어 옵션
Cryostat 언어는 아래에 나열된 9 가지 옵션을 지원합니다.
이름 | 기본 | Java Type | 설명 |
---|---|---|---|
documentType |
| 문서 유형 클래스 이름: 기본값은 org.w3c.dom.Document입니다. | |
resultType |
|
| 결과 형식의 클래스 이름(출력에서 입력)을 설정합니다. 기본 결과 유형은 NodeSet입니다. |
Saxon |
|
| Saxon을 사용할 지 여부입니다. |
factoryRef |
| 레지스트리에서 조회하기 위한 사용자 지정 CryostatFactory 참조 | |
objectModel |
| 사용할 Cryostat 오브젝트 모델입니다. | |
logNamespaces |
|
| 문제 발생 시 지원할 수 있는 네임스페이스를 로깅할지 여부 |
headerName |
| 메시지 본문 대신 입력으로 사용할 헤더의 이름입니다. | |
threadSafety |
|
| xpath 표현식의 반환된 결과에 대해 thread- Cryostat를 활성화할지 여부입니다. 이는 결과 유형으로 NODESET을 사용할 때 적용되며 반환된 세트에는 여러 요소가 있습니다. 이 상황에서는 Camel Splitter EIP와 같이 병렬 처리 모드에서 NODESET을 동시에 처리하는 경우 스레드 문제가 있을 수 있습니다. 이 옵션은 노드의 방어 복사본을 수행하여 동시성 문제를 방지합니다. 애플리케이션에서 camel-saxon 또는 Saxon을 사용하는 경우 이 옵션을 켜는 것이 좋습니다. Saxon에는 이 옵션을 활성화하여 방지할 수 있는 스레드 문제가 있습니다. |
Trim |
|
| 선행 공백 및 줄 바꿈을 제거하는 값을 트리밍할지 여부 |