25장. 실행 중인 경로 편집

25.1. 개요

프로젝트의 라우팅 컨텍스트를 변경하지 않고 실행 중인 경로에 대한 변경 사항을 실험할 수 있습니다.

이렇게 하려면 다음을 수행합니다.

  • Cryo stat Navigator 보기에서 실행 중인 라우팅 컨텍스트에서 경로 편집 옵션을 활성화합니다.

    이렇게 하면 경로 편집기에 있는 메모리 내 모델이 열립니다. 즉, 원격 CamelContext:<camelContextId > 경로 편집기에 포함됩니다.

  • 경로 편집기에서 라우팅 컨텍스트의 메모리 내 모델을 변경합니다. 동시에 Camel 디버거 및 모든 기능을 사용하도록 관련 노드에 Cryostat를 설정할 수 있습니다.

    메모리 내 모델을 편집하여 노드를 추가, 제거 또는 다시 정렬; 기존 노드의 속성을 추가 또는 제거하며, 기존 노드에 설정된 속성 값을 수정할 수 있습니다. 실행 중인 컨텍스트를 업데이트하고 Cryostat를 설정하면 디버그 화면에 결과를 보려면 메모리 내 모델에 대한 변경 사항을 저장해야 합니다.

  • Cryo stat Navigator 보기에서 실행 중인 라우팅 컨텍스트에서 메시지를 삭제하거나 타이머, ActiveMQ, 파일 또는 기타 연속 입력 노드에서 메시지가 수신될 때까지 기다립니다.
  • Debug 관점에서 결과를 평가하고 Camel 디버거를 사용하여 라우팅 컨텍스트에 대한 더 깊은 통찰력을 얻을 수 있습니다.

25.2. 실행 중인 경로 수정 및 결과 평가

  1. Cryo stat Navigator 보기에서 편집할 경로가 포함된 라우팅 컨텍스트를 선택합니다.
  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 경로 편집을 선택합니다.

    경로 편집기는 라우팅 컨텍스트인 Remote CamelContext:<contextId >의 메모리 내 모델을 열고 컨텍스트의 모든 경로를 표시합니다. 예를 들면 다음과 같습니다.

    CanvasPalette
    참고

    <contextId >는 프로젝트의 라우팅 컨텍스트 .xml 파일에 있는 camelContext 요소의 ID입니다. Fuse컨텐츠 기반 라우터 기본 제공 템플릿을 기반으로 하는 이 예에서는 ID는 cbr-example-context 입니다.

  3. 2장. 경로 편집기에서 라우팅 컨텍스트 편집 에 설명된 대로 경로를 편집한 다음 파일저장을 선택하여 메모리 내 모델에 대한 변경 사항을 저장하고 실행 중인 라우팅 컨텍스트를 업데이트합니다.
  4. 13장. breakpoints 설정 에 설명된 대로 관련 노드에서 Cryostat를 설정합니다.
  5. Cryo stat Navigator 보기에서 실행 중인 라우팅 컨텍스트의 입력 노드에 메시지를 삭제합니다.

    프로젝트에 테스트 메시지가 포함되어 있지 않으면 22.1절. “경로 추적을 위한 테스트 메시지 생성” 에 설명된 대로 생성할 수 있습니다.

  6. 를 클릭하여 디버그 화면으로 전환합니다.
  7. Camel 디버거에서 일반적으로 원하는 대로 message를 단계별로 진행하여 변경 사항이 생성되는 결과를 확인합니다( 14장. Camel Debugger 실행참조).

    Camel 디버거는 일반 디버그 모드와 마찬가지로 경로 편집 모드에서 동일하게 작동하므로 메시지가 라우팅 컨텍스트를 전송하는 동안 Camel 디버거의 기능을 사용할 수 있습니다.

    참고

    메시지가 라우팅 컨텍스트의 끝에 도달하면 디버거가 일시 중단됩니다. 디버깅을 계속하려면 Fuse Integration 관점으로 다시 전환하고 Cryostat Navigator 보기의 입력 노드에 다른 메시지를 삭제합니다. 이렇게 할 때마다 툴링은 디버그 화면으로 전환을 요청합니다.

    참고

    경로 편집 세션 중에 실행 중인 라우팅 컨텍스트에 대한 연결이 끊어질 수 있습니다. 이 경우 Cryostat Navigator 보기에 다음과 같은 내용이 표시됩니다. 로컬 프로세스maven[xxxx][Disconnected]. 세션을 계속 진행하려면 실행 중인 라우팅 컨텍스트에 다시 연결한 다음 Routes(경로 편집) 보기에서 해당 컨텍스트를 선택한 다음, Edit Routes 를 다시 선택해야 합니다.

25.3. 경로 편집 세션 종료

  1. 디버그 화면의 디버그 보기에서 Remote Camel Debug - camelContext--<contextId>--xxxxxxxxxxxx xxxxxxxxxx.xml [Remote Camel Context] 스레드를 선택한 다음 메뉴 모음에서 Terminate button 를 클릭하여 디버깅 세션을 종료합니다.
  2. 콘솔 보기의 메뉴 모음에서 Terminate button 를 클릭하여 라우팅 컨텍스트를 종료합니다.
  3. 콘솔 출력을 지우려면 콘솔 보기의 메뉴 모음 에서 clear co 를 클릭합니다.
  4. Fuse 통합 화면으로 전환하고 경로 편집기에서 Remote CamelContext:<contextId > 탭에서 close 를 클릭하여 라우팅 컨텍스트 파일의 메모리 내 모델을 종료합니다.