Introduction

Cette rubrique décrit comment installer et configurer la trousse SDK Oracle Cloud Infrastructure pour Java.

Cette rubrique décrit comment installer et configurer la trousse SDK Oracle Cloud Infrastructure pour Java.

Conseil

La trousse SDK pour Java est préconfigurée avec vos données d'identification et prête à être utilisée immédiatement à partir de Cloud Shell. Pour plus d'informations sur l'utilisation de la trousse SDK pour Java à partir de Cloud Shell, voir Démarrage rapide de Cloud Shell : Trousse SDK pour Java.

Téléchargement de la trousse SDK à partir de GitHub

Vous pouvez télécharger la trousse SDK pour Java en tant qu'archive zip à partir de GitHub. Le téléchargement contient la trousse SDK, toutes ses dépendances, la documentation, ainsi que des exemples. Pour assurer la meilleure compatibilité et éviter des problèmes, utilisez la version des dépendances incluses dans l'archive. Certains problèmes notables sont les suivants :

  • Bouncy Castle : Les ensembles de trousse SDK 1.60 (inclus dans cette distribution). Si vous avez besoin d'une conformité FIPS, voir Utilisation de BC-FIPS au lieu de Bouncy Castle.
  • Jersey Core et Client : Ensemble SDK 2.24.1, requis pour la prise en charge des chargements d'objets volumineux vers le Stockage d'objets. Les versions plus anciennes ne prennent pas en charge les chargements supérieurs à ~2.1 Go.
  • API Jax-RS : Ensemble SDK 2.0.1 de la spécification. Les versions plus anciennes entraîneront des problèmes.
Note

La trousse SDK pour Java est livrée avec Jersey (inclus dans cette distribution), mais vous pouvez également utiliser votre propre implémentation JAX-RS. Pour plus de détails, voir Utilisation de votre propre mise en oeuvre JAX-RS

Installation avec yum

Si vous utilisez Oracle Linux 7 ou 8, vous pouvez utiliser yum pour installer la trousse SDK pour Java d'OCI :

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 pour OCI jar se trouve dans : /usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-<version>.jar, et les bibliothèques tierces dans /usr/lib64/java-oci-sdk/third-party/lib.

Vous pouvez ajouter les entrées suivantes à votre variable 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 de la trousse SDK

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

Configuration des données d'identification

Tout d'abord, vous devez configurer vos données d'identification et votre fichier de configuration. Pour les instructions, voir Fichier de configuration des trousses SDK et de l'interface de ligne de commande.

Vous devez ensuite configurer le client pour utiliser les données d'identification. Les données d'identification sont abstraites au moyen d'une interface AuthenticationDetailsProvider. Les clients peuvent toutefois mettre en oeuvre ce processus. Nous avons inclus une simple classe POJO/générateur pour vous aider à effectuer 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és privées 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 avec le générateur :

    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 :

    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 du fichier de configuration standard, vous pouvez simplifier cette opération à l'aide de ConfigFileAuthenticationDetailsProvider :

    AuthenticationDetailsProvider provider 
        = new ConfigFileAuthenticationDetailsProvider("ADMIN_USER");

Configuration des options côté client

Créez une configuration côté client au moyen de la classe ClientConfiguration. Si vous ne fournissez pas votre propre configuration, la trousse SDK pour Java utilise une configuration par défaut. Pour définir votre propre configuration, utilisez les éléments suivants :

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

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

Pour un exemple de code montrant comment configurer et utiliser les temporisations de connexion et de lecture dans votre configuration de client, voir Exemple de temporisation dans une configuration de 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 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 extraire la valeur :

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

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

Utilisation de la trousse SDK pour Java

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

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

    La bibliothèque de client HTTP est configurable; aucune bibliothèque n'est sélectionnée par défaut. La trousse SDK OCI pour Java offre actuellement les bibliothèques de client HTTP suivantes parmi lesquelles choisir :

    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 de tierce partie et les dépendances transitives en les renommant et en les incluant dans votre projet. Elle contient un fichier "Uber JAR" (ou Fat JAR), qui est en fait une combinaison de plusieurs fichiers JAR. Tous les ensembles contenus dans le fichier "Uber JAR" sont renommés. Cela évite les conflits entre les dépendances de la trousse SDK Oracle Cloud Infrastructure et les dépendances de tierce partie que vous pouvez utiliser dans votre projet.

    Par exemple, les classes situées dans org.apache.commons sont déplacées vers shaded.com.oracle.oci.javasdk.org.apache.commons.

    Le contenu du fichier "Uber JAR" est le suivant :

    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>