Nuxeoは非常に強力なREST APIを提供していますが、ご存知のように、HTTPリクエスト、ヘッダー、およびサーバーの更新を処理するには、困難な作業が必要です。この困難な作業をより簡単にするために、Nuxeoはお客様が選択した言語用に以下のようなRESTクライアントを提供しています:

特定のNuxeo Serverバージョンで動作するようにJavaクライアントを開発しました。たとえば、Nuxeo LTS 2015用に1.x、Nuxeo LTS 2016用に2.xをリリースし、Nuxeo LTS 2017用に3.xのリリースを予定していました。

Nuxeoでは、常にユーザーの作業が楽になるように努めております。プロセスが長すぎて退屈に見えることがあるため、ユーザーは重要なアップグレードを遅らせることがあります。このことを念頭に置いて、私たちはアップグレードプロセスを迅速かつ容易にするという目標のもと、Javaクライアント全体を3.xバージョン用に修正しました。

Nuxeo Java Client 3.0.0はLTS 2015から始まるすべてのNuxeoサーバーで動作し、リリース候補初版(RC1)が現在公開されていることを嬉しく思います。

これに伴い、次のような優れた機能も導入しました。

  • NuxeoClientをインスタンス化する際に、Nuxeo Serverへの接続が成功したかどうかを確認するテスト
  • Document#propertiesDocument#contextParametersを適切なオブジェクトに逆シリアル化する
  • InputStreamからブロブをアップロードする
  • 構成マネージャのエンドポイント
  • マネージャ間の構成分離

このクライアントと上記の新機能の使用方法を簡単に見てみましょう。

###ステップ1:クライアントを作成します。

NuxeoClient client = new NuxeoClient.Builder().url("http://localhost:8080/nuxeo")
                                              .authentication("Administrator", "Administrator")
                                              .schemas("*")
                                              .connect();

このステップでは、Nuxeo Serverへのリクエストを処理できるクライアントが用意されています。
ドキュメントを作成してみましょう(クライアントは新しいNuxeoサーバーに接続されているものとします)。

Document aFolder = Document.createWithName("aFolder", "Folder");
Document aFile = Document.createWithName("aFile", "File");

client.repository().createDocumentByPath("/", aFolder);
client.repository().createDocumentByPath("/aFolder", aFile);

###ステップ2:パンくずリストを記したaFile文書を取得します。

aFile = client.repository().enrichersForDocument("breadcrumb").fetchDocumentByPath("/aFolder/aFile");
// get the breadcrumb from context parameters
Documents breadcrumb = aFile.getContextParameter("breadcrumb");
aFolder = breadcrumb.getDocument(0);
aFile = breadcrumb.getDocument(1);

ここでは、構成分離とコンテキストパラメータの逆シリアル化のメリットがあります。クライアントからマネージャを得るたびに、クライアントの構成で初期化された独自の構成コンテキストを持つ新しいマネージャが生成されます。したがって、この例では、「パンくず」エンリッチャーはaFileの取得に対してのみ設定されます。さらに、Nuxeoサーバーによって「パンくず」がドキュメントとしてシリアル化されるので、クライアントはドキュメントにそれを逆シリアル化することができます。

その他の例については、ここでご覧ください。

早速お試しください!皆さんのご意見をお待ちしております。最終版は10月にリリースされます。ご期待ください!