46장. 프레임워크 시작하기
초록
이 장에서는 camel-archetype-api-component
Maven archetype을 사용하여 생성된 코드를 기반으로 API 구성 요소 프레임워크를 사용하여 Camel 구성 요소를 구현하는 기본 원칙을 설명합니다.
46.1. Maven Archetype을 사용하여 코드 생성
46.1.1. Maven archetypes
Maven archetype은 코드 마법사와 유사합니다. 몇 가지 간단한 매개 변수가 지정되면 전체 작동 Maven 프로젝트를 생성하고 샘플 코드로 채워집니다. 그런 다음 이 프로젝트를 템플릿으로 사용하여 구현을 사용자 지정하여 자체 애플리케이션을 생성할 수 있습니다.
46.1.2. API 구성 요소 Maven archetype
API 구성 요소 프레임워크는 고유한 API 구성 요소 구현을 위한 시작점 코드를 생성할 수 있는 Maven archetype, camel-archetype-api-component
를 제공합니다. 이 방법은 고유한 API 구성 요소 생성을 시작하는 데 권장되는 방법입니다.
46.1.3. 사전 요구 사항
camel-archetype-api-component
archetype을 실행하기 위한 유일한 전제 조건은 Apache Maven이 설치되고 Maven settings.xml
파일이 표준 Fuse 리포지토리를 사용하도록 구성되어 있다는 것입니다.
46.1.4. Maven archetype 호출
예제 URI 체계를 사용하는 예제
구성 요소를 생성하려면 다음과 같이 camel-archetype-api-component
archetype을 호출하여 새 Maven 프로젝트를 생성합니다.
mvn archetype:generate \ -DarchetypeGroupId=org.apache.camel.archetypes \ -DarchetypeArtifactId=camel-archetype-api-component \ -DarchetypeVersion=2.23.2.fuse-7_10_0-00018-redhat-00001 \ -DgroupId=org.jboss.fuse.example \ -DartifactId=camel-api-example \ -Dname=Example \ -Dscheme=example \ -Dversion=1.0-SNAPSHOT \ -DinteractiveMode=false
각 줄 끝에 있는 백슬래시 문자 \
는 줄 연속을 나타내며 Linux 및 UNIX 플랫폼에서만 작동합니다. Windows 플랫폼에서 백슬래시를 제거하고 모든 인수를 한 줄에 배치합니다.
46.1.5. 옵션
옵션은 구문을 사용하여 archetype generation 명령에 제공됩니다. -DName=Value
. 대부분의 옵션은 이전 mvn archetype:generate
명령에 표시된 대로 설정해야 하지만 생성된 프로젝트를 사용자 지정하도록 몇 가지 옵션을 수정할 수 있습니다. 다음 표에서는 생성된 API 구성 요소 프로젝트를 사용자 지정하는 데 사용할 수 있는 옵션을 보여줍니다.
이름 | 설명 |
---|---|
| (일반 Maven 옵션) 생성된 Maven 프로젝트의 그룹 ID를 지정합니다. 기본적으로 이 값은 생성된 클래스의 Java 패키지 이름도 정의합니다. 따라서 원하는 Java 패키지 이름과 일치하도록 이 값을 선택하는 것이 좋습니다. |
| (일반 Maven 옵션) 생성된 Maven 프로젝트의 아티팩트 ID를 지정합니다. |
| API 구성 요소의 이름입니다. 이 값은 생성된 코드에서 클래스 이름을 생성하는 데 사용됩니다(이름은 대문자로 시작하는 것이 좋습니다). |
| 이 구성 요소의 URI에서 사용할 기본 스키마입니다. 이 스키마가 기존 Camel 구성 요소의 계획과 충돌하지 않도록 해야 합니다. |
| (일반 Maven 옵션) 구성 요소를 배포하려는 컨테이너에서 사용하는 Apache Camel 버전이어야 합니다. 그러나 필요한 경우 프로젝트를 생성한 후 Maven 종속 항목의 버전을 수정할 수도 있습니다. |
46.1.6. 생성된 프로젝트의 구조
코드 생성 단계가 성공적으로 완료되면 새 Maven 프로젝트가 포함된 새 디렉터리 camel-api-example
이 표시되어야 합니다. camel-api-example
디렉터리 내부를 살펴보면 다음과 같은 일반적인 구조가 있음을 알 수 있습니다.
camel-api-example/ pom.xml camel-api-example-api/ camel-api-example-component/
프로젝트의 최상위 수준에서는 다음과 같이 두 개의 하위 프로젝트를 빌드하도록 구성된 집계 POM, pom.xml
입니다.
- camel-api-example-api
API 하위 프로젝트(
ArtifactId-api
라고도 함)에는 구성 요소로 전환하려는 Java API가 있습니다. 직접 작성한 Java API에 API 구성 요소를 준비하는 경우 Java API 코드를 이 프로젝트에 직접 배치할 수 있습니다.API 하위 프로젝트는 다음 목적 중 하나 이상에 사용할 수 있습니다.
- Java API 코드를 패키징하려면(이미 Maven 패키지로 제공되지 않는 경우).
- Java API에 대한 Javadoc을 생성하려면(API 구성 요소 프레임워크에 필요한 메타데이터 제공).
- API 설명에서 Java API 코드를 생성하려면(예: REST API에 대한 WADL 설명에서).
그러나 경우에 따라 이러한 작업을 수행할 필요가 없을 수 있습니다. 예를 들어 API 구성 요소가 Maven 패키지에 Java API 및 Javadoc을 이미 제공하는 타사 API를 기반으로 하는 경우입니다. 이러한 경우 API 하위 프로젝트를 삭제할 수 있습니다.
- camel-api-example-component
-
구성 요소 하위 프로젝트(
ArtifactId-component
라고도 함)에는 새 API 구성 요소의 구현이 포함됩니다. 여기에는 구성 요소 구현 클래스와camel-api-component-maven
플러그인의 구성이 포함됩니다(Java API에서 API 매핑 클래스를 생성).