Author: woonsan
Date: Wed Mar 17 10:34:04 2010
New Revision: 924212

URL: http://svn.apache.org/viewvc?rev=924212&view=rev
Log:
JS2-1057: Adding documentation for page management jax-rs service.

Modified:
    
portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml

Modified: 
portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml
URL: 
http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml?rev=924212&r1=924211&r2=924212&view=diff
==============================================================================
--- 
portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml
 (original)
+++ 
portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml
 Wed Mar 17 10:34:04 2010
@@ -1679,6 +1679,729 @@ With the following request header:
 
 </section>
 
+<section name='Page Management Service'>
+<p>
+The Page Management Service is a HTTP request-based API, communicating over a 
simple REST (Representational State Transfer) protocol,
+providing information and management functionality on portal page nodes such 
as pages, folders and links.
+This service is accessed over HTTP via the "/services/pagemanagement" path on 
the portal URL:
+<source><![CDATA[
+http://hostname/contextname/services/pagemanagement/
+]]></source>
+</p>
+<p>
+  <em>
+    Node: All operations of this service are allowed only to those who has the 
right to edit the target node.
+          Those who has the right to view only will get the HTTP Error 403 
Forbidden. 
+  </em>
+</p>
+
+<subsection name='Get Node'>
+<table> 
+    <tr>
+        <td>Entry path</td>
+        <td>/</td>
+    </tr>
+    <tr>
+        <td>Description</td>
+        <td>Get node based on the type parameter and the path parameter.</td>
+    </tr>
+    <tr>
+        <td>HTTP Method</td>
+        <td>GET</td>
+    </tr>
+    <tr>
+        <td>Parameters</td>
+        <td>
+            <table>
+                <tr>
+                    <th>Type</th>
+                    <th>Name</th>
+                    <th>Required</th>
+                    <th>Default value</th>
+                    <th>Example value</th>
+                    <th>Description</th>
+                </tr>
+                <tr>
+                    <td>PATH</td>
+                    <td></td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>
+                        One of the following:
+                        <br/>
+                        <ul>
+                            <li>/.psml</li>
+                            <li>/folder</li>
+                            <li>/.link</li>
+                        </ul>
+                    </td>
+                    <td>
+                        The first path parameter is for the node type:
+                        <br/>
+                        <ul>
+                            <li>.psml : Page node</li>
+                            <li>folder : Folder node</li>
+                            <li>.link : Link node</li>
+                        </ul>
+                    </td>
+                </tr>
+                <tr>
+                    <td>PATH</td>
+                    <td></td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>/default-page.psml</td>
+                    <td>
+                        The node path to retrieve.
+                    </td>                    
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td>REST API examples</td>
+        <td>
+<source><![CDATA[
+GET 
http://localhost:8080/jetspeed/services/pagemanagement/.psml/default-page.psml?_type=json
+]]></source>            
+        </td>    
+    </tr>
+    <tr>
+        <td>JSON Response Example</td>
+        <td>
+<source><![CDATA[
+{
+  "id":"/default-page.psml",
+  "name":"default-page.psml",
+  "type":".psml",
+  "path":"/default-page.psml",
+  "title":"Welcome to Jetspeed",
+  "shortTitle":"Welcome to Jetspeed",
+  "hidden":false,
+  "url":"/default-page.psml",
+  "constraintsEnabled":true,
+  "permissionsEnabled":false,
+  "effectiveDefaultLayoutDecorator":"jetspeed",
+  "effectiveDefaultPortletDecorator":"jetspeed",
+  "dirty":false,
+  "metadata":
+    {
+      "fields":[
+        {
+          "name":"title",
+          "value":"Welcome to Jetspeed",
+          "localeString":"en"
+        },
+        {
+          "name":"title",
+          "value":"Bienvenido a Jetspeed 2",
+          "localeString":"es"
+        }
+      ]
+    }
+}
+]]></source>
+            
+        </td>    
+    </tr>
+    <tr>
+        <td>XML Response Example</td>
+        <td>
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<page>
+  <id>/default-page.psml</id>
+  <name>default-page.psml</name>
+  <type>.psml</type>
+  <path>/default-page.psml</path>
+  <title>Welcome to Jetspeed</title>
+  <shortTitle>Welcome to Jetspeed</shortTitle>
+  <hidden>false</hidden>
+  <url>/default-page.psml</url>
+  <constraintsEnabled>true</constraintsEnabled>
+  <permissionsEnabled>false</permissionsEnabled>
+  <effectiveDefaultLayoutDecorator>jetspeed</effectiveDefaultLayoutDecorator>
+  <effectiveDefaultPortletDecorator>jetspeed</effectiveDefaultPortletDecorator>
+  <dirty>false</dirty>
+  <metadata>
+    <fields>
+      <field>
+        <localeString>fr</localeString>
+        <name>title</name>
+        <value>Bienvenue a Jetspeed</value>
+      </field>
+      <field>
+        <localeString>es</localeString>
+        <name>title</name>
+        <value>Bienvenido a Jetspeed 2</value>
+      </field>
+    </fields>
+  </metadata>
+</page>
+]]></source>
+            
+        </td>
+    </tr>
+</table>
+</subsection>
+
+<subsection name='Delete Node'>
+<table> 
+    <tr>
+        <td>Entry path</td>
+        <td>/</td>
+    </tr>
+    <tr>
+        <td>Description</td>
+        <td>Delete node based on the type parameter and the path 
parameter.</td>
+    </tr>
+    <tr>
+        <td>HTTP Method</td>
+        <td>GET</td>
+    </tr>
+    <tr>
+        <td>Parameters</td>
+        <td>
+            <table>
+                <tr>
+                    <th>Type</th>
+                    <th>Name</th>
+                    <th>Required</th>
+                    <th>Default value</th>
+                    <th>Example value</th>
+                    <th>Description</th>
+                </tr>
+                <tr>
+                    <td>PATH</td>
+                    <td></td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>
+                        One of the following:
+                        <br/>
+                        <ul>
+                            <li>/.psml</li>
+                            <li>/folder</li>
+                            <li>/.link</li>
+                        </ul>
+                    </td>
+                    <td>
+                        The first path parameter is for the node type:
+                        <br/>
+                        <ul>
+                            <li>.psml : Page node</li>
+                            <li>folder : Folder node</li>
+                            <li>.link : Link node</li>
+                        </ul>
+                    </td>
+                </tr>
+                <tr>
+                    <td>PATH</td>
+                    <td></td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>/default-page.psml</td>
+                    <td>
+                        The node path to delete.
+                    </td>                    
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td>REST API examples</td>
+        <td>
+<source><![CDATA[
+DELETE 
http://localhost:8080/jetspeed/services/pagemanagement/.psml/default-page.psml?_type=json
+]]></source>            
+        </td>    
+    </tr>
+    <tr>
+        <td>JSON Response Example</td>
+        <td>
+<source><![CDATA[
+{
+  "id":"/default-page.psml",
+  "name":"default-page.psml",
+  "type":".psml",
+  "path":"/default-page.psml",
+  "title":"Welcome to Jetspeed",
+  "shortTitle":"Welcome to Jetspeed",
+  "hidden":false,
+  "url":"/default-page.psml",
+  "constraintsEnabled":true,
+  "permissionsEnabled":false,
+  "effectiveDefaultLayoutDecorator":"jetspeed",
+  "effectiveDefaultPortletDecorator":"jetspeed",
+  "dirty":false,
+  "metadata":
+    {
+      "fields":[
+        {
+          "name":"title",
+          "value":"Welcome to Jetspeed",
+          "localeString":"en"
+        },
+        {
+          "name":"title",
+          "value":"Bienvenido a Jetspeed 2",
+          "localeString":"es"
+        }
+      ]
+    }
+}
+]]></source>
+            
+        </td>    
+    </tr>
+    <tr>
+        <td>XML Response Example</td>
+        <td>
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<page>
+  <id>/default-page.psml</id>
+  <name>default-page.psml</name>
+  <type>.psml</type>
+  <path>/default-page.psml</path>
+  <title>Welcome to Jetspeed</title>
+  <shortTitle>Welcome to Jetspeed</shortTitle>
+  <hidden>false</hidden>
+  <url>/default-page.psml</url>
+  <constraintsEnabled>true</constraintsEnabled>
+  <permissionsEnabled>false</permissionsEnabled>
+  <effectiveDefaultLayoutDecorator>jetspeed</effectiveDefaultLayoutDecorator>
+  <effectiveDefaultPortletDecorator>jetspeed</effectiveDefaultPortletDecorator>
+  <dirty>false</dirty>
+  <metadata>
+    <fields>
+      <field>
+        <localeString>fr</localeString>
+        <name>title</name>
+        <value>Bienvenue a Jetspeed</value>
+      </field>
+      <field>
+        <localeString>es</localeString>
+        <name>title</name>
+        <value>Bienvenido a Jetspeed 2</value>
+      </field>
+    </fields>
+  </metadata>
+</page>
+]]></source>
+            
+        </td>
+    </tr>
+</table>
+</subsection>
+
+<subsection name='Copy Node'>
+<table> 
+    <tr>
+        <td>Entry path</td>
+        <td>/copy/</td>
+    </tr>
+    <tr>
+        <td>Description</td>
+        <td>Copy node based on the type parameter, the path parameter and the 
form request parameters</td>
+    </tr>
+    <tr>
+        <td>HTTP Method</td>
+        <td>GET</td>
+    </tr>
+    <tr>
+        <td>Parameters</td>
+        <td>
+            <table>
+                <tr>
+                    <th>Type</th>
+                    <th>Name</th>
+                    <th>Required</th>
+                    <th>Default value</th>
+                    <th>Example value</th>
+                    <th>Description</th>
+                </tr>
+                <tr>
+                    <td>PATH</td>
+                    <td></td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>
+                        One of the following:
+                        <br/>
+                        <ul>
+                            <li>/.psml</li>
+                            <li>/folder</li>
+                            <li>/.link</li>
+                        </ul>
+                    </td>
+                    <td>
+                        The first path parameter is for the node type:
+                        <br/>
+                        <ul>
+                            <li>.psml : Page node</li>
+                            <li>folder : Folder node</li>
+                            <li>.link : Link node</li>
+                        </ul>
+                    </td>
+                </tr>
+                <tr>
+                    <td>PATH</td>
+                    <td></td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>/default-page.psml</td>
+                    <td>
+                        The source node path to copy
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>target</td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>/Examples/default-page.psml</td>
+                    <td>
+                        The target node path to copy
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>deep</td>
+                    <td>No</td>
+                    <td></td>
+                    <td>true or false</td>
+                    <td>
+                        The flag whether copy deeply or not
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>merge</td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>true or false</td>
+                    <td>
+                        The flag whether copy with merging on the existing 
target node or not.
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>owner</td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>/Examples/default-page.psml</td>
+                    <td>
+                        The owner name.
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>copyids</td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>true or false</td>
+                    <td>
+                        The flag whether copy the fragment IDs of pages to the 
target node or not.
+                    </td>                    
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td>REST API examples</td>
+        <td>
+<source><![CDATA[
+POST 
http://localhost:8080/jetspeed/services/pagemanagement/copy/.psml/default-page.psml?_type=json
+
+With the following request form parameters:
+  target=/Examples/default-page.psml&deep=true&merge=true&copyids=false
+]]></source>            
+        </td>    
+    </tr>
+    <tr>
+        <td>JSON Response Example</td>
+        <td>
+<source><![CDATA[
+{
+  "id":"/Examples/default-page.psml",
+  "name":"default-page.psml",
+  "type":".psml",
+  "path":"/Examples/default-page.psml",
+  "title":"Welcome to Jetspeed",
+  "shortTitle":"Welcome to Jetspeed",
+  "hidden":false,
+  "url":"/Examples/default-page.psml",
+  "constraintsEnabled":true,
+  "permissionsEnabled":false,
+  "effectiveDefaultLayoutDecorator":"jetspeed",
+  "effectiveDefaultPortletDecorator":"jetspeed",
+  "dirty":false,
+  "metadata":
+    {
+      "fields":[
+        {
+          "name":"title",
+          "value":"Welcome to Jetspeed",
+          "localeString":"en"
+        },
+        {
+          "name":"title",
+          "value":"Bienvenido a Jetspeed 2",
+          "localeString":"es"
+        }
+      ]
+    }
+}
+]]></source>
+            
+        </td>    
+    </tr>
+    <tr>
+        <td>XML Response Example</td>
+        <td>
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<page>
+  <id>/Examples/default-page.psml</id>
+  <name>default-page.psml</name>
+  <type>.psml</type>
+  <path>/Examples/default-page.psml</path>
+  <title>Welcome to Jetspeed</title>
+  <shortTitle>Welcome to Jetspeed</shortTitle>
+  <hidden>false</hidden>
+  <url>/Examples/default-page.psml</url>
+  <constraintsEnabled>true</constraintsEnabled>
+  <permissionsEnabled>false</permissionsEnabled>
+  <effectiveDefaultLayoutDecorator>jetspeed</effectiveDefaultLayoutDecorator>
+  <effectiveDefaultPortletDecorator>jetspeed</effectiveDefaultPortletDecorator>
+  <dirty>false</dirty>
+  <metadata>
+    <fields>
+      <field>
+        <localeString>fr</localeString>
+        <name>title</name>
+        <value>Bienvenue a Jetspeed</value>
+      </field>
+      <field>
+        <localeString>es</localeString>
+        <name>title</name>
+        <value>Bienvenido a Jetspeed 2</value>
+      </field>
+    </fields>
+  </metadata>
+</page>
+]]></source>
+            
+        </td>
+    </tr>
+</table>
+</subsection>
+
+<subsection name='Move Node'>
+<table> 
+    <tr>
+        <td>Entry path</td>
+        <td>/move/</td>
+    </tr>
+    <tr>
+        <td>Description</td>
+        <td>Move node based on the type parameter, the path parameter and the 
form request parameters</td>
+    </tr>
+    <tr>
+        <td>HTTP Method</td>
+        <td>GET</td>
+    </tr>
+    <tr>
+        <td>Parameters</td>
+        <td>
+            <table>
+                <tr>
+                    <th>Type</th>
+                    <th>Name</th>
+                    <th>Required</th>
+                    <th>Default value</th>
+                    <th>Example value</th>
+                    <th>Description</th>
+                </tr>
+                <tr>
+                    <td>PATH</td>
+                    <td></td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>
+                        One of the following:
+                        <br/>
+                        <ul>
+                            <li>/.psml</li>
+                            <li>/folder</li>
+                            <li>/.link</li>
+                        </ul>
+                    </td>
+                    <td>
+                        The first path parameter is for the node type:
+                        <br/>
+                        <ul>
+                            <li>.psml : Page node</li>
+                            <li>folder : Folder node</li>
+                            <li>.link : Link node</li>
+                        </ul>
+                    </td>
+                </tr>
+                <tr>
+                    <td>PATH</td>
+                    <td></td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>/default-page.psml</td>
+                    <td>
+                        The source node path to move
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>target</td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>/Examples/default-page.psml</td>
+                    <td>
+                        The target node path to move
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>deep</td>
+                    <td>No</td>
+                    <td></td>
+                    <td>true or false</td>
+                    <td>
+                        The flag whether move deeply or not
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>merge</td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>true or false</td>
+                    <td>
+                        The flag whether move with merging on the existing 
target node or not.
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>owner</td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>/Examples/default-page.psml</td>
+                    <td>
+                        The owner name.
+                    </td>                    
+                </tr>
+                <tr>
+                    <td>FORM</td>
+                    <td>copyids</td>
+                    <td>Yes</td>
+                    <td></td>
+                    <td>true or false</td>
+                    <td>
+                        The flag whether move the fragment IDs of pages to the 
target node or not.
+                    </td>                    
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td>REST API examples</td>
+        <td>
+<source><![CDATA[
+POST 
http://localhost:8080/jetspeed/services/pagemanagement/move/.psml/default-page.psml?_type=json
+
+With the following request form parameters:
+  target=/Examples/default-page.psml&deep=true&merge=true&copyids=false
+]]></source>            
+        </td>    
+    </tr>
+    <tr>
+        <td>JSON Response Example</td>
+        <td>
+<source><![CDATA[
+{
+  "id":"/Examples/default-page.psml",
+  "name":"default-page.psml",
+  "type":".psml",
+  "path":"/Examples/default-page.psml",
+  "title":"Welcome to Jetspeed",
+  "shortTitle":"Welcome to Jetspeed",
+  "hidden":false,
+  "url":"/Examples/default-page.psml",
+  "constraintsEnabled":true,
+  "permissionsEnabled":false,
+  "effectiveDefaultLayoutDecorator":"jetspeed",
+  "effectiveDefaultPortletDecorator":"jetspeed",
+  "dirty":false,
+  "metadata":
+    {
+      "fields":[
+        {
+          "name":"title",
+          "value":"Welcome to Jetspeed",
+          "localeString":"en"
+        },
+        {
+          "name":"title",
+          "value":"Bienvenido a Jetspeed 2",
+          "localeString":"es"
+        }
+      ]
+    }
+}
+]]></source>
+            
+        </td>    
+    </tr>
+    <tr>
+        <td>XML Response Example</td>
+        <td>
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<page>
+  <id>/Examples/default-page.psml</id>
+  <name>default-page.psml</name>
+  <type>.psml</type>
+  <path>/Examples/default-page.psml</path>
+  <title>Welcome to Jetspeed</title>
+  <shortTitle>Welcome to Jetspeed</shortTitle>
+  <hidden>false</hidden>
+  <url>/Examples/default-page.psml</url>
+  <constraintsEnabled>true</constraintsEnabled>
+  <permissionsEnabled>false</permissionsEnabled>
+  <effectiveDefaultLayoutDecorator>jetspeed</effectiveDefaultLayoutDecorator>
+  <effectiveDefaultPortletDecorator>jetspeed</effectiveDefaultPortletDecorator>
+  <dirty>false</dirty>
+  <metadata>
+    <fields>
+      <field>
+        <localeString>fr</localeString>
+        <name>title</name>
+        <value>Bienvenue a Jetspeed</value>
+      </field>
+      <field>
+        <localeString>es</localeString>
+        <name>title</name>
+        <value>Bienvenido a Jetspeed 2</value>
+      </field>
+    </fields>
+  </metadata>
+</page>
+]]></source>
+            
+        </td>
+    </tr>
+</table>
+</subsection>
+
+</section>
 <section name='Spring Assembly'>
 <p>
 The Jetspeed REST Services are configured in the Spring Assembly.
@@ -1686,10 +2409,9 @@ Here is the core part of the Spring Asse
 </p>
 <source><![CDATA[
   <!-- 
-  The internal server factory. 
-  Each JAX-RS service component is registered by "resourceProvider" property. 
+    The internal server factory. 
+    Each JAX-RS service component is registered by "resourceProvider" 
property. 
   -->
-  
   <bean id="cxfJaxrsServerFactoryBean" 
class="org.apache.cxf.jaxrs.JAXRSServerFactoryBean">
     <meta key="j2:cat" value="default" />
     <property name="address" value="/" />
@@ -1701,19 +2423,18 @@ Here is the core part of the Spring Asse
     </property>
     <property name="resourceProviders">
       <list>
-        
-        <!-- PortletRegistryService component reference -->
         <bean class="org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider">
           <meta key="j2:cat" value="default" />
           <constructor-arg ref="jaxrsPortletRegistryService" />
         </bean>
-        
-        <!-- PageLayoutService component reference -->
         <bean class="org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider">
           <meta key="j2:cat" value="default" />
           <constructor-arg ref="jaxrsPageLayoutService" />
         </bean>
-        
+        <bean class="org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider">
+          <meta key="j2:cat" value="default" />
+          <constructor-arg ref="jaxrsPageManagementService" />
+        </bean>
       </list>
     </property>
   </bean>
@@ -1726,13 +2447,19 @@ Here is the core part of the Spring Asse
     <constructor-arg ref="org.apache.jetspeed.search.SearchEngine" />
   </bean>
   
-  <!-- Portal Page Management JAX-RS Service -->
+  <!-- Portal Page Layout Management JAX-RS Service -->
   <bean id="jaxrsPageLayoutService" 
class="org.apache.jetspeed.services.rest.PageLayoutService">
     <meta key="j2:cat" value="default" />
     <constructor-arg ref="org.apache.jetspeed.layout.PageLayoutComponent" />
     <constructor-arg 
ref="org.apache.jetspeed.components.portletregistry.PortletRegistry" />
     <constructor-arg ref="PortletActionSecurityBehavior" />
   </bean>
+  
+  <!-- Portal Page Management JAX-RS Service -->
+  <bean id="jaxrsPageManagementService" 
class="org.apache.jetspeed.services.rest.PageManagementService">
+    <meta key="j2:cat" value="default" />
+    <constructor-arg ref="org.apache.jetspeed.page.PageManager" />
+  </bean>
 ]]></source>
                
 </section>     


Reply via email to