Comment Amazon Q Developer transforme le code pour les mises à niveau du langage Java - Amazon Q Developer

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment Amazon Q Developer transforme le code pour les mises à niveau du langage Java

Pour transformer votre code, Amazon Q Developer génère un plan de transformation qu'il utilise pour mettre à niveau la version en langage de code de votre projet. Après avoir transformé votre code, il fournit un résumé de la transformation et un fichier diff pour que vous puissiez examiner les modifications avant de les accepter. Les sections suivantes fournissent plus de détails sur la manière dont Amazon Q effectue la transformation.

Création de votre code et création d'un plan de transformation

Pour commencer à transformer votre code, Amazon Q crée votre projet localement et génère un artefact de compilation contenant votre code source, les dépendances du projet et les journaux de compilation.

Après avoir généré l'artefact de génération, Amazon Q crée votre code dans un environnement de génération sécurisé et crée un plan de transformation personnalisé en fonction du projet ou du module que vous mettez à niveau. Le plan de transformation décrit les modifications spécifiques qu'Amazon Q tentera d'apporter, notamment les nouvelles versions de dépendance, les modifications majeures du code et les suggestions de remplacement du code obsolète. Ces modifications sont basées sur la version préliminaire de votre code et peuvent changer au cours de la transformation.

Avant le début de la transformation, vous avez la possibilité de diviser les modifications proposées par Amazon Q en plusieurs différences. Cela vous permet de mettre à jour et de tester votre code avec moins de modifications à la fois, et vous devrez accepter les modifications progressivement une fois la transformation terminée.

Transformation de votre code

Pour transformer votre code, Amazon Q tente de le mettre à niveau en fonction des modifications proposées dans le plan de transformation. Au fur et à mesure des modifications, il reconstruit et exécute des tests unitaires existants dans votre code source pour corriger de manière itérative les erreurs rencontrées.

Amazon Q tente d'apporter les modifications suivantes lors de la mise à niveau de votre code :

  • Mettre à jour les composants de code obsolètes conformément aux recommandations de Java 17

  • Mettez à niveau les bibliothèques et les frameworks populaires vers une version compatible avec Java 17. Cela inclut la mise à jour des bibliothèques et frameworks suivants vers leurs dernières versions majeures disponibles :

    • E/S Apache Commons

    • Apache HttpClient

    • bc-fips

    • Cucumber-JVM

    • Mise en veille prolongée

    • jackson-annotations

    • Île de Jakarta

    • Javax

    • javax.servlet

    • jaxb-api

    • jaxb-impl

    • jaxen

    • jcl-over-slf4j

    • jon-simple

    • jsr305

    • unité

    • junit-jupiter-api

    • Log4j

    • Micronaute

    • Mockito

    • mockito-core

    • Okio

    • PowerMockito

    • Quarkus

    • slf4j

    • slf4j-api

    • Botte à ressort

    • Cadre à ressort

    • Sécurité printanière

    • Swagger

    • testng

Consulter le résumé de la transformation et accepter les modifications

Une fois la transformation terminée, Amazon Q fournit un résumé de la transformation avec des détails sur les modifications apportées, y compris le statut de la version finale qui indique si l'ensemble de votre projet a été mis à niveau. Vous pouvez également consulter un résumé du journal de construction pour comprendre les problèmes qui ont empêché Amazon Q de créer votre code dans la version mise à niveau.

Le résumé de la transformation inclut également les différences entre les modifications proposées dans le plan de transformation et les modifications finalement apportées par Amazon Q pour mettre à niveau votre code, ainsi que toutes les modifications supplémentaires qui ne figuraient pas dans le plan d'origine.

Après avoir examiné le résumé de la transformation, vous pouvez consulter les modifications proposées par Amazon Q dans une vue de comparaison des fichiers. Les modifications de code suggérées par Amazon Q n'affecteront pas les fichiers de votre projet en cours tant que vous n'aurez pas accepté les modifications. Le code transformé est disponible jusqu'à 24 heures après la fin de la transformation.

Si vous avez choisi de faire en sorte qu'Amazon Q divise les modifications en plusieurs différences, il fournira une ou plusieurs différences avec des modifications, en fonction des mises à niveau requises pour votre application. Le cas échéant, les modifications sont classées dans les groupes suivants :

  • Versions de bibliothèque compatibles minimales vers Java 17 : mettez à niveau les dépendances, y compris Springboot JUnit PowerMockito, et vers les versions compatibles minimales de Java 17.

  • Cadres d'application de spécifications d'entreprise populaires : mettez à niveau les frameworks d'entreprise et d'applications populaires tels que Jakarta EE, Hibernate et Micronaut 3.

  • Cadres Web d'utilitaires client HTTP : mettez à niveau les bibliothèques clientes HTTP, les utilitaires Apache Commons et les frameworks Struts.

  • Cadres d'outils de test : mettez à niveau des outils de test tels que ArchUnit Mockito TestContainers et créez des outils tels que Jenkins et Maven Wrapper.

  • Documentation de traitement diverse : plusieurs types de mises à niveau ORMs, notamment le traitement XML et la documentation d'API telle que Swagger vers /OpenAPI. SpringDoc

  • APIsDépendances et formatage obsolètes et obsolètes : remplacez les dépendances obsolètes APIs, effectuez des mises à niveau supplémentaires des versions de dépendance et modifiez le code de format

Amazon Q fournit un fichier diff à la fois, et vous devez accepter les modifications apportées à un diff pour consulter le diff suivant. Si vous rejetez les modifications apportées à une différence, vous ne pourrez pas consulter les autres différences. Après avoir accepté les modifications d'une différence, vous pouvez consulter les mises à jour de votre code et tester les modifications avant de continuer à accepter les modifications suivantes.

Notez qu'il peut y avoir des rétrogradations de version mineures entre les différences. Par exemple, vous pouvez voir une version de dépendance mise à niveau vers une version plus récente dans le premier diff, et dans un diff suivant voir une version plus ancienne de la dépendance. Cela est dû au fait qu'Amazon Q peut avoir besoin d'ajuster les versions pour tenir compte des modifications apportées à chaque différence. Une fois que vous aurez accepté les modifications de toutes les diffs, votre code contiendra les versions fiables les plus récentes.

Le titre du diff indiquera si les modifications proposées entraîneront une transformation totale ou partielle. Si la différence indique que la transformation n'a été que partiellement réussie, elle n'inclut pas toutes les modifications nécessaires pour une transformation complète et une génération de code réussie. Pour obtenir la version la plus récente de votre code, acceptez toutes les différences de code, y compris celles qui sont partiellement réussies. Vous pouvez ensuite mettre à jour votre code manuellement pour corriger les erreurs qu'Amazon Q n'a pas pu corriger.

Réalisation de transformations partiellement réussies

Selon la complexité et les spécificités de votre base de code, il se peut que la transformation soit partiellement réussie dans certains cas. Cela signifie qu'Amazon Q n'a pu transformer que certains fichiers ou certaines zones de code dans votre projet. Dans ce cas, vous devez mettre à jour manuellement le code restant pour que votre projet puisse être compilé dans la version linguistique mise à jour.

Pour transformer le reste de votre code, vous pouvez utiliser le chat Amazon Q dans l'IDE. Vous pouvez demander à Amazon Q de consulter les fichiers partiellement mis à jour et de fournir un nouveau code pour résoudre les problèmes, tels que les erreurs de compilation. Vous pouvez également utiliser des fonctionnalités telles que /devet @workspacepour inclure une plus grande partie de votre projet en tant que contexte et obtenir des suggestions pour plusieurs fichiers à la fois.