코드 생성기 실행
코드 생성기를 사용하여 권장 파티션을 구현하는 데 필요한 API 서비스 및 관련 코드를 생성합니다.
시작하기 전에
시스템 요구사항 및 다음 코드 생성기 요구사항을 충족하는지 확인하십시오.
또한 필요에 따라 코드 생성 프로세스를 사용자 정의하십시오. cardinal 디렉토리의 app.config.txt 파일에는 두 개의 사용자 정의 가능한 매개변수가 있습니다.
- ApplicationName
- 리팩토링된 애플리케이션의 이름입니다. 값은 생성된 코드, URL 및 주석의 접두부로 사용됩니다.
- CardinalOut경로
- 유틸리티 클래스 코드가 생성되는 소스 코드 트리의 위치입니다.
프로시저
코드 생성기를 실행하여 권장 파티션에 대한 리팩토링 코드를 생성하십시오.
결과
코드 생성기가 성공적으로 완료되면 다음 Daytrader 디렉토리 구조와 유사한 디렉토리 구조가 작성됩니다.
transform-input
├── cardinal
│ ├── app_config.txt
│ ├── cardinal-codegen
│ │ ├── Cardinal-Utility-report.txt
│ │ ├── Cardinal-partition0-report.txt
│ │ ├── Cardinal-partition1-report.txt
│ │ ├── Cardinal-partition2-report.txt
│ │ ├── Cardinal-partition3-report.txt
│ │ ├── Cardinal-partition4-report.txt
│ │ ├── CardinalFileSummary.json
│ │ ├── CardinalFileSummary.txt
│ │ └── CardinalSings.json
│ ├── cardinal_graph.json
│ ├── class_run.json
│ ├── instrumenter-config.json
│ ├── partition.txt
│ ├── refTable.json
│ └── symTable.json
├── daytrader7-source
├── daytrader7-source-Utility
├── daytrader7-source-partition0
├── daytrader7-source-partition1
├── daytrader7-source-partition2
├── daytrader7-source-partition3
└── daytrader7-source-partition4
이 예에서 daytrader-source-Utility 파티션에는 잠재적 유틸리티 클래스로 식별되는 Java ® 모놀리식 애플리케이션 클래스가 포함되어 있습니다. 이 파티션을 IBM Mono2Micro™ 생성 코드와 함께 다른 파티션으로 처리하거나 클래스에 의존하는 다른 모든 파티션과 함께 유틸리티 .jar 파일로 이 애플리케이션 클래스를 패키지할 수 있습니다.
강조표시된 디렉토리는 코드 생성기에 의해 작성됩니다. cardinal-codegen 디렉토리에는 다양한 보고서가 포함되어 있으며 다양한 파티션이 xxx-partition_n 디렉토리에 작성됩니다. 여기서 xxx
는 ApplicationName 값이고 n
는 파티션 번호입니다. 예를 들어, 파티션의 이름은 daytrader7-source-partition_n
(여기서 0 < = n < = 4) 입니다. 자세한 정보는 사용자 정의 보기 작성을 참조하십시오.
이러한 각 xxx-partition_n 디렉토리에는 고려 중인 모놀리스에서 가져온 소스 코드의 적절한 부분이 포함되어 있습니다. 출력에는 전환 래퍼, API 서비스, 분산 객체 관리를 위한 코드, 가비지 컬렉션이 포함되지만 이에 국한되지 않습니다. 모든 코드 이동 및 생성은 Mono2Micro의 코드 생성 컴포넌트에 의해 자동으로 수행됩니다. 현재 코드 생성기는 .java 소스 파일만 고려합니다. 단일체에서 구성 또는 배치 정보를 복사하거나 생성하지 않습니다. 파티션을 마이크로 서비스로 실제 배치하려면 적절한 구성 정보를 제공해야 합니다.
생성된 내부 cardinal-codegen 폴더의 컨텐츠는 다양한 보고서입니다. Cardinal-partition_n-report.txt (여기서 0 < = n < = 4) 파일은 partition_3
partition
에 대한 그림에 표시된 대로 텍스트 양식의 개별 파티션에 대한 Java ® 호출 분석 보고서입니다. 코드 생성기를 실행하는 동안 html 옵션을 지정하여 보고서의 통합 HTML 버전을 생성할 수 있습니다. 자세한 정보는 Cardinal-보고서의 내용을 참조하십시오.

Mono2Micro 의 코드 생성 컴포넌트는 코드 생성을 위해 수행되는 모든 단계를 자세히 설명하는 CardinalFileSummary.txt 파일을 생성합니다. 코드 생성 프로세스를 더 자세히 이해하고 생성된 코드를 보기 위해 디버깅에 대한 보고서를 사용합니다. 보고서는 참조용으로만 사용되며 Mono2Micro의 컴포넌트에서는 사용되지 않습니다.
각 파티션에 대해 CardinalFileSummary.txt 보고서에 다섯 개의 보고서 카테고리가 있습니다. 축약된 샘플 보고서가 다음 그림에 표시됩니다.

Proxy
- 로컬이 아니고 다른 파티션에 속하는 오브젝트에 액세스해야 하는 각 파티션에 대한 스텁 클래스를 포함하는 보고서입니다.
Service
- 파티션 외부에서 액세스되는 파티션의 오브젝트에 대해 작성된 API를 포함하는 보고서입니다.
Original
- 모놀리스의 원래 무손상 Java 파일을 포함하는 보고서입니다. 이러한 파일은 파티션 내에서 로컬로만 액세스됩니다.
Dummy
- 런타임에서 사용되지 않는 정적 소스 코드 분석 중에 선택된 파일을 포함하는 보고서입니다.
Cardinal Exceptions
가 이러한 파일에 추가되어 실행되는 경우 적절한 런타임 예외가 생성되는지 확인합니다. 또한 이 보고서 카테고리는 개발자에게 이러한 파일에 대한 잠재적 종속성에 대해 알립니다. Helper
- 권장 파티션 및 해당 인터페이스에 대한 직렬화 및 예외와 같은 기능을 처리하는 생성된 코드를 포함하는 보고서입니다.
Copied
- 프로그래밍 로직이 없지만 파티션 컴파일에 필요한 클래스 (예: 인터페이스 및 추상 클래스) 를 포함하는 보고서입니다.
cardinal-codegen 디렉토리 아래의 최종 보고서는 CardinalSings.json입니다. 이 파일은 개발자가 사용하기 위한 것입니다. 이 보고서는 다음 컨텐츠를 나열합니다.
- 코드를 변경해야 하는 위치 또는 파티션을 잠재적 마이크로서비스로 구현하기 위해 자세한 검사가 필요한 위치를 나열합니다.
- 해결해야 하거나 다양한
WARN
에 속하는CARDINAL_TODO_T<number>
(으)로 키가 지정된 개발자용 조치 항목을 나열합니다. 이 경고는 개발자가 필요에 따라 코드를 검사하고 업데이트할 것을 권고합니다. 태스크는 클래스 및 파일 레벨로 그룹화됩니다. 다음 보고서는 샘플 Daytrader 애플리케이션을 리팩토링하는 동안WARN TODOs
을(를) 표시합니다. 각CARDINAL_TODO_T<number>
태스크에 대해 코드 생성기가 자세한 자체 설명 주석을 제공합니다.