Cómo transforma Amazon Q Developer el código para las actualizaciones del lenguaje Java - Amazon Q Developer

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo transforma Amazon Q Developer el código para las actualizaciones del lenguaje Java

Para transformar el código, el desarrollador de Amazon Q genera un plan de transformación que utiliza para actualizar la versión del lenguaje de código del proyecto. Después de transformar el código, proporciona un resumen de la transformación y las diferencias de los archivos para que pueda revisar los cambios antes de aceptarlos. En las siguientes secciones, se proporcionan más detalles sobre cómo Amazon Q realiza la transformación.

Compilación del código y creación de un plan de transformación

Para empezar a transformar el código, Amazon Q compila el proyecto de forma local y genera un artefacto de compilación que contiene el código de origen, las dependencias del proyecto y los registros de compilación.

Tras generar el artefacto de compilación, Amazon Q compila el código en un entorno de compilación seguro y crea un plan de transformación, que se personaliza para el proyecto o módulo que vaya a actualizar. El plan de transformación describe los cambios específicos que Amazon Q intentará realizar, incluidas las nuevas versiones de las dependencias, los principales cambios de código y las sustituciones sugeridas para el código en desuso. Estos cambios se basan en la versión preliminar del código y pueden cambiar durante la transformación.

Antes de que comience la transformación, tienes la opción de dividir los cambios que Amazon Q propone en varias diferencias. Esto le permite actualizar y probar el código con menos cambios a la vez y, una vez finalizada la transformación, tendrá que aceptar los cambios de forma incremental.

Transformación del código

Para transformar el código, Amazon Q intenta actualizarlo en función de los cambios propuestos en el plan de transformación. A medida que realiza los cambios, vuelve a compilar y ejecuta las pruebas unitarias existentes en el código de origen para corregir de forma iterativa los errores encontrados.

Amazon Q intenta realizar los siguientes cambios al actualizar el código:

  • Actualizar los componentes de código en desuso de acuerdo con las recomendaciones de Java 17

  • Actualizar las bibliotecas y marcos más populares a una versión compatible con Java 17. Esto incluye la actualización de las siguientes bibliotecas y marcos a sus últimas versiones principales disponibles:

    • Apache Commons IO

    • Apache HttpClient

    • bc-fips

    • Cucumber-JVM

    • Hibernar

    • jackson-annotations

    • JakartaEE

    • Javax

    • javax.servlet

    • jaxb-api

    • jaxb-impl

    • jaxen

    • jcl-over-slf4j

    • JSON simple

    • jsr305

    • junit

    • junit-jupiter-api

    • Log4j

    • Micronaut

    • Mockito

    • mockito-core

    • Okio

    • PowerMockito

    • Quarkus

    • slf4j

    • slf4j-api

    • Spring Boot

    • Spring Framework

    • Spring Security

    • Swagger

    • testng

Revisión del resumen de la transformación y aceptación de los cambios

Una vez completada la transformación, Amazon Q proporciona un resumen de la transformación con detalles sobre los cambios que ha realizado, incluido el estado de la compilación final, que indica si se ha actualizado todo el proyecto. También puede ver un resumen del registro de compilación para comprender los problemas que impidieron que Amazon Q compilara su código en la versión actualizada.

El resumen de la transformación también incluye las diferencias entre los cambios propuestos en el plan de transformación y los cambios que Amazon Q ha realizado finalmente para actualizar el código, así como cualquier cambio adicional que no estuviera en el plan original.

Tras revisar el resumen de la transformación, podrá ver los cambios que Amazon Q propone en una vista con diferencias de los archivos. Los cambios de código que Amazon Q sugiera no afectarán a los archivos del proyecto actual hasta que los acepte. El código transformado estará disponible hasta 24 horas después de que se complete la transformación.

Si opta por que Amazon Q divida los cambios en varias diferencias, proporcionará una o más diferencias con los cambios, en función de las actualizaciones que necesite su aplicación. Si corresponde a su aplicación, los cambios se clasifican en los siguientes grupos:

  • Versiones de biblioteca mínimas compatibles con Java 17: actualice las dependencias, incluido Springboot JUnit PowerMockito, y utilice las versiones mínimas compatibles de Java 17.

  • Marcos de aplicaciones de especificaciones empresariales populares: actualice los marcos de aplicaciones y empresas más populares, como Jakarta EE, Hibernate y Micronaut 3.

  • Marcos web de utilidades de cliente HTTP: actualice las bibliotecas de clientes HTTP, las utilidades de Apache Commons y los marcos de Struts.

  • Marcos de herramientas de prueba: actualice herramientas de prueba como ArchUnit Mockito y cree herramientas como Jenkins TestContainers y Maven Wrapper.

  • Documentación de procesamiento diversa: varios tipos de actualizaciones, incluido el procesamiento de XML y la documentación de la API ORMs, como Swagger a /OpenAPI. SpringDoc

  • Dependencias y formatos APIs obsoletos y obsoletos: reemplace los obsoletos, actualice las versiones de dependencias adicionales y modifique el código APIs de formato

Amazon Q proporcionará un archivo de diferencias cada vez, y debes aceptar los cambios en una diferencia para revisar la siguiente diferencia. Si rechazas los cambios en una diferencia, no podrás revisar ninguna otra diferencia. Después de aceptar los cambios de una diferencia, puedes revisar las actualizaciones del código y probar los cambios antes de seguir aceptando los cambios posteriores.

Ten en cuenta que es posible que se produzcan pequeñas rebajas de versión en todas las diferencias. Por ejemplo, es posible que veas una versión de dependencia actualizada a una versión más reciente en la primera diferencia y, en una diferencia posterior, veas una versión anterior de la dependencia. Esto se debe a que Amazon Q podría necesitar ajustar las versiones para adaptarlas a los cambios realizados en cada diferencia. Tras aceptar los cambios de todas las diferencias, el código contendrá las versiones fiables más recientes.

El título de la diferencia indicará si los cambios propuestos darán lugar a una transformación total o parcial. Si la diferencia indica que la transformación solo se realizó parcialmente, no incluye todos los cambios necesarios para una transformación completa y una creación de código correcta. Para obtener la versión más actualizada del código, acepta todas las diferencias de código, incluidas las que se hayan realizado parcialmente correctamente. Luego, puedes actualizar tu código manualmente para corregir los errores que Amazon Q no pudo corregir.

Finalización de transformaciones parcialmente correctas

Según la complejidad y las características específicas de la base de código, es posible que haya casos en los que la transformación se realice correctamente de forma parcial. Esto significa que Amazon Q solo ha podido transformar determinados archivos o áreas de código del proyecto. En este caso, debe actualizar manualmente el código restante para que el proyecto se pueda compilar en la versión de idioma actualizada.

Para ayudar a transformar el resto del código, puede usar el chat de Amazon Q en el IDE. Puede pedir a Amazon Q que revise los archivos parcialmente actualizados y que proporcione un código nuevo para solucionar problemas, como los errores de compilación. También puede utilizar características como /dev y@workspace para incluir más aspectos de su proyecto como contexto y obtener sugerencias para varios archivos a la vez.