Nuxeo bietet seinen Kunden eine sehr leistungsstarke REST-API an, wie Sie jedoch vielleicht wissen, sind die Verarbeitung von HTTP-Anfragen, Headern und Server-Updates Aufgaben, die einem System viel abverlangen. Damit Ihr System nicht überlastet wird, bietet Nuxeo unterschiedliche REST-Clients für Ihre bevorzugten Programmiersprachen, wie beispielsweise:

Wir begannen damit, einen Java-Client zu entwickeln, der für bestimmte Nuxeo-Server-Versionen vorgesehen war. "1.x" war also der Client für Nuxeo LTS 2015, "2.x" derjenige für Nuxeo LTS 2016 und jetzt planen wir die Veröffentlichung der Version "3.x" für Nuxeo LTS 2017.

Wir von Nuxeo sind stets bestrebt, uns das Leben so einfach wie möglich zu machen. Manchmal fällt uns auf, dass Benutzer wichtige Updates hinauszögern, weil der Prozess zu viel Zeit in Anspruch nehmen könnte. Vor diesem Hintergrund gestalteten wir den Java-Client für die Version 3.x mit dem Ziel neu, den Upgrade-Prozess so schnell und einfach wie möglich zu machen.

Wir freuen uns Ihnen mitteilen zu können, dass sich der Nuxeo Java Client 3.0.0 für alle Nuxeo-Server ab Version LTS 2015 eignet und der erste Release Candidate (RC1) jetzt erhältlich ist!

Neben schnelleren Updates verfügt der Client auch über die folgenden tollen Funktionen:

  • Prüfung, ob die Verbindung mit dem Nuxeo-Server erfolgreich war, wenn "NuxeoClient" instanziiert wird
  • Entserialisierung von "Document#properties" und "Document#contextParameters" und Umwandlung in richtige Objekte
  • Hochladen eines Blobs aus einem "InputStream"
  • Endpunkt für Konfigurationsmanager
  • Konfigurationsisolation zwischen Managern

Sehen wir uns einmal kurz an, wie Sie diesen neuen Client und einige seiner neuen, oben beschriebenen Funktionen verwenden können.

Schritt 1: Erstellen Sie einen Client.

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

Nach diesem Schritt steht uns ein Client zur Verfügung, der dazu in der Lage ist, Anfragen an den Nuxeo-Server zu verarbeiten.
Erstellen wir nun einige Dokumente (wir gehen davon aus, dass der Client mit einem nagelneuen Nuxeo-Server verknüpft ist).

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

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

Schritt 2: Rufen Sie das Dokument "aFile" inklusive Brutkrumen ab.

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);

Hierbei unterstützen uns Konfigurationsisolierung und Entserialisierung der Kontextparameter. Jedes Mal, wenn wir vom Client einen Manager abrufen, erhalten wir einen neuen Manager mit eigenem Konfigurationskontext, der mit der Client-Konfiguration initialisiert wurde. In diesem Beispiel wird der "breadcrumb"-Enricher nur für das Abrufen der Datei "aFile" genutzt. Da "breadcrumb" außerdem von Nuxeo-Server als "documents" serialisiert wurde, kann der Client es in "Documents" entserialisieren.

Weitere Beispiele finden Sie hier.

Probieren Sie es aus und vergessen Sie nicht, uns Ihr Feedback mitzuteilen. Die endgültige Version wird im Oktober veröffentlicht. Bleiben Sie dran.