Ejecución del generador de código
Utilice el generador de código para generar los servicios de API y el código relacionado necesario para implementar las particiones recomendadas.
Antes de empezar
Asegúrese de cumplir los requisitos del sistema y los siguientes requisitos de generador de código.
Además, personalice el proceso de generación de código según sea necesario. El archivo app.config.txt del directorio cardinal tiene dos parámetros personalizables.
- ApplicationName
- El nombre de la aplicación refactorizada. El valor se utiliza como prefijo para el código generado, el URL y las anotaciones.
- CardinalOutPath
- La ubicación en el árbol de código fuente donde se genera el código de clase de programa de utilidad.
Procedimiento
Ejecute el generador de código para generar código de refactorización para las particiones recomendadas.
Resultados
Una finalización satisfactoria del generador de códigos da como resultado una estructura de directorios similar a la siguiente estructura de directorios de Daytrader.
transform-input ├── cardenal │ ├── 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
En este ejemplo, la partición daytrader-source-Utility contiene clases de aplicaciones monolíticas Java identificadas como posibles clases de utilidad. Puede tratar esta partición como cualquier otra partición junto con el IBM Mono2Micro código generado, o puede empaquetar estas clases de aplicación como un archivo de utilidad .jar con todas las demás particiones que dependen de las clases.
El generador de códigos crea los directorios resaltados. El directorio cardinal-codegen contiene varios informes y varias particiones se escriben en los directorios xxx-partition_n , donde xxx es el valor ApplicationName y n es el número de partición. Para el ejemplo, las particiones se denominan daytrader7-source-partition_n (donde 0 < = n < = 4). Para obtener más información, consulte Creación de vistas personalizadas.
Cada uno de estos directorios xxx-partition_n contiene las partes correspondientes del código fuente que se toma del monolito bajo consideración. La salida incluye, pero no se limita a, derivadores transformacionales, servicios de API, código para la gestión de objetos distribuidos y recogida de basura. Todo el movimiento y generación de código lo realiza automáticamente el componente de generación de código de Mono2Micro. Actualmente, el generador de código sólo tiene en cuenta los archivos de origen .java ; no copia ni genera ninguna información de configuración o despliegue del monolito. Para el despliegue real de las particiones como microservicios, debe proporcionar la información de configuración adecuada.
El contenido de la carpeta cardinal-codegen interna generada son varios informes. Los archivos Cardinal-partition_n-report.txt (donde 0 <= n <= 4) son los informes de análisis de invocación Java para particiones individuales en forma de texto, como se muestra en la figura para el partition_3 partition. Puede especificar la opción html mientras ejecuta el generador de código para generar una versión HTML consolidada del informe. Para obtener más información, consulte Cardinal-Report.

El componente de generación de código de Mono2Micro genera el archivo CardinalFileSummary.txt , que detalla todos los pasos realizados para generar el código. Puede utilizar el informe para la depuración, para una comprensión más profunda del proceso de generación de código y para ver el código generado. El informe es sólo para uso de referencia y no lo utiliza ningún componente de Mono2Micro.
Para cada partición, hay cinco categorías de informes en el informe CardinalFileSummary.txt. En la siguiente figura se muestra un informe de ejemplo abreviado.

Proxy- Informe que contiene clases de apéndice para cada partición que necesita acceder a objetos que no son locales y pertenecen a otras particiones.
Service- Informe que contiene las API creadas para los objetos de las particiones a las que se accede desde fuera de la partición.
Original- Un informe que contiene los archivos Java intactos originales de monolito. A estos archivos solo se accede localmente dentro de la partición.
Dummy- Informe que contiene los archivos recogidos durante el análisis de código fuente estático que no se utilizan en tiempo de ejecución.
Cardinal Exceptionsse añaden a estos archivos para asegurarse de que se generan las excepciones de tiempo de ejecución adecuadas si se ejecutan. Esta categoría de informe también informa a los desarrolladores sobre las posibles dependencias de estos archivos. Helper- Informe que contiene código generado que maneja funciones como la serialización y excepciones para las particiones recomendadas y sus interfaces correspondientes.
Copied- Informe que contiene clases que no tienen lógica de programación pero que son necesarias para compilar las particiones, como por ejemplo interfaces y clases abstractas.
El informe final bajo el directorio cardinal-codegen es CardinalSings.json. Este archivo está destinado a ser utilizado por los desarrolladores. Este informe lista el contenido siguiente:
- Lista las ubicaciones en las que es necesario modificar el código o en las que es necesaria una inspección detallada para implementar particiones como microservicios potenciales.
- Lista los elementos de acción de los desarrolladores, por clave como
CARDINAL_TODO_T<number>, que deben abordarse o que son de la variedadWARN. Estos avisos aconsejan a los desarrolladores que inspeccionen y actualicen el código según sea necesario. Las tareas se agrupan en niveles de clase y de archivo. El informe siguiente muestra elWARN TODOsal refactorizar la aplicación Daytrader de ejemplo. El generador de código proporciona comentarios autoexplicativos detallados para cada tarea deCARDINAL_TODO_T<number>.