Introduction

Cette rubrique explique comment installer et configurer le kit SDK Oracle Cloud Infrastructure pour Java.

Cette rubrique explique comment installer et configurer le kit SDK Oracle Cloud Infrastructure pour Java.

Conseil

Le kit SDK pour Java est préconfiguré avec vos informations d'identification et prêt à être utilisé immédiatement à partir de Cloud Shell. Pour plus d'informations sur l'utilisation du kit SDK pour Java à partir de Cloud Shell, reportez-vous à Démarrage rapide du kit SDK pour Java avec Cloud Shell.

Téléchargement du kit SDK à partir de GitHub

Vous pouvez télécharger le kit SDK pour Java en tant qu'archive ZIP à partir de GitHub. Il contient le kit SDK, toutes ses dépendances, la documentation et des exemples. Pour une meilleure compatibilité et éviter tout problème, utilisez la version des dépendances incluses dans l'archive. Voici quelques problèmes notables :

  • Bouncy Castle : groupes de kits SDK 1.60 (inclus dans cette distribution). Si vous avez besoin de la conformité FIPS, reportez-vous à Utilisation de BC-FIPS au lieu de Bouncy Castle.
  • Client et coeur Jersey : le kit SDK contient la version 2.24.1, qui est requise pour prendre en charge les téléchargements d'objets volumineux vers Object Storage. Les anciennes versions ne prennent pas en charge les téléchargements supérieurs à ~2,1 Go.
  • API JAX-RS : le kit SDK contient la version 2.0.1 de la spécification. Les versions antérieures entraînent des problèmes.
Remarque

Le kit SDK pour Java est groupé avec Jersey (inclus dans cette distribution), mais vous pouvez également utiliser votre propre implémentation JAX-RS. Pour plus d'informations, reportez-vous à Utilisation de votre propre implémentation JAX-RS.

Installation à l'aide de YUM

Si vous utilisez Oracle Linux 7 ou 8, vous pouvez vous servir de YUM afin d'installer le kit SDK OCI pour Java.

Pour Oracle Linux 7 :

sudo yum-config-manager --enable ol7_developer
sudo yum install java-oci-sdk
Pour Oracle Linux 8 :
sudo yum-config-manager --enable ol8_developer
sudo yum install java-oci-sdk

Le fichier JAR OCI se situe dans /usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-<version>.jar et les bibliothèques tierces se trouvent dans /usr/lib64/java-oci-sdk/third-party/lib.

Vous pouvez ajouter les entrées suivantes à votre variable d'environnement CLASSPATH : /usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-<version>.jar:/usr/lib64/java-oci-sdk/third-party/lib/*. Par exemple :
javac -cp "/usr/lib64/java-oci-sdk/third-party/lib/*:/usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-1.8.2.jar" MyFile.java

Configuration du kit SDK

Les services de kit SDK ont besoin de deux types de configuration : les informations d'identification et les paramètres HTTP côté client.

Configuration des informations d'identification

Vous devez tout d'abord configurer vos informations d'identification ainsi que le fichier de configuration. Pour obtenir des instructions, reportez-vous à Fichier de configuration du kit SDK et de l'interface de ligne de commande.

Vous devez ensuite configurer le client afin qu'il utilise les informations d'identification. Les informations d'identification sont extraites via une interface AuthenticationDetailsProvider. Les clients peuvent effectuer cette implémentation selon votre choix. Nous avons inclus une classe de générateur/POJO simple pour vous aider dans cette tâche (SimpleAuthenticationDetailsProvider).

  • Vous pouvez charger une configuration avec ou sans profil :

    ConfigFile config 
        = ConfigFileReader.parse("~/.oci/config");
    ConfigFile configWithProfile 
        = ConfigFileReader.parse("~/.oci/config", "DEFAULT");
  • Le fournisseur de clé privée peut être créé directement avec le chemin d'accès au fichier ou à l'aide du fichier de configuration :

    Supplier<InputStream> privateKeySupplier 
        = new SimplePrivateKeySupplier("~/.oci/oci_api_key.pem");
    Supplier<InputStream> privateKeySupplierFromConfigEntry 
        = new SimplePrivateKeySupplier(config.get("key_file"));
  • Pour créer un fournisseur d'authentification à l'aide du générateur, procédez comme suit :

    AuthenticationDetailsProvider provider 
        = SimpleAuthenticationDetailsProvider.builder()
            .tenantId("myTenantId")
            .userId("myUserId")
            .fingerprint("myFingerprint")
            .privateKeySupplier(privateKeySupplier)
            .build();
  • Pour créer un fournisseur d'authentification à l'aide du générateur avec un fichier de configuration, procédez comme suit :

    AuthenticationDetailsProvider provider 
        = SimpleAuthenticationDetailsProvider.builder()
            .tenantId(config.get("tenancy"))
            .userId(config.get("user"))
            .fingerprint(config.get("fingerprint"))
            .privateKeySupplier(privateKeySupplier)
            .build();
  • Enfin, si vous utilisez des clés de fichier de configuration standard et l'emplacement de fichier de configuration standard, vous pouvez simplifier ce processus en utilisant ConfigFileAuthenticationDetailsProvider :

    AuthenticationDetailsProvider provider 
        = new ConfigFileAuthenticationDetailsProvider("ADMIN_USER");

Configuration des options côté client

Créez une configuration côté client via la classe ClientConfiguration. Si vous ne fournissez pas votre propre configuration, le kit SDK pour Java utilise une configuration par défaut. Pour fournir votre propre configuration, utilisez ce qui suit :

ClientConfiguration clientConfig 
    = ClientConfiguration.builder()
        .connectionTimeoutMillis(3000)
        .readTimeoutMillis(60000)
        .build();

Une fois que vous disposez d'une configuration d'informations d'identification et d'une configuration client facultative, vous pouvez commencer à créer des instances de service.

Pour obtenir un exemple de code qui illustre la configuration et l'utilisation des délais d'expiration de connexion et de lecture dans la configuration client, reportez-vous à l'exemple de délai d'expiration de configuration client sur GitHub.

Configuration des options personnalisées

Dans le fichier de configuration, vous pouvez insérer des paires clé-valeur personnalisées que vous définissez, puis les référencer si nécessaire. Par exemple, vous pouvez spécifier un ID de compartiment fréquemment utilisé dans le fichier de configuration :

[DEFAULT]
user=ocid1.user.oc1..aaaaaaaat5nvwcna5j6aqzjcmdy5eqbb6qt2jvpkanghtgdaqedqw3rynjq
fingerprint=20:3b:97:13:55:1c:5b:0d:d3:37:d8:50:4e:c5:3a:34
key_file=~/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..<unique_ID>


custom_compartment_id=ocid1.compartment.oc1..<unique_ID>



Vous pouvez ensuite en extraire la valeur :

ConfigFile config 
    = ConfigFileReader.parse("~/.oci/config");

String compartmentId = config.get("custom_compartment_id");

Utilisation du kit SDK pour Java

Il existe deux façons d'utiliser le kit SDK Oracle Cloud Infrastructure pour Java dans votre projet.

  • Importez oci-java-sdk-bom, suivi de la bibliothèque client HTTP et des dépendances de votre projet.

    La bibliothèque client HTTP est configurable et aucune bibliothèque n'est choisie par défaut. Le kit SDK OCI pour Java propose actuellement les bibliothèques client HTTP suivantes pour faire votre choix :

    Vous devez choisir explicitement la bibliothèque en déclarant une dépendance à oci-java-sdk-common-httpclient-jersey ou oci-java-sdk-common-httpclient-jersey3. Par exemple :

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.oracle.oci.sdk</groupId>
          <artifactId>oci-java-sdk-bom</artifactId>
          <!-- replace the version below with your required version -->
          <version>3.0.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    <dependencies>
      <dependency>
        <!-- Since this is the "application" pom.xml, choose the httpclient to use. -->
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
      </dependency>
      <dependency>
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-audit</artifactId>
      </dependency>
      <dependency>
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-core</artifactId>
      </dependency>
      <dependency>
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-database</artifactId>
      </dependency>
      <!-- more dependencies if needed -->
    </dependencies>
  • Ajoutez la dépendance ombrée oci-java-sdk-shaded-full à votre fichier POM. Vous pouvez utiliser la dépendance ombrée pour inclure toutes les classes tierces ainsi que ses dépendances transitives en les renommant et en les incluant dans votre projet. Un fichier Uber JAR s'y trouve, qui est essentiellement une combinaison de plusieurs fichiers JAR. Tous les packages contenus dans le fichier Uber JAR sont renommés. Cela empêchera les conflits entre les dépendances du kit SDK Oracle Cloud Infrastructure et les dépendances tierces que vous utilisez éventuellement dans votre projet.

    Par exemple, les classes dans org.apache.commons sont transférées vers shaded.com.oracle.oci.javasdk.org.apache.commons.

    Le fichier Uber JAR contient ce qui suit :

    shaded/com/oracle/oci/javasdk/org/apache/commons/codec/BinaryDecoder.class
    shaded/com/oracle/oci/javasdk/org/apache/commons/logging/LogFactory.class

    Si vous utilisez Maven pour gérer vos dépendances, vous pouvez trouver la dernière dépendance ombrée dans le référentiel Maven.

    Ajoutez la dernière version de oci-java-sdk-shaded-full à vos dépendances :

    <dependency>
      <groupId>com.oracle.oci.sdk</groupId>
      <artifactId>oci-java-sdk-shaded-full</artifactId>
      <!-- replace the version below with the latest version -->
      <version>3.0.0</version>
    <dependency>