2.18. 코어


Camel 핵심 기능 및 기본 Camel 언어/ Constant, ExchangeProperty, 헤더, Ref, Simple 및 Tokenize

2.18.1. 내부 내용

사용 및 설정 세부 사항은 위의 링크를 참조하십시오.

2.18.2. Maven 조정

code.quarkus.redhat.com에서 이 확장 기능을 사용하여 새 프로젝트를 생성합니다.

또는 기존 프로젝트에 좌표를 추가합니다.

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
</dependency>

2.18.3. 추가 Camel Quarkus 구성

2.18.3.1. 간단한 언어

2.18.3.1.1. OGNL 표기법 사용

간단한 언어의 OGNL 표기법을 사용할 때 camel-quarkus-ovn 확장을 사용해야 합니다.

예를 들어 아래 간단한 표현식은 Client 유형의 메시지 본문에서 getAddress() 메서드에 액세스하는 것입니다.

---
simple("${body.address}")
---

이러한 상황에서 여기에 설명된 대로 camel-quarkus-ovn 확장에 대한 추가 종속성을 취해야 합니다. 네이티브 모드에서는 리플렉션을 위해 일부 클래스를 등록해야 할 수도 있습니다. 위의 예에서 Client 클래스는 리플렉션을 위해 등록되어야 합니다.

2.18.3.1.2. 기본 모드에서 동적 유형 확인 사용

다음과 같은 간단한 표현식에서 유형을 동적으로 해결하는 경우:

  • simple("${mandatoryBodyAs(TYPE)}")
  • simple("${type:package.Enum.CONSTANT}")
  • from("…​").split(bodyAs(TYPE.class))
  • simple("${body}는 TYPE")

리플렉션을 위해 일부 클래스를 수동으로 등록하는 것이 필요할 수 있습니다.

예를 들어 아래 간단한 표현식은 런타임 시 java.nio.ByteBuffer 유형을 동적으로 확인하는 것입니다.

---
simple("${body} is 'java.nio.ByteBuffer'")
---

따라서 리플렉션을 위해 java.nio.ByteBuffer 클래스를 등록 해야합니다.

2.18.3.1.3. 기본 모드에서 classpath 리소스와 함께 간단한 언어 사용

경로가 다음 예와 같이 classpath에서 Simple 스크립트를 로드해야 하는 경우

from("direct:start").transform().simple("resource:classpath:mysimple.txt");

그런 다음 Quarkus quarkus.native.resources.includes 속성을 사용하여 아래 설명과 같이 네이티브 실행 파일에 리소스를 포함해야 합니다.

quarkus.native.resources.includes = mysimple.txt
2.18.3.1.4. 기본 모드에서 속성을 통해 사용자 정의 console 구성

#class:* 또는 #type:* 과 같은 구성으로 기본 모드에서 속성을 통해 사용자 지정 console을 지정하는 경우 리플렉션을 위해 일부 클래스를 수동으로 등록해야 할 수 있습니다.

예를 들어, 아래 사용자 지정 빈 정의에는lan instantiation 및 setter 호출에 대한 리플라이션을 사용해야 합니다.

---
camel.beans.customBeanWithSetterInjection = #class:org.example.PropertiesCustomBeanWithSetterInjection
camel.beans.customBeanWithSetterInjection.counter = 123
---

따라서 리플렉션을 위해 PropertiesCustomBeanSetterInjection 클래스를 등록해야 합니다. 이 경우 필드 액세스를 생략할 수 있습니다.

Expand
구성 속성유형Default

lock quarkus.camel.bootstrap.enabled

true로 설정하면 CamelRuntime 이 자동으로 시작됩니다.

boolean

true

lock quarkus.camel.service.discovery.exclude-patterns

classpath의 Camel 서비스 정의 파일과 일치하는 comma로 구분된 10.0.0.1-path 스타일 패턴 목록입니다. 일치하는 파일에 정의된 서비스는 org.apache.camel.spi.FactoryFinder 메커니즘을 통해 검색할 수 없습니다. excludes는 includes보다 우선 순위가 높습니다. 여기에 정의된 excludes를 사용하여 Camel Quarkus 확장에 포함된 서비스의 검색 가능성을 유지할 수도 있습니다. 예제 값: META-INF/services/org/apache/camel/foo/*,META-INF/services/org/apache/camel/foo/**/bar

string

 

lock quarkus.camel.service.discovery.include-patterns

classpath의 Camel 서비스 정의 파일과 일치하는 comma로 구분된 10.0.0.1-path 스타일 패턴 목록입니다. 일치하는 파일에 정의된 서비스는 지정된 파일이 exclude-patterns 를 통해 제외되지 않는 한 org.apache.camel.spi.FactoryFinder 메커니즘을 통해 검색할 수 있습니다. Camel Quarkus 확장에는 기본적으로 일부 서비스가 포함될 수 있습니다. 여기에서 선택한 서비스는 이러한 서비스에 추가되고 exclude-patterns 에 정의된 제외가 union 세트에 적용됩니다. 예제 값: META-INF/services/org/apache/camel/foo/*,META-INF/services/org/apache/camel/foo/**/bar

string

 

lock quarkus.camel.service.registry.exclude-patterns

classpath의 Camel 서비스 정의 파일과 일치하는 comma로 구분된 10.0.0.1-path 스타일 패턴 목록입니다. 일치하는 파일에 정의된 서비스는 애플리케이션의 정적 초기화 중에 Camel 레지스트리에 추가되지 않습니다. excludes는 includes보다 우선 순위가 높습니다. 여기에 정의된 excludes를 사용하여 Camel Quarkus 확장에 포함된 서비스 등록을 유지할 수도 있습니다. 예제 값: META-INF/services/org/apache/camel/foo/*,META-INF/services/org/apache/camel/foo/**/bar

string

 

lock quarkus.camel.service.registry.include-patterns

classpath의 Camel 서비스 정의 파일과 일치하는 comma로 구분된 10.0.0.1-path 스타일 패턴 목록입니다. 지정된 파일이 exclude-patterns 를 통해 제외되지 않는 한 일치하는 파일에 정의된 서비스는 애플리케이션의 정적 초기화 중에 Camel 레지스트리에 추가됩니다. Camel Quarkus 확장에는 기본적으로 일부 서비스가 포함될 수 있습니다. 여기에서 선택한 서비스는 이러한 서비스에 추가되고 exclude-patterns 에 정의된 제외가 union 세트에 적용됩니다. 예제 값: META-INF/services/org/apache/camel/foo/*,META-INF/services/org/apache/camel/foo/**/bar

string

 

lock quarkus.camel.runtime-catalog.components

true true 애플리케이션에 포함된 Runtime Camel Catalog에는 애플리케이션에서 사용 가능한 Camel 구성 요소의 JSON 스키마가 포함됩니다. 그렇지 않으면 구성 요소 JSON 스키마를 Runtime Camel Catalog에서 사용할 수 없으며 이에 대한 액세스 시도가 RuntimeException이 발생합니다. 이를 false 로 설정하면 기본 이미지의 크기를 줄이는 데 도움이 됩니다. JVM 모드에서는 이 플래그를 기본 모드와 일관되게 유지하는 것을 제외하고 이 플래그를 false 로 설정하는 것이 실질적인 이점이 없습니다.

boolean

true

lock quarkus.camel.runtime-catalog. languagess

true true 애플리케이션에 포함된 Runtime Camel Catalog에는 애플리케이션에서 사용 가능한 Camel 언어의 JSON 스키마가 포함되어 있습니다. 그러지 않으면 Runtime Camel Catalog에서 사용할 수 없으며 이에 대한 액세스 시도가 RuntimeException이 발생합니다. 이를 false 로 설정하면 기본 이미지의 크기를 줄이는 데 도움이 됩니다. JVM 모드에서는 이 플래그를 기본 모드와 일관되게 유지하는 것을 제외하고 이 플래그를 false 로 설정하는 것이 실질적인 이점이 없습니다.

boolean

true

lock quarkus.camel.runtime-catalog.dataformats

true true 애플리케이션에 포함된 Runtime Camel Catalog에는 애플리케이션에서 사용 가능한 Camel 데이터 형식의 JSON 스키마가 포함되어 있습니다. 그러지 않으면 Runtime Camel Catalog에서 데이터 형식 JSON 스키마를 사용할 수 없으며 이에 대한 액세스 시도가 RuntimeException이 발생합니다. 이를 false 로 설정하면 기본 이미지의 크기를 줄이는 데 도움이 됩니다. JVM 모드에서는 이 플래그를 기본 모드와 일관되게 유지하는 것을 제외하고 이 플래그를 false 로 설정하는 것이 실질적인 이점이 없습니다.

boolean

true

lock quarkus.camel.runtime-catalog-models

true 애플리케이션에 포함된 Runtime Camel Catalog에는 애플리케이션에서 사용 가능한 Camel EIP 모델의 JSON 스키마가 포함되어 있습니다. 그러지 않으면 Runtime Camel Catalog에서 EIP 모델 JSON 스키마를 사용할 수 없으며 이에 액세스하려는 모든 시도로 인해 RuntimeException이 발생합니다. 이를 false 로 설정하면 기본 이미지의 크기를 줄이는 데 도움이 됩니다. JVM 모드에서는 이 플래그를 기본 모드와 일관되게 유지하는 것을 제외하고 이 플래그를 false 로 설정하는 것이 실질적인 이점이 없습니다.

boolean

true

lock quarkus.camel.routes-discovery.enabled

정적 초기화 중에 경로 자동 검색을 활성화합니다.

boolean

true

lock quarkus.camel.routes-discovery.exclude-patterns

RouteBuilder 클래스의 독점적 필터링에 사용됩니다. 전용 필터링이 포함 필터링보다 우선합니다. 패턴은 10.0.0.1-path 스타일 패턴을 사용합니다. 여러 패턴을 쉼표로 구분하여 지정할 수 있습니다. 예를 들어 Bar로 시작하는 모든 클래스를 제외하려면 모든 경로의 특정 패키지 사용을 제외합니다. com/mycompany/bar/* 모든 경로가 특정 패키지 사용을 제외하려면 com/mycompany/bar/** 두 가지 와일드카드를 사용합니다. com/mycompany/bar/** 및 com/mycompany/bar/*,com/mycompany/bar/*,com/mycompany/bar/*,com/mycompany/bar/*,com/mycompany/bar/**

string

 

lock quarkus.camel.routes-discovery.include-patterns

RouteBuilder 클래스의 내부 필터링에 사용됩니다. 전용 필터링이 포함 필터링보다 우선합니다. 패턴은 10.0.0.1-path 스타일 패턴을 사용합니다. 여러 패턴을 쉼표로 구분하여 지정할 수 있습니다. 예를 들어, 모든 경로를 포함하려면 특정 패키지 사용을 구성하는 모든 경로가 포함됩니다. com/mycompany/foo/* 모든 경로가 특정 패키지 사용을 형성하려면 com/mycompany/foo/* com/mycompany/foo/** 두 개의 특정 패키지의 모든 경로 포함: com/mycompany/foo/*,com/mycompany/foo/*,com/mycompany/foo/stuff/*

string

 

lock quarkus.camel.native.resources.exclude-patterns

Camel Quarkus 2.0.0에서 quarkus.native.resources.excludes 로 대체됩니다. 이 속성을 사용하면 빌드 시 예외가 발생합니다.

string

 

lock quarkus.camel.native.resources.include-patterns

Camel Quarkus 2.0.0에 quarkus.native.resources.includes 로 대체됩니다. 이 속성을 사용하면 빌드 시 예외가 발생합니다.

string

 

lock quarkus.camel.native.reflection.exclude-patterns

리플렉션에 대한 등록에서 제외해야 하는 클래스 이름과 일치하도록 쉼표로 구분된 skopeo-path 스타일 패턴 목록입니다. java.lang.Class.getName() 메서드에서 반환된 클래스 이름 형식을 사용합니다. 패키지 세그먼트는 마침표로 구분됩니다 . 그리고 달러 기호 $ 로 내부 클래스입니다. 이 옵션은 include-patterns 에 의해 선택된 세트를 좁힙니다. 기본적으로 클래스는 제외되지 않습니다. 이 옵션은 Quarkus 확장에서 내부적으로 등록된 클래스를 등록 취소하는 데 사용할 수 없습니다.

string

 

lock quarkus.camel.native.reflection.include-patterns

리플렉션을 위해 등록해야 하는 클래스 이름과 일치하도록 쉼표로 구분된 10.0.0.1-path 스타일 패턴 목록입니다. java.lang.Class.getName() 메서드에서 반환된 클래스 이름 형식을 사용합니다. 패키지 세그먼트는 마침표로 구분됩니다 . 그리고 달러 기호 $ 로 내부 클래스입니다. 기본적으로 클래스는 포함되지 않습니다. 이 옵션에 의해 선택된 세트는 exclude-patterns 에 의해 좁힐 수 있습니다. Quarkus 확장에서는 일반적으로 리플렉션에 필요한 클래스를 자체적으로 등록합니다. 이 옵션은 기본 제공 기능이 충분하지 않은 경우에 유용합니다. 이 옵션을 사용하면 생성자, 필드 및 메서드에 대한 모든 반사 액세스를 사용할 수 있습니다. 세분화된 제어가 필요한 경우 Java 코드에서 io.quarkus.runtime.annotations.RegisterForReflection 주석을 사용하는 것이 좋습니다. 이 옵션이 제대로 작동하려면 다음 조건 중 적어도 하나를 충족해야 합니다. - 패턴에 와일드카드(* 또는 /)가 없음 - 선택한 클래스에 포함된 아티팩트에는 Jandex 인덱스 (META-INF/jandex.idx)가 포함됩니다. - 선택한 클래스를 포함하는 아티팩트는 인덱싱을 위해 등록됩니다. application.properties 에서 quarkus.index-dependency.* 제품군 사용 - 예: quarkus.index-dependency.my-dep.group-id = org.my-group quarkus.index-dependency.my-dep.artifact-id = my-deporg.my-groupmy-artifact 가 함께 속함을 알리는 데 선택한 레이블입니다.

string

 

lock quarkus.camel.native.reflection.serialization-enabled

true, 기본 클래스는 직렬화에 대해 등록됩니다. 그렇지 않으면 기본 클래스는 네이티브 모드에서 직렬화에 대해 자동으로 등록되지 않습니다. 직렬화에 자동으로 등록된 클래스 목록은 CamelSerializationProcessor.BASE_SERIALIZATION_CLASSES 에서 확인할 수 있습니다. 이를 false 로 설정하면 기본 이미지의 크기를 줄이는 데 도움이 됩니다. JVM 모드에서는 기본 모드와 일관된 동작을 적용하는 것을 제외하고는 이 플래그를 true 로 설정하는 것이 실질적인 이점이 없습니다.

boolean

false

lock quarkus.camel.csimple.csimple.on-build-time-analysis-failure

빌드 시 경로 정의에서 CSimple 표현식을 추출할 수 없는 경우 수행할 작업.

org.apache.camel.quarkus.core.CamelConfig.FailureRemedy

warn

lock quarkus.camel.event-bridge.enabled

Camel 이벤트와 CDI 이벤트의 브리징 가능 여부입니다. 이를 통해 Camel 이벤트에 대해 CDI 관찰자를 구성할 수 있습니다. 예를 들어 org.apache.camel.quarkus.core.events,org.apache.camel.quarkus.main.events & org.apache.camel.impl.event 패키지에 속한 사용자입니다. 이 구성 항목은 Camel 이벤트에 대해 구성된 관찰자가 애플리케이션에 있는 경우에만 영향을 미칩니다.

boolean

true

lock quarkus.camel.source-location-enabled

camel 소스 위치 활성화/비활성화를 위한 빌드 시간 구성 옵션

boolean

false

lock quarkus.camel.main.shutdown.timeout

CamelMain#stop() 가 완료될 때까지 대기하는 시간(밀리초 단위)입니다.

java.time.Duration

PT3S

lock quarkus.camel.main.arguments.on-unknown

CamelMain 이 알 수 없는 인수가 발생할 때 수행할 작업. fail - CamelMain 사용 문 출력 및 RuntimeException 무시 - 경고를 압축하고 애플리케이션 시작이 일반적인 경고로 진행됨 - CamelMain 사용 명령 인쇄 그러나 애플리케이션 시작이 정상적으로 진행될 수 있습니다.

org.apache.camel.quarkus.core.CamelConfig.FailureRemedy

warn

lock 구성 속성은 빌드 시 수정되었습니다. 다른 모든 구성 속성은 런타임에 오버라이브할 수 있습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동