※ 本記事は、Kartik Hegdeによる”Announcing the general availability of OCI SDK v3 for Java“を翻訳したものです。

2022年12月9日


Oracle Cloud Infrastructure(OCI)ソフトウェア開発者キット(SDK) v3または3.0.0 for Javaの一般提供を発表できることを嬉しく思います。OCI SDK v3 for Javaでは、重要なセキュリティ更新など、いくつかの機能が追加されています。Oracle Javaに組込み済の機能に頼ることによって、SDK v3 for Javaのサードパーティ・ライブラリの数が大幅に削減され、OCI Java SDKを最も安全にしています。

また、OCI SDK v3 for JavaのMicronautフレームワークのサポートもお知らせします。Micronaut 3.7、OCI SDK v3 for JavaおよびGraalVMネイティブ・イメージを組み合せることで、開発者は、コンテナ化が容易な、高速で効率的な事前にコンパイルされたOCIクラウド・ネイティブ・マイクロサービスを構築できます。

OCI SDK v3 for Javaには、プラガブルHTTPクライアント・レイヤー、簡易クライアント構成、サードパーティ・ライブラリへの依存数の削減など、頻繁にリクエストされる機能が含まれています。サードパーティの依存性を削減し、Java Development Kit(JDK)にすでに存在するコードをより多く活用することで、サードパーティのパッケージの問題によるセキュリティ脆弱性のケースが少なくなる可能性があります。

パッケージ・サイズが小さくなり、プロジェクトのサードパーティ依存関係との競合の可能性が低くなるため、ユーザー・エクスペリエンスが大幅に向上しました。OCI SDK v3 for Javaでは、OCI Java SDKのサイズが101MBから85MBに減少し、15%削減されました。サードパーティーの依存関係のサイズが18Mバイトから15Mバイトに17%減少し、依存関係の数が43から37に減少し、14%削減されました。

他のOCI SDKと同様に、SDK v3 for JavaはGitHubで使用でき、すべてのOCIサービスをサポートしています。新しいv3 SDK for Javaの週次リリースにより、すべての新しいサービスや機能、バグまたはセキュリティの修正が6か月間、2023年6月13日まで、毎週SDKのv2バージョンを引き続きサポートすることを保証いたします。詳細は、OCI SDK for Javaのv2バージョンのサポート・モデルについては、このブログの終わりを参照してください。また、OCI SDK for Javaへの移行に必要な変更のリストを概説する、OCI SDK for Java 3の更新に関するガイドもリリースしました。

新機能

複数のHTTPクライアント・ライブラリのサポート

HTTPクライアント・ライブラリは、OCI SDK for Javaのプラグインと使用が簡単になりました。現在、OCI SDK v3 for Javaでは、HTTPクライアント・ライブラリに対して次の選択肢が提供されています。:

フルの例については、bmc jersey examplesおよびbmc jersey3 examplesを参照してください。

HTTPトランスポート接続性によって、デフォルトのHTTPクライアントライブラリをNettyなどの別のプロバイダに変更するために必要な基礎作業が将来のリリースで行われます。ただし、Nettyを使用するOCI SDK v3 for Javaは、Micronautフレームワークを使用する際には、現在すでに利用可能です。NettyでObject StorageとAutonomous Databaseを使用するこのMicronautのを参照してください。

複数のサード・パーティ・ライブラリへの依存関係の削除

GuavaとApache Commonsのサードパーティ・ライブラリをJava SDKから削除し、Oracleが提供するJDKにすでに存在するクラスに置き換えました。この変更の結果として、サードパーティ・パッケージの問題によって発生するセキュリティ脆弱性のケースが少なくなり、サードパーティ・パッケージのセキュリティ脆弱性を軽減するためにSDK for Javaバージョンをアップグレードする必要性が少なくなります。

次のサードパーティ依存関係jarがJava SDKから削除されました:

  • checker-qual-3.12.0.jar

  • error_prone_annotations-2.7.1.jar

  • failureaccess-1.0.1.jar

  • guava-31.0.1-jre.jar

  • j2objc-annotations-1.3.jar

  • listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar

新しいバージョンを展開する際、Java SDKからさらに多くのサード・パーティの依存関係を削除する予定です。

簡素化されたクライアント構成

次の例を含め、選択したHTTPクライアントライブラリに関係なく、多くの標準クライアント構成プロパティーを均一に設定できます。:

  • Read and connect timeout

  • Asynchronous thread pool size

  • Whether to buffer requests

  • Key store and trust store

  • Hostname verifier

  • SSL context

  • Proxy

OCI SDK v2 for Javaのサポート・モデル

v3 SDK for Javaは、v2のメジャー・アップグレードです。そのため、v2から v3への移行では、ユーザーの側でコードの変更が必要になることがあります。ただし、v3への移行を開始する前に、引き続きv2 SDK for Javaを使用できます。新しいv3 SDK for Javaは毎週出荷されますが、SDK for Javaのv2バージョンは2023年6月13日まで6か月間引き続きサポートされます。この6か月間の間、v2バージョンは、すべての新しいサービスまたは機能とバグまたはセキュリティ修正を含む週単位でサポートされ、v3にアップグレードするのに十分な時間が確保されます。2023年6月13日より後は、Java用のOCI SDK v3を使用して、バグおよびセキュリティ修正による新しいサービスと最新機能を利用することをお薦めします。

2023年6月13日より後は、SDK v2 for Javaを引き続き使用できます。しかし、OCIでは、新しいサービスの毎週の更新や最新の機能やバグ修正はリリースされません。そのため、2023年6月13日より後は、12か月の間、OCI v2 SDK for Javaはメンテナンス・モードに入ります。つまり、OCIは重要なバグやセキュリティ脆弱性の修正のみに対処するために、v2 SDK for Javaを制限します。

リソース

OCI SDK v3 for Javaに導入された変更の詳細なガイドは、OCI SDK for Java 3の更新を参照してください。変更ログの変更内容を表示することもできます。

  1. SDK for Javaの開始

  2. ドキュメント: SDK for Java and Oracle Cloud Infrastructureの開始

  3. GitHubのソース・コード

自分で試してみる

OCIを初めて使用する場合は、Oracle Cloud Free Tierにサインアップし、GitHubまたはMavenからOCI SDK for Javaをダウンロードします。

フィードバックと貢献

GitHubの問題を開いてフィードバックを送信することをお薦めします。あなたがオープンしている問題は、私たちのチームによって対処されます。GitHubの問題を使用してフィードバックを提供すると、他のユーザーが会話に参加したり、問題の解決策を見つけるのに役立ちます。

SDKはオープン・ソースです。Oracle Cloud Infrastructure SDK for Javaリポジトリに対してプル・リクエストを作成できます。SDKチーム・メンバーがマージ前にプル・リクエストを確認します。

ヘルプが必要な場合は、次のチャネルを使用できます。

  1. Stack Overflow: oracle-cloud-infrastructureタグとoci-java-sdkタグを使用して投稿

  2. Oracle Cloud Infrastructure community

  3. My Oracle Support