Remarque :

TASK 3 : Créer une application Micronaut dans le code VS

Au cours de cet atelier, vous allez créer une application Micronaut et configurer votre application pour qu'elle communique avec Oracle Autonomous Database.

Le service GraalVM Tools for Micronaut Extension est préinstallé dans le code VS dans le cadre du processus de provisionnement pour gagner du temps. La prise en charge de Micronaut inclut également l'application Micronaut Launch qui vous permet de créer des projets Micronaut via l'interface dans le code VS. En combinaison avec GraalVM Tools for Java Extension, préinstallé en tant que dépendance, vous pouvez exécuter des projets Micronaut sur GraalVM Enterprise et les déboguer directement à partir de VS Code.

Temps estimé : 15 minutes

Contenu de la tâche

Dans cette tâche :

Etape 1 : création d'une application Micronaut

  1. Dans la fenêtre VS Code, connectée à un hôte distant, accédez à View, puis à Command Palette (La palette de commandes peut également être ouverte en appuyant sur F1 ou sur la combinaison de touches d'accès rapide Ctrl+Shift+P pour Linux) et recherchez "Micronaut".

  2. Sélectionnez Micronaut : Créer un projet Micronaut pour créer un projet Micronaut.

  3. Suivez les invites de l'assistant pour configurer le projet :

    • Sélectionnez la dernière version de Micronaut disponible et ne choisissez aucune option avec SNAPSHOT

    • Sélectionnez le type d'application : Application Micronaut

    • Choisissez la dernière version de Java disponible. Au moment de créer cet atelier, il s'agit de GraalVM EE 22.0.0, Java 17.

    • Indiquez le nom du projet : ocidemo

    • Indiquez le nom du package de base : com.example

    • Choisir le langage du projet : Java

    • Ajoutez les fonctionnalités du projet : Database : Micronaut Data JDBC et Database : serveur Oracle Database. Appuyez sur OK.

    • Sélectionnez Maven ou Gradle comme outil de création

    • Choisissez la structure de test : JUnit

    • Choisissez le dossier de destination sur l'ordinateur hôte distant pour enregistrer les fichiers de projet : saisissez /home/opc/ et appuyez sur OK pour confirmer.

    Les fichiers de projet Micronaut que vous venez de créer seront ouverts dans l'espace de travail actuel dans VS Code.

Etape 2 : configuration de l'application pour la connexion à l'instance Oracle Autonomous Database

Les informations de connexion et les informations d'identification Oracle Cloud Autonomous Database sont stockées dans Oracle Wallet. Avec Micronaut, vous pouvez générer et télécharger automatiquement le portefeuille et configurer la source de données. Pour utiliser la configuration de source de données automatisée à partir du portefeuille, procédez comme suit :

  1. Cliquez sur le nom de votre dossier de projet dans le panneau de gauche et ouvrez le fichier application.yml sous src/main/resources/.

  2. Remplacez le contenu du fichier par défaut par les données suivantes :

    micronaut:
      application:
        name: ocidemo
    datasources:
      default:
        ocid: ocid1.autonomousdatabase.oc1...
        walletPassword: WALLET_PASSWORD
        username: DATABASE_USERNAME 
        password: DATABASE_PASSWORD
    
  3. Modifiez les paramètres de connexion à la source de données par défaut.

    • Retournez dans la fenêtre du navigateur et consultez la console de l'instance Oracle Autonomous Database. Sous Informations sur Autonomous Database > Informations générales, recherchez et copiez la valeur ocid de votre instance.

    ID d'instance Oracle Autonomous Database

    • Revenez au code VS et, dans application.yml, à l'OCID dans le champ ocid.
    • walletPassword permet de crypter les clés à l'intérieur du portefeuille. Il peut s'agir de votre choix (il doit comporter au moins huit caractères et inclure au moins une lettre et un caractère numérique ou un caractère spécial).
    • Les valeurs username et password doivent être le nom et le mot de passe que vous avez choisis lors de la création d'un utilisateur de schéma de base de données dans l'exercice précédent.

REMARQUE : Les fichiers de code VS ne sont pas enregistrés automatiquement. Pour enregistrer les modifications apportées à un fichier particulier, sélectionnez Fichier, puis Enregistrer ou Tout enregistrer pour enregistrer les modifications apportées à un groupe de fichiers. Vous pouvez également saisir CTLR +S.

Etape 3 : configuration des pilotes JDBC Oracle Autonomous Database

Vous devez indiquer la version correcte du pilote Oracle Database et les modules requis dans le fichier pom.xml à la racine du projet.

  1. Appliquez Oracle Database BOM 21.1.0.0 ou version ultérieure.

    Si vous avez utilisé Maven, ouvrez pom.xml à la racine du projet et insérez les éléments suivants entre les sections repositories et dependencies :

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.oracle.database.jdbc</groupId>
          <artifactId>ojdbc-bom</artifactId>
          <version>21.1.0.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

    Si vous avez utilisé Gradle, ouvrez build.gradle à la racine du projet et insérez la commande suivante à la fin du bloc dependencies :

    implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
    
  2. Ajoutez une dépendance au module micronaut-oraclecloud-atp.

    Si vous avez utilisé Maven, ouvrez pom.xml et insérez l'élément suivant dans le bloc dependencies :

    <dependency>
        <groupId>io.micronaut.oraclecloud</groupId>
        <artifactId>micronaut-oraclecloud-atp</artifactId>
        <version>1.2.1</version>
        <scope>runtime</scope>
    </dependency>
    

    Si vous avez utilisé Gradle, ouvrez build.gradle et ajoutez les éléments suivants à la fin du bloc dependencies :

    runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
    
  3. Activez la journalisation du SDK OCI.

    Si vous avez utilisé Maven, ouvrez pom.xml et ajoutez les dépendances suivantes dans le bloc dependencies :

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.13</version>
      <scope>runtime</scope>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>    
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.36</version>
        <scope>runtime</scope>
    </dependency>
    

    Si vous avez utilisé Gradle, insérez la configuration suivante juste au-dessus du bloc dependencies :

    configurations.all {
        resolutionStrategy.dependencySubstitution {
            substitute(module('commons-logging:commons-logging'))
                    .using(module('org.slf4j:jcl-over-slf4j:1.7.36'))
        }
    }
    

Etape 4 : configurez Flyway pour créer le schéma.

Vous devez ensuite activer la prise en charge d'Open Source Flyway database migration toolkit, qui vous permet de définir des scripts SQL qui gèrent et gèrent votre schéma de base de données et vous permettent de faire évoluer progressivement le schéma avec les nouvelles versions de votre application.

  1. Ajoutez une dépendance sur micronaut-flyway.

    Si vous avez utilisé Maven, ouvrez pom.xml et insérez l'élément suivant dans le bloc dependencies :

    <dependency>
        <groupId>io.micronaut.flyway</groupId>
        <artifactId>micronaut-flyway</artifactId>
        <scope>runtime</scope>
    </dependency>
    

    Si vous avez utilisé Gradle, ouvrez build.gradle et ajoutez les éléments suivants à la fin du bloc dependencies :

    runtimeOnly("io.micronaut.flyway:micronaut-flyway")
    
  2. Passez au fichier src/main/resources/application.yml et ajoutez la configuration suivante juste en dessous de la section datasources à la ligne 10 pour permettre l'exécution de Flyway au démarrage :

    flyway:
      datasources:
        default:
          enabled: true
    
  3. Ouvrez le fichier application-test.yml sous src/test/resources/ et remplacez le contenu par défaut du fichier par l'entrée suivante pour Flyway, qui contiendra votre configuration de test et définira Flyway pour nettoyer le schéma au démarrage de l'application, afin de garantir l'exécution des tests avec de nouvelles données :

    flyway:
      datasources:
        default:
          clean-schema: true
    

REMARQUE : Dans un scénario réel, vous devez configurer une base de données distincte pour l'exécution de vos tests.

Etape 5 : définition du script de migration SQL

L'étape suivante consiste à définir le script de migration SQL qui créera le schéma initial de l'application.

  1. Créez le dossier db/migration sous src/main/resources. Cliquez avec le bouton droit de la souris sur src/main/resources pour développer le menu de contenu et sélectionnez Nouveau dossier :

    Créer un dossier dans VS Code

  2. Créez un fichier SQL. Cliquez avec le bouton droit de la souris sur src/main/resources/db/migration/ pour développer le menu de contenu et sélectionner Nouveau fichier. Nommez-le V1__create-schema.sql.

  3. Ajoutez le code SQL suivant au fichier :

    CREATE TABLE "PET" ("ID" VARCHAR(36),"OWNER_ID" NUMBER(19) NOT NULL,"NAME" VARCHAR(255) NOT NULL,"TYPE" VARCHAR(255) NOT NULL);
    CREATE TABLE "OWNER" ("ID" NUMBER(19) PRIMARY KEY NOT NULL,"AGE" NUMBER(10) NOT NULL,"NAME" VARCHAR(255) NOT NULL);
    CREATE SEQUENCE "OWNER_SEQ" MINVALUE 1 START WITH 1 NOCACHE NOCYCLE;
    

    Le script SQL ci-dessus crée des tables owner et pet pour stocker les données des propriétaires et de leurs animaux domestiques dans Autonomous Database.

Vous pouvez maintenant passer à la tâche suivante.

En savoir plus