Author: vsiveton
Date: Mon Apr  6 22:41:36 2009
New Revision: 762545

URL: http://svn.apache.org/viewvc?rev=762545&view=rev
Log:
o more doc

Added:
    
incubator/shindig/trunk/site/src/site/resources/images/samples/getFriendsHasApp.png
   (with props)
Modified:
    incubator/shindig/trunk/site/src/site/apt/getting-started.apt
    incubator/shindig/trunk/site/src/site/xdoc/overview.xml

Modified: incubator/shindig/trunk/site/src/site/apt/getting-started.apt
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/site/src/site/apt/getting-started.apt?rev=762545&r1=762544&r2=762545&view=diff
==============================================================================
--- incubator/shindig/trunk/site/src/site/apt/getting-started.apt (original)
+++ incubator/shindig/trunk/site/src/site/apt/getting-started.apt Mon Apr  6 
22:41:36 2009
@@ -3,7 +3,7 @@
  -----
  Vincent Siveton
  ------
- 2009-03-26
+ 2009-04-06
  ------
 
 ~~ Licensed to the Apache Software Foundation (ASF) under one
@@ -33,15 +33,19 @@
 
 Discovering Shindig Samples
 
-  Shindig comes with several samples. The sample container should be your 
first starting point:
+  The sample container should be your first starting point:
 
-  {{http://localhost:8080/gadgets/files/samplecontainer/samplecontainer.html}}.
+  {{http://localhost:8080/gadgets/files/samplecontainer/samplecontainer.html}}
 
-[./images/samples/samplecontainer.png] Sample Container
+  The page displayed in the figure bellow is the Shindig sample container. Its 
goal is to help you to deploy
+  and test your applications. You could also change the application state: 
changing the number and kind of friends,
+  application data, or changing the viewer (i.e. the user accessing the 
application).
 
-  You could change the <"Displaying gadget"> field with one of them and click 
on <"reset all">:
+[./images/samples/samplecontainer.png] Sample Container
 
-  * 
{{http://localhost:8080/gadgets/files/samplecontainer/examples/SocialActivitiesWorld.xml}}
+  By default, the gadget is 
{{http://localhost:8080/gadgets/files/samplecontainer/examples/SocialHelloWorld.xml}}.
+  You could try to use another gadget by specifying one of following URLs in 
the <"Displaying gadget"> field and
+  click on <"reset all">:
 
   * 
{{http://localhost:8080/gadgets/files/samplecontainer/examples/SocialCajaWorld.xml}}
 
@@ -51,6 +55,16 @@
 
   []
 
+  By default, all the datas are in the 
{{http://localhost:8080/gadgets/files/samplecontainer/../sampledata/canonicaldb.json}}.
+  You could try to use another state by specifying one of following URLs in 
the <"Using state"> field and
+  click on <"reset all">:
+
+  * 
{{http://localhost:8080/gadgets/files/samplecontainer/state-basicfriendlist.xml}}
+
+  * 
{{http://localhost:8080/gadgets/files/samplecontainer/state-smallfriendlist.xml}}
+
+  []
+
   You could also discover other samples on {{http://localhost:8080}}:
 
   * {{http://localhost:8080/gadgets/files/container/sample1.html}}
@@ -75,37 +89,230 @@
 
  []
 
+Playing With Shindig
+
+  This part is mainly to play with OpenSocial APIs.
+
+* OpenSocial REST
+
+  Shindig implements the 
{{{http://docs.google.com/View?docid=dcc2jvzt_37hdzwkmf8}OpenSocial Restful 
Protocol}} based
+  on {{{http://bitworking.org/projects/atom/rfc5023.html}AtomPub}}. It 
supports XML and JSON formats in addition to
+  Atom format XML. The following REST samples will focus on the Read only 
operation (GET). All sample data are
+  located in 
{{http://localhost:8080/gadgets/files/sampledata/canonicaldb.json}}.
+
+  * Getting all people connected to <john.doe>:
+
+    * URL: {{http://localhost:8080/social/rest/people/john.doe/@all}}
+
+    * Result:
+
++-----+
+{"entry":[{"id":"jane.doe","name":{"formatted":"Jane 
Doe","givenName":"Jane","familyName":"Doe"}},
+{"id":"george.doe","name":{"formatted":"George 
Doe","givenName":"George","familyName":"Doe"}},
+{"id":"maija.m","name":{"formatted":"Maija 
Meikäläinen","givenName":"Maija","familyName":"Meikäläinen"}}],"totalResults":3,"startIndex":0}
++-----+
+
+    []
+
+  * Getting the profile of <john.doe>:
+
+    * URL: {{http://localhost:8080/social/rest/people/john.doe/@self}}
+
+    * Result:
+
++-----+
+{"entry":{"id":"john.doe","name":{"formatted":"John 
Doe","givenName":"John","familyName":"Doe"}}}
++-----+
+
+    []
+
+  * Getting all the friends of <jane.doe>:
+
+    * URL: {{http://localhost:8080/social/rest/people/jane.doe/@friends}}
+
+    * Result:
+
++-----+
+{"entry":[{"id":"john.doe","name":{"formatted":"John 
Doe","givenName":"John","familyName":"Doe"}}],"totalResults":1,"startIndex":0}
++-----+
+
+    []
+
+  * Getting the activities of <john.doe>:
+
+    * URL: {{http://localhost:8080/social/rest/activities/john.doe/@self}}
+
+    * Result:
+
++-----+
+{"entry":[{"title":"yellow","userId":"john.doe","id":"1","body":"what a 
color!"}],"totalResults":1,"startIndex":0}
++-----+
+
+    []
+
+  * Getting the activities of <john.doe> using a <<security token>>:
+
+    * URL: 
{{http://localhost:8080/social/rest/people/jane.doe/@friends?st=a:a:a:a:a:a:a}}
+
+    * Result:
+
++-----+
+{"entry":[{"title":"yellow","userId":"john.doe","id":"1","body":"what a 
color!"}],"totalResults":1,"startIndex":0}
++-----+
+
+    []
+
+  []
+
+  For more information on the URI templates, please read 
{{{./overview.html#OpenSocial_REST}OpenSocial REST}} section
+  in the overview page.
+
+* OpenSocial JSON-RPC
+
+  Shindig also implements 
{{{http://docs.google.com/View?docid=dhjrqr8t_4cwzqq7gh}OpenSocial RPC 
Protocol}}. The
+  following RPC samples are similar to the REST samples.
+
+  * Getting the profile of <john.doe>:
+
+    * URL: 
{{http://localhost:8080/social/rpc?method=people.get&userId=john.doe&group...@self}}
+
+    * Result:
+
++-----+
+{"data":{"id":"john.doe","name":{"formatted":"John 
Doe","givenName":"John","familyName":"Doe"}}}
++-----+
+
+    []
+
+  * Getting all the friends of <jane.doe>:
+
+    * URL: 
{{http://localhost:8080/social/rpc?method=people.get&userId=john.doe&group...@all}}
+
+    * Result:
+
++-----+
+{"data":{"list":[{"id":"jane.doe","name":{"formatted":"Jane 
Doe","givenName":"Jane","familyName":"Doe"}},
+{"id":"george.doe","name":{"formatted":"George 
Doe","givenName":"George","familyName":"Doe"}},
+{"id":"maija.m","name":{"formatted":"Maija 
Meikäläinen","givenName":"Maija","familyName":"Meikäläinen"}}],"totalResults":3,"startIndex":0}}
++-----+
+
+    []
+
+  []
+
+  For more information on the URI templates, please read 
{{{./overview.html#OpenSocial_JSON-RPC}OpenSocial JSON-RPC}} section
+  in the overview page.
+
 Go Further: Building a Container Supporting OpenSocial
 
-* Create Your Own Gadget Renderer
+  You are now ready to create your first OpenSocial application!
+
+* Create Your First OpenSocial Gadget
 
   Shindig implements
   
{{{http://www.opensocial.org/Technical-Resources/opensocial-spec-v08/gadget-spec.html}Gadgets
 Specification}}.
   Gadgets are web-based software components based on HTML, CSS, and 
JavaScript. Please read
   {{{http://code.google.com/apis/gadgets/docs/gs.html}Getting Started: 
gadgets.* API}} to learn more.
 
-  Typically, an Opensocial gadget will be composed by <metadata>, <gadget 
features>, <user preferences>, <message bundles>
-  and <content>. Here is a small snippet:
+  Typically, an Opensocial gadget is similar to a Google Gadget since its 
should respect the Google Gadgets
+  specifications. Here is a small snippet:
 
 +------+
 <?xml version="1.0" encoding="UTF-8"?>
 <Module>
-  <ModulePrefs title="Hello World">
+  <ModulePrefs title="A Title">
     <Require feature="opensocial-0.8"/>
     ...
   </ModulePrefs>
   <Content type="html">
      <![CDATA[
-...
+     <script type="text/javascript">
+       ...
+       gadgets.util.registerOnLoadHandler(init);
+     </script>
+     <div id="id"/>
+     ...
      ]]>
   </Content>
 </Module>
 +------+
 
-  You could see a real gadget
-  
{{{http://svn.apache.org/repos/asf/incubator/shindig/trunk/java/server/src/test/resources/endtoend/fetchPeopleTest.xml}here}}.
+  This XML file describes the OpenSocial application.
+
+  * The <ModulePrefs> section contains application metadata, such as title and 
required libraries. Also, you would
+  notice the <require> element which includes the OpenSocial APIs as feature. 
Always declaring this requirement make
+  your applications as an OpenSocial application. Others features supported by 
Shindig are described
+  {{{./developers/features/index.html}here}}.
+
+  * The application contents live within the <Content> section. You should 
include additional JavaScript that contains
+  the application logic and an handler to fire an <init()> function at launch 
time with the
+  <gadgets.util.registerOnLoadHandler()> function. Finally, you will include 
an HTML section to display the result.
+
+  []
+
+  To access data from the Shindig, you have to create a <DataRequest> object 
using the <opensocial.newDataRequest()>
+  call.
+
+  Your first application will enumerate the friends currently belonging to the 
network of the user accessing the
+  application. The following snippet is the code of
+  
{{http://localhost:8080/gadgets/files/samplecontainer/examples/getFriendsHasApp.xml}}.
+
++-----+
+<?xml version="1.0" encoding="UTF-8"?>
+<Module>
+  <ModulePrefs title="List Friends using HAS_APP filter Example">
+    <Require feature="opensocial-0.7"/>
+  </ModulePrefs>
+  <Content type="html">
+  <![CDATA[
+    <script type="text/javascript">
+      /**
+       * Request for friend information.
+       */
+      function getData() {
+        var req = opensocial.newDataRequest();
+
+        
req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER), 
'owner');
+        var params = {};
+        params[opensocial.DataRequest.PeopleRequestFields.MAX] = 50;
+        params[opensocial.DataRequest.PeopleRequestFields.FILTER] = 
opensocial.DataRequest.FilterType.HAS_APP;
+        params[opensocial.DataRequest.PeopleRequestFields.SORT_ORDER] = 
opensocial.DataRequest.SortOrder.NAME;
+        
req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.OWNER_FRIENDS, 
params), 'ownerFriends');
+        req.send(onLoadFriends);
+      };
+
+      /**
+       * Parses the response to the friend information request and generates
+       * html to list the friends along with their display name.
+       *
+       * @param {Object} dataResponse Friend information that was requested.
+       */
+      function onLoadFriends(dataResponse) {
+        var owner = dataResponse.get('owner').getData();
+        var html = 'Friends of ' + owner.getDisplayName();
+        html += ':<br><ul>';
+        var ownerFriends = dataResponse.get('ownerFriends').getData();
+        ownerFriends.each(function(person) {
+          html += '<li>' + person.getDisplayName() + '</li>';
+        });
+        html += '</ul>';
+        document.getElementById('message').innerHTML = html;
+      };
+
+      gadgets.util.registerOnLoadHandler(getData);
+    </script>
+    <div id="message"> </div>
+  ]]>
+  </Content>
+</Module>
++-----+
+
+  The following is the result of 
{{http://localhost:8080/gadgets/files/samplecontainer/examples/getFriendsHasApp.xml}}
+  in the sample container 
{{http://localhost:8080/gadgets/files/samplecontainer/samplecontainer.html}}:
+
+[./images/samples/getFriendsHasApp.png] Get Friends
 
-  All features supported by Shindig are described 
{{{./developers/features/index.html}here}}.
+  This is your first overview of the APIs that deals with people and 
relationships.
 
 * Create Your Own OpenSocial Back-end
 

Added: 
incubator/shindig/trunk/site/src/site/resources/images/samples/getFriendsHasApp.png
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/site/src/site/resources/images/samples/getFriendsHasApp.png?rev=762545&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/shindig/trunk/site/src/site/resources/images/samples/getFriendsHasApp.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Modified: incubator/shindig/trunk/site/src/site/xdoc/overview.xml
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/site/src/site/xdoc/overview.xml?rev=762545&r1=762544&r2=762545&view=diff
==============================================================================
--- incubator/shindig/trunk/site/src/site/xdoc/overview.xml (original)
+++ incubator/shindig/trunk/site/src/site/xdoc/overview.xml Mon Apr  6 22:41:36 
2009
@@ -25,7 +25,7 @@
   <properties>
     <title>Overview Of Shindig</title>
     <author>Vincent Siveton</author>
-    <date>2009-03-25</date>
+    <date>2009-04-06</date>
   </properties>
   <body>
     <section name="Introduction">
@@ -74,18 +74,18 @@
         <ul>
           <li>Gadget container (gadget.js), fully opensocial gadget 
compliant;</li>
           <li>OpenSocial container;</li>
-          <li><a href="http://www.json.org/";>JSON</a>, Restful container and
-            <a href="http://code.google.com/p/google-caja/";>Caja</a> 
support.</li>
+          <li><a href="http://www.json.org/";>JSON</a>, Restful container and <a
+              href="http://code.google.com/p/google-caja/";>Caja</a> 
support.</li>
         </ul>
         <p>
           <img src="./images/shindig-client.jpg" alt="Shindig Client Flow"/>
         </p>
       </subsection>
-    </section>
 
-    <section name="OpenSocial Flow">
-      <p>The following is a typical flow to get a list of Friends.</p>
-      <subsection name="Server Side Flow">
+      <subsection name="Put It Together: OpenSocial Flow">
+        <p>The following is a typical flow to get a list of Friends.</p>
+
+        <h4>Server Side Flow</h4>
         <ol>
           <li>Call JsonRpcServlet;</li>
           <li>Get the appropriate handler;</li>
@@ -102,8 +102,8 @@
           <li>Get the JSON object from the DB;</li>
           <li>Return to the client.</li>
         </ol>
-      </subsection>
-      <subsection name="Client Side Flow">
+
+        <h4>Client Side Flow</h4>
         <ol>
           <li>Create request object;</li>
           <li>Populate request parameters;</li>
@@ -112,13 +112,285 @@
       </subsection>
     </section>
 
+    <section name="OpenSocial APIs">
+      <p>Shindig implements several OpenSocial APIs:</p>
+      <ul>
+        <li><b>OpenSocial REST</b>: for server to server communication</li>
+        <li><b>OpenSocial JSON-RPC</b>: for gadget to server communication</li>
+        <li><b>Javascript</b>: for gadgets</li>
+      </ul>
+
+      <subsection name="OpenSocial REST">
+        <p>There are four types of REST services which can be exposed by 
Shindig:
+          <i>people</i>, <i>activities</i>, <i>appdata</i> and 
<i>groups</i>.There are URI
+          Templates defined for each type of service.</p>
+        <p>For instance, <a 
href="http://localhost:8080/social/rest/people/john.doe";
+          >http://localhost:8080/social/rest/people/john.doe</a></p>
+        <table>
+          <thead>
+            <tr>
+              <th>Type</th>
+              <th>Spec.</th>
+              <th>URI-Template</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr>
+              <td>
+                <b>People</b>
+              </td>
+              <td>
+                <a
+                  
href="http://docs.google.com/View?docid=dcc2jvzt_37hdzwkmf8#ssc:290";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>/social/rest/people/{guid}/@all</dt>
+                  <dd>Collection of all people connected to user {guid}</dd>
+                  <dt>/social/rest/people/{guid}/@all</dt>
+                  <dd>Collection of all people connected to user {guid}</dd>
+                  <dt>/social/rest/people/{guid}/@friends</dt>
+                  <dd>Collection of all friends of user {guid}; subset of 
@all</dd>
+                  <dt>/social/rest/people/{guid}/{groupid}</dt>
+                  <dd>Collection of all people connected to user {guid} in 
group
+                    {groupid}</dd>
+                  <dt>/social/rest/people/{guid}/@all/{pid}</dt>
+                  <dd>Individual person record for a specific person known to
+                    {guid}; shows {guid}'s view of {pid}.</dd>
+                  <dt>/social/rest/people/{guid}/@self</dt>
+                  <dd>Profile record for user {guid}</dd>
+                  <dt>/social/rest/people/@me/@self</dt>
+                  <dd>Profile record for requestor</dd>
+                </dl>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <b>Activities</b>
+              </td>
+              <td>
+                <a
+                  
href="http://docs.google.com/View?docid=dcc2jvzt_37hdzwkmf8#ssc:315";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>/social/rest/activities/{guid}/@self</dt>
+                  <dd>Collection of activities generated by given user</dd>
+                  <dt>/social/rest/activities/{guid}/@friends</dt>
+                  <dd>Collection of activities for friends of the given user
+                    {guid}</dd>
+                  <dt>/social/rest/activities/{guid}/{groupid}</dt>
+                  <dd>Collection of activities for people in group {groupid}
+                    belonging to given user {uid}</dd>
+                  <dt>/social/rest/activities/{guid}/@self/{activityid}</dt>
+                  <dd>Individual activity resource; usually discovered from
+                    collection</dd>
+                </dl>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <b>Appdata</b>
+              </td>
+              <td>
+                <a
+                  
href="http://docs.google.com/View?docid=dcc2jvzt_37hdzwkmf8#ssc:328";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>/social/rest/appdata/{guid}/@self/{appid}</dt>
+                  <dd>All app data for user {guid}, app {appid}</dd>
+                  <dt>/social/rest/appdata/{guid}/@friends/{appid}</dt>
+                  <dd>All app data for friends of user {guid} and app {appid};
+                    read-only (only GET and HEAD supported)}</dd>
+                  
<dt>/social/rest/appdata/{guid}/@self/{appid}?fields=count</dt>
+                  <dd>Just the count field for user {guid}, app {appid}</dd>
+                </dl>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <b>Group</b>
+              </td>
+              <td>
+                <a
+                  
href="http://docs.google.com/View?docid=dcc2jvzt_37hdzwkmf8#ssc:310";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>/social/rest/groups/{guid}</dt>
+                  <dd>Collection of groups associated with user {guid}</dd>
+                </dl>
+              </td>
+            </tr>
+          </tbody>
+        </table>
+      </subsection>
+
+      <subsection name="OpenSocial JSON-RPC">
+        <p>Shindig implements all required RPC services: <i>People</i>, 
<i>Activities</i>,
+            <i>Appdata</i>, <i>Messages</i> and <i>System</i>.</p>
+        <p><b>Note</b>: Shindig doesn't implement all methods defined in <a
+            
href="http://docs.google.com/View?docid=dhjrqr8t_4cwzqq7gh#tqgg1";>OpenSocial
+            RPC Protocol, Section 8, Services</a> but these missing methods 
are not
+          required to be OpenSocial compliant.</p>
+        <table>
+          <thead>
+            <tr>
+              <th>Type</th>
+              <th>Spec.</th>
+              <th>Service method</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr>
+              <td>
+                <b>People</b>
+              </td>
+              <td>
+                <a 
href="http://docs.google.com/View?docid=dhjrqr8t_4cwzqq7gh#livr1";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>people.get</dt>
+                  <dd>Retrieve a single person or list of opensocial.Person
+                    objects.</dd>
+                  <dt>people.supportedFields</dt>
+                  <dd>List the supported fields for this service.</dd>
+                </dl>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <b>Activities</b>
+              </td>
+              <td>
+                <a 
href="http://docs.google.com/View?docid=dhjrqr8t_4cwzqq7gh#id2e";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>activities.create</dt>
+                  <dd>Support creating opensocial.Activity objects as the 
targets
+                    of a relationship with the specified user.</dd>
+                  <dt>activities.get</dt>
+                  <dd>Retrieve a one or list of opensocial.Activity 
objects.</dd>
+                  <dt>activities.update</dt>
+                  <dd>Support updating opensocial.Activity objects as the 
targets
+                    of a relationship with the specified user.</dd>
+                  <dt>activities.delete</dt>
+                  <dd>Support removing the relationship between an
+                    opensocial.Activity and the specified user.</dd>
+                  <dt>activities.supportedFields</dt>
+                  <dd>List the supported fields for this service.</dd>
+                </dl>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <b>Appdata</b>
+              </td>
+              <td>
+                <a 
href="http://docs.google.com/View?docid=dhjrqr8t_4cwzqq7gh#j4b90";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>appdata.create</dt>
+                  <dd>Support creating key-value pairs in a user appdata.<b>Not
+                      defined in the spec.</b></dd>
+                  <dt>appdata.get</dt>
+                  <dd>Retrieve a map of key-value pairs for the list of 
specified
+                    keys.</dd>
+                  <dt>appdata.update</dt>
+                  <dd>Add or replace key-value pairs stored in a users appdata
+                    with the key-vaues in the data parameter.</dd>
+                  <dt>appdata.delete</dt>
+                  <dd>Remove the specifed keys from a users appdata and 
returned
+                    the values associated with those removed keys.</dd>
+                </dl>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <b>Messages</b>
+              </td>
+              <td>
+                <a 
href="http://docs.google.com/View?docid=dhjrqr8t_4cwzqq7gh#c16v";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>messages.create</dt>
+                  <dd>Support creating opensocial.Message objects. <b>Not 
defined
+                      in the spec.</b></dd>
+                  <dt>messages.get</dt>
+                  <dd>etrieve a one or list of opensocial.Message objects. 
<b>Not
+                      defined in the spec.</b></dd>
+                  <dt>messages.modify</dt>
+                  <dd>Support updating opensocial.ActivityMessage objects. 
<b>Not
+                      defined in the spec.</b></dd>
+                  <dt>messages.delete</dt>
+                  <dd>Support removing opensocial.ActivityMessage objects. 
<b>Not
+                      defined in the spec.</b></dd>
+                </dl>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <b>System</b>
+              </td>
+              <td>
+                <a 
href="http://docs.google.com/View?docid=dhjrqr8t_4cwzqq7gh#q:_q1";
+                  >Spec.</a>
+              </td>
+              <td>
+                <dl>
+                  <dt>system.listMethods</dt>
+                  <dd>Returns an array of all methods supported by the endpoint
+                    including the system methods.</dd>
+                  <dt>messages.methodSignatures</dt>
+                  <dd>Returns a method signature describing the types of the
+                    parameters. <b>Not implemented yet.</b></dd>
+                  <dt>messages.methodHelp</dt>
+                  <dd>Returns a textual description of the operation 
identified by
+                    the methodName parameter. <b>Not implemented yet.</b></dd>
+                </dl>
+              </td>
+            </tr>
+          </tbody>
+        </table>
+      </subsection>
+
+      <subsection name="OpenSocial JavaScript">
+        <p>Shindig includes all JavaScript APIs as described in <a
+            
href="http://www.opensocial.org/Technical-Resources/opensocial-spec-v08/opensocial-reference08";
+            >OpenSocial API Reference</a> and <a
+            
href="http://www.opensocial.org/Technical-Resources/opensocial-spec-v08/gadgets-reference08";
+            >Gadgets API Reference</a>.</p>
+        <p>See also the <a 
href="./shindig-1.1.x/shindig-features/jsdoc/index.html"
+            >JavascriptDoc for Shindig 1.1.x.</a></p>
+      </subsection>
+    </section>
+
     <section name="Resources">
       <ul>
         <li><a 
href="http://rajdeep.dua.googlepages.com/shindigPHP-overview-tidy_img.html";>
-          Shindig : An Architectural Overview (PHP Version)</a> by Rajdeep Dua.
-        </li>
-        <li><a 
href="http://chrisschalk.com/shindig_docs/rajdeep/shindig-overview/onjava-shindig-overview-tidy.html";>
-          Architectural Overview of Shindig , an OpenSocial Reference 
Implementation</a> by Rajdeep Dua.
+            Shindig : An Architectural Overview (PHP Version)</a> by Rajdeep 
Dua. </li>
+        <li><a
+            
href="http://chrisschalk.com/shindig_docs/rajdeep/shindig-overview/onjava-shindig-overview-tidy.html";
+            > Architectural Overview of Shindig , an OpenSocial Reference
+          Implementation</a> by Rajdeep Dua. </li>
+        <li><a 
href="http://sites.google.com/site/opensocialarticles/Home/shindig-rest-java";
+            >Overview of REST Implementation in Shindig - Java Version</a> by 
Rajdeep
+          Dua. </li>
+        <li>
+          <a href="http://www.opensocial.org/page/specs-1";>OpenSocial 
specifications</a>
         </li>
       </ul>
     </section>


Reply via email to