[dna-commits] DNA SVN: r1555 - in trunk/docs/reference/src/main/docbook/en-US/content: jcr and 1 other directory.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Thu Jan 7 17:24:56 EST 2010


Author: elvisisking
Date: 2010-01-07 17:24:56 -0500 (Thu, 07 Jan 2010)
New Revision: 1555

Modified:
   trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml
   trunk/docs/reference/src/main/docbook/en-US/content/jcr/rest_service.xml
Log:
DNA-629 Document The REST Client API In The Reference Guide: Added new section and modified introduction. Reviewed by Brian C.

Modified: trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml	2010-01-07 19:12:33 UTC (rev 1554)
+++ trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml	2010-01-07 22:24:56 UTC (rev 1555)
@@ -519,6 +519,14 @@
             can be consulted as a template for how to deploy the RESTful services in a custom implementation. 
           </para>
         </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-web-jcr-rest-client</emphasis>
+            is an API that uses POJOs to access the REST web service. This API eliminates the need for applications to know how
+            to create HTTP request URLs and payloads, and how to parse the JSON responses. It can be used to publish (upload) 
+            and unpublish (delete) files from DNA repositories. 
+          </para>
+        </listitem>
       </itemizedlist>
       There are also documentation modules (located in the source under the
       <code>docs/</code>

Modified: trunk/docs/reference/src/main/docbook/en-US/content/jcr/rest_service.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/jcr/rest_service.xml	2010-01-07 19:12:33 UTC (rev 1554)
+++ trunk/docs/reference/src/main/docbook/en-US/content/jcr/rest_service.xml	2010-01-07 22:24:56 UTC (rev 1555)
@@ -578,5 +578,66 @@
 			repository should shutdown and clean up any resources that are in use.
 		</para>
 	</sect1>
+
+    <sect1 id="dna_rest_client_api">
+        <title>DNA REST Client API</title>
+        <para>
+            The DNA REST Client API provides a POJO way of using the DNA REST web service to publish (upload) and 
+            unpublish (delete) files from DNA repositories. Java objects open the HTTP connection, create the HTTP request URLs, 
+            attach the payload associated with <code>PUT</code> and <code>POST</code> requests, parse the HTTP JSON response back 
+            into Java objects, and close the HTTP connection.
+        </para>
+        <para>
+            Here are the Java business objects you will need (all found in the <code>org.jboss.dna.web.jcr.rest.client.domain</code> 
+            package):
+
+            <itemizedlist>
+                <listitem>
+                    <para><code>Server</code> - hosts one or more DNA JCR repositories,</para>
+                </listitem>
+                <listitem>
+                    <para><code>Repository</code> - a DNA JCR repository containing one or more workspaces, and</para>
+                </listitem>
+                <listitem>
+                    <para><code>Workspace</code> - a DNA JCR repository workspace.</para>
+                </listitem>
+            </itemizedlist>
+        </para>
+        <para>
+            Along with the POJOs above, an <code>org.jboss.dna.web.jcr.rest.client.IRestClient</code> is needed. The 
+            <code>IRestClient</code> is responsible for executing the publishing and unpublishing operations. You can also use the
+            <code>IRestClient</code> to find out what repositories and workspaces are available on a DNA server.
+
+            <note>
+                <para>
+                    The only implementation of <code>IRestClient</code> is <code>JsonRestClient</code> as JSON-encoded responses are 
+                    all that are currently available.
+                </para>
+            </note>
+                
+            Here's a code snippet that publishes (uploads) a file:
+
+            <programlisting><![CDATA[
+// Setup POJOs
+Server server = new Server("http://localhost:8080", "username", "password");
+Repository repository = new Repository("repositoryName", server);
+Workspace workspace = new Workspace("workspaceName", repository);
+
+// Publish
+File file = new File("/path/to/file");
+IRestClient restClient = new JsonRestClient();
+Status status = restClient.publish(workspace, "/workspace/path/", file);
+
+if (status.isError() {
+    // Handle error here
+}
+            ]]></programlisting>
+        </para>
+        <para>
+            Results of successfully executing the above code is a JCR folder node (<code>nt:folder</code>) for each segment of the 
+            workspace path (a node is created if it doesn't already exist). Also, a JCR file node (a node with primary type <code>nt:file</code>) is 
+            created or updated under the last folder node and the file contents are encoded and uploaded into a child node of that file node.
+        </para>
+    </sect1>
 </chapter>
 



More information about the dna-commits mailing list