You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2010/07/02 01:51:36 UTC

svn commit: r959815 - in /shindig/trunk: content/samplecontainer/examples/ActivityStreams/ extras/src/main/java/org/apache/shindig/extras/as/core/model/ extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ extras/src/main/java/org/apache...

Author: lindner
Date: Thu Jul  1 23:51:35 2010
New Revision: 959815

URL: http://svn.apache.org/viewvc?rev=959815&view=rev
Log:
SHINDIG-1329 | Updates to ActivityStream support

Added:
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java
Removed:
    shindig/trunk/content/samplecontainer/examples/ActivityStreams/OpenSocialAPI.js
Modified:
    shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java
    shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java

Modified: shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml
URL: http://svn.apache.org/viewvc/shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml (original)
+++ shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml Thu Jul  1 23:51:35 2010
@@ -25,115 +25,46 @@
 	</ModulePrefs>
 	
 	<Content type="html">
-	<![CDATA[	 
-		<script type="text/javascript" src="OpenSocialAPI.js"></script>
+	<![CDATA[
+		<script type="text/javascript" src="OpenSocialWrapper.js"></script>
+		<script type="text/javascript" src="ActivityStreamsRender.js"></script>
 		
 		<script type="text/javascript">
-			// HTML for rendering
-			var htmlWelcome = "";
-			var htmlActivities = "";
-			var htmlActivityEntries = "";
-			var htmlCreateActivityEntry = "";
-			var htmlDeleteActivityEntry = "";
-			var htmlActivityEntryId = "";
+			social = new OpenSocialWrapper();
+			render = new ActivityStreamsRender();
 			
-			var viewer = null;
-			var owner = null;
-			
-			// ================= PEOPLE =================
-			function displayWelcome() {
-				OpenSocialAPI.loadPeople(function(response) {
-					viewer = response.viewer;
-					owner = response.owner;
-					var viewerFriends = response.viewerFriends;
-					var ownerFriends = response.ownerFriends;
-					
-					htmlWelcome = "<h1>Welcome " + viewer.name.formatted + "!</h1>";
-					htmlWelcome += "You are viewing " + owner.name.formatted + "'s data. <br><br>";
-					htmlWelcome += "Here is a list of your friends: <br>";
-					htmlWelcome += "<lu>";
-					for(i = 0; i < viewerFriends.list.length; i++) {
-						htmlWelcome += "<li>" + viewerFriends.list[i].name.formatted + "</li>";
-					}
-					htmlWelcome += "</lu>";
-					refreshHTML();
-				});
+			// TODO: move this stuff into ActivityStreamRender (if you can...)
+			// Renders retrieval of an ActivityEntry by ID
+			function renderActivityEntryId(div, callback) {
+				var html = "<h2>Work with an ActivityEntry</h2>";
+				html += "ActivityEntry ID: <input type='text' size=40 id='activityEntryId'>";
+				html += "<input type='button' value='Retrieve' onclick='retrieveActivityEntryId()'>";
+				html += "<input type='button' value='Delete' onclick='deleteActivityEntryId()'><br>";
+				html += "Note: you must be the owner of the ActivityEntry to retrieve it.";
+				html += "<textarea id='activityEntryText' cols=75 rows=10>No entry to display...</textarea><br>";
+				document.getElementById(div).innerHTML = html;
+				callback();
 			}
 			
-			// ================= ACTIVITIES =================
-			function displayActivities() {
-				OpenSocialAPI.loadActivities(function(response) {
-					var viewerActivities = response.viewerActivities.list;
-					var ownerActivities = response.ownerActivities.list;
-					
-					htmlActivities = "<h1>Activities</h1>";
-					htmlActivities += "Demonstrates use of the Activities service in Apache Shindig.  The ActivityStreams service does not interfere with this service.<br><br>";
-					htmlActivities += "Activities for you and " + owner.name.formatted + ":<br>";
-					htmlActivities += "<table border='1'>";
-					htmlActivities += "<tr>";
-					htmlActivities += "<td>Name</td>";
-					htmlActivities += "<td>Title</td>";
-					htmlActivities += "<td>Body</td>";
-					htmlActivities += "<td>Images</td>";
-					htmlActivities += "</tr>"
-					processActivities(viewerActivities);
-					processActivities(ownerActivities);
-					htmlActivities += "</table>";
-					refreshHTML();
+			// Deletes the activity entry
+			function deleteActivityEntryId() {
+				social.deleteActivityEntryById(document.getElementById('activityEntryId').value, function(response) {
+					document.getElementById('activityEntryText').value = 'No entry to display...';
+					render.renderActivityEntries('activityEntryies', refresh);
 				});
 			}
-			function processActivities(activities) {
-				for(idx = 0; idx < activities.length; idx++) {
-					htmlActivities += "<tr>";
-					htmlActivities += "<td>" + activities[idx].userId + "</td>";
-					htmlActivities += "<td>" + activities[idx].title + "</td>";
-					htmlActivities += "<td>" + activities[idx].body + "</td>";
-					var mediaItems = activities[idx].mediaItems;
-					if(mediaItems != null) {
-						for(itemIdx = 0; itemIdx < mediaItems.length; itemIdx++) {
-							if(mediaItems[itemIdx].type == "image") {
-								htmlActivities += "<td><img src='" + mediaItems[itemIdx].url + "' width=150 height=150/></td>";
-							}
-						}
-					}
-					htmlActivities += "</tr>";
-				}
-			}
 			
-			// ================= ACTIVITYSTREAMS =================
-			function displayActivityEntries() {
-				OpenSocialAPI.loadActivityEntries(function(response) {
-					viewerEntries = response.viewerEntries.list;
-					ownerEntries = response.ownerEntries.list;
-					htmlActivityEntries = "<h2>ActivityEntries</h2>";
-					processActivityEntries(viewerEntries);
-					processActivityEntries(ownerEntries);
-					if (viewerEntries.length + ownerEntries.length == 0) {
-						htmlActivityEntries += "<tr><td>No entries to show!</td></tr>";
-					}
-					htmlActivityEntries += "</table><br><br>";
-					refreshHTML();
+			// Retrieves the activity entry
+			function retrieveActivityEntryId() {
+				social.getActivityEntryById(document.getElementById('activityEntryId').value, function(response) {
+					document.getElementById('activityEntryText').value = JSON.stringify(response);
 				});
 			}
-			function processActivityEntries(entries) {
-				for(idx = 0; idx < entries.length; idx++) {
-					if(entries[idx].permalink && entries[idx].permalink != "null") {
-						htmlActivityEntries += "<h3><a href='" + entries[idx].permalink + "'>" + entries[idx].title + "</a></h3>";
-					} else {
-						htmlActivityEntries += "<h3>" + entries[idx].title + "</h3>";
-					}
-					htmlActivityEntries += "ID: " + entries[idx].id + "<br>";
-					htmlActivityEntries += "Actor: " + entries[idx].actor.displayName + "<br>";
-					htmlActivityEntries += "Posted: " + entries[idx].postedTime + "<br>";
-					if(entries[idx].body && entries[idx].body != "null") {
-						htmlActivityEntries += "Body: " + entries[idx].body + "<br>";
-					}
-				}
-			}
 			
-			function displayCreateActivityEntry() {
-				htmlCreateActivityEntry = "<h1>ActivityStreams</h1>";
-				htmlCreateActivityEntry += "Demonstrates use of the ActivityStream service in Apache Shindig.  This implementation follows the current JSON draft specfication: http://activitystrea.ms/head/json-activity.html<br>";
+			// Creation form for activity entry
+			function renderCreateActivityEntry(div, callback) {
+				var htmlCreateActivityEntry = "<h1>ActivityStreams</h1>";
+				htmlCreateActivityEntry += "Demonstrates use of the ActivityStream service in Apache Shindig.  This implementation follows the JSON draft specfication: http://activitystrea.ms/head/json-activity.html<br>";
 				htmlCreateActivityEntry += "<h2>Create an ActivityEntry</h2>";
 				htmlCreateActivityEntry += "<table>";
 				htmlCreateActivityEntry += "<tr>";
@@ -145,12 +76,12 @@
 				htmlCreateActivityEntry += "<td><input type='text' size=50 id='activityEntryBody'></td>"
 				htmlCreateActivityEntry += "</tr>";
 				htmlCreateActivityEntry += "<tr>";
-				htmlCreateActivityEntry += "<td>Permalink</td>";
-				htmlCreateActivityEntry += "<td><input type='text' size=50 id='activityEntryPermalink'></td>"
+				htmlCreateActivityEntry += "<td>Standard Link</td>";
+				htmlCreateActivityEntry += "<td><input type='text' size=50 id='activityEntryStandardLink'></td>"
 				htmlCreateActivityEntry += "</tr>";
 				htmlCreateActivityEntry += "<tr>";
-				htmlCreateActivityEntry += "<td>Object Display Name</td>";
-				htmlCreateActivityEntry += "<td><input type='text' size=50 id='activityObjectDisplayName'></td>"
+				htmlCreateActivityEntry += "<td>Object Name</td>";
+				htmlCreateActivityEntry += "<td><input type='text' size=50 id='activityObjectName'></td>"
 				htmlCreateActivityEntry += "</tr>";
 				htmlCreateActivityEntry += "<tr>";
 				htmlCreateActivityEntry += "<td>Object Summary</td>";
@@ -207,6 +138,8 @@
 				htmlCreateActivityEntry += "</table>";
 				htmlCreateActivityEntry += "<input type='button' value='Submit' onclick='createActivityEntry()'>";
 				htmlCreateActivityEntry += "<br><br>";
+				document.getElementById(div).innerHTML = htmlCreateActivityEntry;
+				callback();
 			}
 			function createActivityEntry() {
 				// Gather selected verbs
@@ -233,62 +166,42 @@
 				
 				var title = blankToNull(document.getElementById('activityEntryTitle').value);
 				var body = blankToNull(document.getElementById('activityEntryBody').value)
-				var permalink = blankToNull(document.getElementById('activityEntryPermalink').value);
-				var objectDisplayName = blankToNull(document.getElementById('activityObjectDisplayName').value);
+				var standardLink = blankToNull(document.getElementById('activityEntryStandardLink').value);
+				var objectName = blankToNull(document.getElementById('activityObjectName').value);
 				var objectSummary = blankToNull(document.getElementById('activityObjectSummary').value);
 				var objectImage = blankToNull(document.getElementById('activityObjectImage').value);
 				var objectPermalink = blankToNull(document.getElementById('activityObjectPermalink').value);
-				OpenSocialAPI.postActivityEntry(title, body, permalink, selVerbs, viewer.id, viewer.name.formatted,
-												objectDisplayName, objectSummary, objectImage, objectPermalink, selTypes,
+				social.postActivityEntry(title, body, standardLink, selVerbs, viewer.id, viewer.name.formatted,
+												objectName, objectSummary, objectImage, objectPermalink, selTypes,
 												function(response) {
-					displayActivityEntries();
+					render.renderActivityEntries('activityEntries', refresh);
 				});
 			}
 			function blankToNull(str) {
 				return (str == '' ? null : str);
 			}
-			
-						
-			function displayActivityEntryId() {
-				htmlActivityEntryId = "<h2>Work with an ActivityEntry</h2>";
-				htmlActivityEntryId += "ActivityEntry ID: <input type='text' size=40 id='activityEntryId'>";
-				htmlActivityEntryId += "<input type='button' value='Retrieve' onclick='retrieveActivityEntryId()'>";
-				htmlActivityEntryId += "<input type='button' value='Delete' onclick='deleteActivityEntryId()'><br>";
-				htmlActivityEntryId += "Note: you must be the owner of the ActivityEntry to retrieve it.";
-				htmlActivityEntryId += "<textarea id='activityEntryText' cols=75 rows=10>No entry to display...</textarea><br>";
-			}
-			function deleteActivityEntryId() {
-				OpenSocialAPI.deleteActivityEntryById(document.getElementById('activityEntryId').value, function(response) {
-					displayActivityEntries();
-					document.getElementById('activityEntryText').value = 'No entry to display...';
-				});
-			}
-			function retrieveActivityEntryId() {
-				OpenSocialAPI.getActivityEntryById(document.getElementById('activityEntryId').value, function(response) {
-					document.getElementById('activityEntryText').value = JSON.stringify(response);
-				});
-			}
 		
-			// ================= SET UP =================
-			// Rewrites the HTML content
-			function refreshHTML() {
-				document.getElementById('message').innerHTML = htmlWelcome + htmlActivities + htmlCreateActivityEntry + htmlActivityEntryId + htmlActivityEntries;
+			// Adjusts the window height
+			function refresh() {
 				gadgets.window.adjustHeight();
 			}
 		
 			// Initializes the gadget
 			function init() {
-				displayWelcome();
-				displayActivities();
-				displayCreateActivityEntry();
-				displayActivityEntryId();
-				displayActivityEntries();
-				refreshHTML();
+				render.renderWelcome('welcome', refresh);
+				render.renderActivities('activities', refresh);
+				render.renderActivityEntries('activityEntries', refresh);
+				renderActivityEntryId('htmlGetEntry', refresh);
+				renderCreateActivityEntry('htmlCreateEntry', refresh);
 			}
 			
 			gadgets.util.registerOnLoadHandler(init);
 		</script>
-		<div id='message'></div>
+		<div id='welcome'></div>
+		<div id='activities'></div>
+		<div id='htmlCreateEntry'></div>
+		<div id='htmlGetEntry'></div>
+		<div id='activityEntries'></div>
 	]]>
 	</Content>
 </Module>
\ No newline at end of file

Added: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java?rev=959815&view=auto
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java (added)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java Thu Jul  1 23:51:35 2010
@@ -0,0 +1,30 @@
+package org.apache.shindig.extras.as.core.model;
+
+import org.apache.shindig.extras.as.opensocial.model.ActionLink;
+
+public class ActionLinkImpl implements ActionLink {
+
+	private String target;
+	private String caption;
+	
+	public ActionLinkImpl() {
+		this.target = null;
+		this.caption = null;
+	}
+
+	public String getTarget() {
+		return target;
+	}
+
+	public void setTarget(String target) {
+		this.target = target;
+	}
+
+	public String getCaption() {
+		return caption;
+	}
+
+	public void setCaption(String caption) {
+		this.caption = caption;
+	}
+}

Modified: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java (original)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java Thu Jul  1 23:51:35 2010
@@ -25,107 +25,117 @@ import org.apache.shindig.extras.as.open
 
 public class ActivityEntryImpl implements ActivityEntry {
 
-	private String id;
-	private String streamFavicon;
-	private String postedTime;
+	private String icon;
+	private String time;
 	private ActivityObject actor;
 	private List<String> verb;
 	private ActivityObject object;
 	private ActivityObject target;
-	private String permalink;
+	private ActivityObject generator;
+	private ActivityObject serviceProvider;
 	private String title;
 	private String body;
+	private List<String> standardLink;
 	
 	public ActivityEntryImpl() {
-		this.id = null;
-		this.streamFavicon = null;
-		this.postedTime = null;
+		this.icon = null;
+		this.time = null;
 		this.actor = null;
 		this.verb = null;
 		this.object = null;
 		this.target = null;
-		this.permalink = null;
+		this.generator = null;
+		this.serviceProvider = null;
 		this.title = null;
 		this.body = null;
+		this.standardLink = null;
 	}
-	
-	public void setId(String id) {
-		this.id = id;
-	}
-	
-	public String getId() {
-		return id;
+
+	public String getIcon() {
+		return icon;
 	}
-	
-	public void setStreamFavicon(String streamFavicon) {
-		this.streamFavicon = streamFavicon;
+
+	public void setIcon(String icon) {
+		this.icon = icon;
 	}
-	
-	public String getStreamFavicon() {
-		return streamFavicon;
+
+	public String getTime() {
+		return time;
 	}
-	
-	public void setPostedTime(String postedTime) {
-		this.postedTime = postedTime;
+
+	public void setTime(String time) {
+		this.time = time;
 	}
-	
-	public String getPostedTime() {
-		return postedTime;
+
+	public ActivityObject getActor() {
+		return actor;
 	}
-	
+
 	public void setActor(ActivityObject actor) {
 		this.actor = actor;
 	}
-	
-	public ActivityObject getActor() {
-		return actor;
+
+	public List<String> getVerb() {
+		return verb;
 	}
-	
+
 	public void setVerb(List<String> verb) {
 		this.verb = verb;
 	}
-	
-	public List<String> getVerb() {
-		return verb;
+
+	public ActivityObject getObject() {
+		return object;
 	}
-	
+
 	public void setObject(ActivityObject object) {
 		this.object = object;
 	}
-	
-	public ActivityObject getObject() {
-		return object;
+
+	public ActivityObject getTarget() {
+		return target;
 	}
-	
+
 	public void setTarget(ActivityObject target) {
 		this.target = target;
 	}
-	
-	public ActivityObject getTarget() {
-		return target;
+
+	public ActivityObject getGenerator() {
+		return generator;
 	}
-	
-	public void setPermalink(String permalink) {
-		this.permalink = permalink;
+
+	public void setGenerator(ActivityObject generator) {
+		this.generator = generator;
 	}
-	
-	public String getPermalink() {
-		return permalink;
+
+	public ActivityObject getServiceProvider() {
+		return serviceProvider;
 	}
-	
-	public void setTitle(String title) {
-		this.title = title;
+
+	public void setServiceProvider(ActivityObject serviceProvider) {
+		this.serviceProvider = serviceProvider;
 	}
-	
+
 	public String getTitle() {
 		return title;
 	}
-		
-	public void setBody(String body) {
-		this.body = body;
+
+	public void setTitle(String title) {
+		this.title = title;
 	}
-	
+
 	public String getBody() {
 		return body;
 	}
+
+	public void setBody(String body) {
+		this.body = body;
+	}
+
+	public List<String> getStandardLink() {
+		return standardLink;
+	}
+
+	public void setStandardLink(List<String> standardLink) {
+		this.standardLink = standardLink;
+	}
 }

Modified: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java (original)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java Thu Jul  1 23:51:35 2010
@@ -20,46 +20,42 @@ package org.apache.shindig.extras.as.cor
 
 import java.util.List;
 
+import org.apache.shindig.extras.as.opensocial.model.ActionLink;
 import org.apache.shindig.extras.as.opensocial.model.ActivityObject;
+import org.apache.shindig.extras.as.opensocial.model.MediaLink;
 
 public class ActivityObjectImpl implements ActivityObject {
 	
 	private String id;
-	private String displayName;
+	private String name;
 	private String summary;
+	private MediaLink media;
 	private String permalink;
-	private String image;
-	private List<String> objectType;
-	private String content;
-	private String audioStream;
-	private String videoStream;
-	private String playerApplet;
-	private String bookmarkTarget;
-	private String thumbnail;
-	private String subject;
-	private String description;
-	private String rating;
-	private String icon;
+	private List<String> type;
 	private ActivityObject inReplyTo;
+	private List<ActivityObject> attached;
+	private List<ActivityObject> reply;
+	private List<ActivityObject> reaction;
+	private ActionLink action;
+	private List<String> upstreamDuplicateId;
+	private List<String> downstreamDuplicateId;
+	private String standardLink;
 	
 	public ActivityObjectImpl() {
 		this.id = null;
-		this.displayName = null;
+		this.name = null;
 		this.summary = null;
+		this.media = null;
 		this.permalink = null;
-		this.image = null;
-		this.content = null;
-		this.audioStream = null;
-		this.videoStream = null;
-		this.playerApplet = null;
-		this.bookmarkTarget = null;
-		this.thumbnail = null;
-		this.subject = null;
-		this.description = null;
-		this.rating = null;
-		this.icon = null;
-		this.objectType = null;
+		this.type = null;
 		this.inReplyTo = null;
+		this.attached = null;
+		this.reply = null;
+		this.reaction = null;
+		this.action = null;
+		this.upstreamDuplicateId = null;
+		this.downstreamDuplicateId = null;
+		this.standardLink = null;
 	}
 
 	public String getId() {
@@ -70,12 +66,12 @@ public class ActivityObjectImpl implemen
 		this.id = id;
 	}
 
-	public String getDisplayName() {
-		return displayName;
+	public String getName() {
+		return name;
 	}
 
-	public void setDisplayName(String displayName) {
-		this.displayName = displayName;
+	public void setName(String name) {
+		this.name = name;
 	}
 
 	public String getSummary() {
@@ -86,115 +82,91 @@ public class ActivityObjectImpl implemen
 		this.summary = summary;
 	}
 
-	public String getPermalink() {
-		return permalink;
-	}
-
-	public void setPermalink(String permalink) {
-		this.permalink = permalink;
-	}
-
-	public String getImage() {
-		return image;
-	}
-
-	public void setImage(String image) {
-		this.image = image;
-	}
-
-	public String getContent() {
-		return content;
-	}
-
-	public void setContent(String content) {
-		this.content = content;
+	public MediaLink getMedia() {
+		return media;
 	}
 
-	public String getAudioStream() {
-		return audioStream;
+	public void setMedia(MediaLink media) {
+		this.media = media;
 	}
 
-	public void setAudioStream(String audioStream) {
-		this.audioStream = audioStream;
-	}
-
-	public String getVideoStream() {
-		return videoStream;
+	public String getPermalink() {
+		return permalink;
 	}
 
-	public void setVideoStream(String videoStream) {
-		this.videoStream = videoStream;
+	public void setPermalink(String permalink) {
+		this.permalink = permalink;
 	}
 
-	public String getPlayerApplet() {
-		return playerApplet;
+	public List<String> getType() {
+		return type;
 	}
 
-	public void setPlayerApplet(String playerApplet) {
-		this.playerApplet = playerApplet;
+	public void setType(List<String> type) {
+		this.type = type;
 	}
 
-	public String getBookmarkTarget() {
-		return bookmarkTarget;
+	public ActivityObject getInReplyTo() {
+		return inReplyTo;
 	}
 
-	public void setBookmarkTarget(String bookmarkTarget) {
-		this.bookmarkTarget = bookmarkTarget;
+	public void setInReplyTo(ActivityObject inReplyTo) {
+		this.inReplyTo = inReplyTo;
 	}
 
-	public String getThumbnail() {
-		return thumbnail;
+	public List<ActivityObject> getAttached() {
+		return attached;
 	}
 
-	public void setThumbnail(String thumbnail) {
-		this.thumbnail = thumbnail;
+	public void setAttached(List<ActivityObject> attached) {
+		this.attached = attached;
 	}
 
-	public String getSubject() {
-		return subject;
+	public List<ActivityObject> getReply() {
+		return reply;
 	}
 
-	public void setSubject(String subject) {
-		this.subject = subject;
+	public void setReply(List<ActivityObject> reply) {
+		this.reply = reply;
 	}
 
-	public String getDescription() {
-		return description;
+	public List<ActivityObject> getReaction() {
+		return reaction;
 	}
 
-	public void setDescription(String description) {
-		this.description = description;
+	public void setReaction(List<ActivityObject> reaction) {
+		this.reaction = reaction;
 	}
 
-	public String getRating() {
-		return rating;
+	public ActionLink getAction() {
+		return action;
 	}
 
-	public void setRating(String rating) {
-		this.rating = rating;
+	public void setAction(ActionLink action) {
+		this.action = action;
 	}
 
-	public String getIcon() {
-		return icon;
+	public List<String> getUpstreamDuplicateId() {
+		return upstreamDuplicateId;
 	}
 
-	public void setIcon(String icon) {
-		this.icon = icon;
+	public void setUpstreamDuplicateId(List<String> upstreamDuplicateId) {
+		this.upstreamDuplicateId = upstreamDuplicateId;
 	}
 
-	public List<String> getObjectType() {
-		return objectType;
+	public List<String> getDownstreamDuplicateId() {
+		return downstreamDuplicateId;
 	}
 
-	public void setObjectType(List<String> objectType) {
-		this.objectType = objectType;
+	public void setDownstreamDuplicateId(List<String> downstreamDuplicateId) {
+		this.downstreamDuplicateId = downstreamDuplicateId;
 	}
 
-	public ActivityObject getInReplyTo() {
-		return inReplyTo;
+	public String getStandardLink() {
+		return standardLink;
 	}
 
-	public void setInReplyTo(ActivityObject inReplyTo) {
-		this.inReplyTo = inReplyTo;
+	public void setStandardLink(String standardLink) {
+		this.standardLink = standardLink;
 	}
 }

Added: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java?rev=959815&view=auto
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java (added)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java Thu Jul  1 23:51:35 2010
@@ -0,0 +1,60 @@
+package org.apache.shindig.extras.as.core.model;
+
+import org.apache.shindig.extras.as.opensocial.model.MediaLink;
+
+public class MediaLinkImpl implements MediaLink {
+	
+	private String target;
+	private String type;
+	private String width;
+	private String height;
+	private String duration;
+	
+	public MediaLinkImpl() {
+		this.target = null;
+		this.type = null;
+		this.width = null;
+		this.height = null;
+		this.duration = null;
+	}
+
+	public String getTarget() {
+		return target;
+	}
+
+	public void setTarget(String target) {
+		this.target = target;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public String getWidth() {
+		return width;
+	}
+
+	public void setWidth(String width) {
+		this.width = width;
+	}
+
+	public String getHeight() {
+		return height;
+	}
+
+	public void setHeight(String height) {
+		this.height = height;
+	}
+
+	public String getDuration() {
+		return duration;
+	}
+
+	public void setDuration(String duration) {
+		this.duration = duration;
+	}
+}

Added: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java?rev=959815&view=auto
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java (added)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java Thu Jul  1 23:51:35 2010
@@ -0,0 +1,53 @@
+package org.apache.shindig.extras.as.opensocial.model;
+
+import org.apache.shindig.protocol.model.Exportablebean;
+import org.apache.shindig.extras.as.core.model.ActionLinkImpl;
+
+import com.google.inject.ImplementedBy;
+
+/*
+ * TODO: comment this class.
+ */
+@ImplementedBy(ActionLinkImpl.class)
+@Exportablebean
+public interface ActionLink {
+	
+	/*
+	 * Fields that represent JSON elements for an activity entry.
+	 */
+	public static enum Field {
+		TARGET("target"),
+		CAPTION("caption");
+		
+		/*
+		 * The name of the JSON element.
+		 */
+		private final String jsonString;
+		
+		/*
+		 * Constructs the field base for the JSON element.
+		 * 
+		 * @param jsonString the name of the element
+		 */
+		private Field(String jsonString) {
+			this.jsonString = jsonString;
+		}
+		
+		/*
+		 * Returns the name of the JSON element.
+		 * 
+		 * @return String the name of the JSON element
+		 */
+		public String toString() {
+			return jsonString;
+		}
+	}
+	
+	String getTarget();
+
+	void setTarget(String target);
+
+	String getCaption();
+
+	void setCaption(String caption);
+}

Modified: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java (original)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java Thu Jul  1 23:51:35 2010
@@ -25,6 +25,11 @@ import org.apache.shindig.extras.as.core
 
 import com.google.inject.ImplementedBy;
 
+/*
+ * TODO: comment a description for this class
+ * TODO: ensure verbs are up to date
+ * TODO: comment all classes
+ */
 @ImplementedBy(ActivityEntryImpl.class)
 @Exportablebean
 public interface ActivityEntry {
@@ -33,16 +38,17 @@ public interface ActivityEntry {
 	 * Fields that represent JSON elements for an activity entry.
 	 */
 	public static enum Field {
-		ID("id"),
-		STREAM_FAVICON_("streamFavicon"),
-		POSTED_TIME("postedTime"),
+		ICON("icon"),
+		TIME("time"),
 		ACTOR("actor"),
 		VERB("verb"),
 		OBJECT("object"),
 		TARGET("target"),
-		PERMALINK_("permalink"),
+		GENERATOR("generator"),
+		SERVICE_PROVIDER("serviceProvider"),
 		TITLE("title"),
-		BODY("body");
+		BODY("body"),
+		STANDARD_LINK("standardLink");
 		
 		/*
 		 * The name of the JSON element.
@@ -108,43 +114,47 @@ public interface ActivityEntry {
 		}
 	}
 	
-	void setId(String id);
-	
-	String getId();
-	
-	void setStreamFavicon(String streamFavicon);
-	
-	String getStreamFavicon();
-	
-	void setPostedTime(String postedTime);
-	
-	String getPostedTime();
-	
-	void setActor(ActivityObject actor);
-	
+	String getIcon();
+
+	void setIcon(String icon);
+
+	String getTime();
+
+	void setTime(String time);
+
 	ActivityObject getActor();
-	
-	void setVerb(List<String> verb);
-	
+
+	void setActor(ActivityObject actor);
+
 	List<String> getVerb();
-	
-	void setObject(ActivityObject object);
-	
+
+	void setVerb(List<String> verb);
+
 	ActivityObject getObject();
-	
-	void setTarget(ActivityObject target);
+
+	void setObject(ActivityObject object);
 	
 	ActivityObject getTarget();
 	
-	void setPermalink(String permalink);
-	
-	String getPermalink();
-	
-	void setTitle(String title);
+	void setTarget(ActivityObject target);
 	
+	ActivityObject getGenerator();
+
+	void setGenerator(ActivityObject generator);
+
+	ActivityObject getServiceProvider();
+
+	void setServiceProvider(ActivityObject serviceProvider);
+
 	String getTitle();
-	
-	void setBody(String body);
-	
+
+	void setTitle(String title);
+
 	String getBody();
+
+	void setBody(String body);
+
+	List<String> getStandardLink();
+
+	void setStandardLink(List<String> standardLink);
 }
\ No newline at end of file

Modified: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java (original)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java Thu Jul  1 23:51:35 2010
@@ -34,22 +34,19 @@ public interface ActivityObject {
 	 */
 	public static enum Field {
 		ID("id"),
-		DISPLAY_NAME("displayName"),
+		NAME("name"),
 		SUMMARY("summary"),
+		MEDIA("media"),
 		PERMALINK("permalink"),
-		IMAGE("image"),
-		CONTENT("content"),
-		AUDIO_STREAM("audioStream"),
-		VIDEO_STREAM("videoStream"),
-		PLAYER_APPLET("playerApplet"),
-		BOOKMARK_TARGET("bookmarkTarget"),
-		THUMBNAIL("thumbnail"),
-		SUBJECT("subject"),
-		DESCRIPTION("description"),
-		RATING("rating"),
-		ICON("icon"),
+		TYPE("type"),
 		IN_REPLY_TO("inReplyTo"),
-		OBJECT_TYPE("objectType");
+		ATTACHED("attached"),
+		REPLY("reply"),
+		REACTION("reaction"),
+		ACTION("action"),
+		UPSTREAM_DUPLICATE_ID("upstreamDuplicateId"),
+		DOWNSTREAM_DUPLICATE_ID("downstreamDuplicateId"),
+		STANDARD_LINK("standardLink");
 		
 		/*
 		 * The name of the JSON element.
@@ -79,67 +76,55 @@ public interface ActivityObject {
 
 	void setId(String id);
 
-	String getDisplayName();
+	String getName();
 
-	void setDisplayName(String displayName);
+	void setName(String name);
 
 	String getSummary();
 
 	void setSummary(String summary);
 
-	String getPermalink();
-
-	void setPermalink(String permalink);
-
-	String getImage();
-
-	void setImage(String image);
-
-	String getContent();
-
-	void setContent(String content);
+	MediaLink getMedia();
 
-	String getAudioStream();
+	void setMedia(MediaLink media);
 
-	void setAudioStream(String audioStream);
+	String getPermalink();
 
-	String getVideoStream();
+	void setPermalink(String permalink);
 
-	void setVideoStream(String videoStream);
+	List<String> getType();
 
-	String getPlayerApplet();
+	void setType(List<String> type);
 
-	void setPlayerApplet(String playerApplet);
+	ActivityObject getInReplyTo();
 
-	String getBookmarkTarget();
+	void setInReplyTo(ActivityObject inReplyTo);
 
-	void setBookmarkTarget(String bookmarkTarget);
-	
-	String getThumbnail();
+	List<ActivityObject> getAttached();
 
-	void setThumbnail(String thumbnail);
+	void setAttached(List<ActivityObject> attached);
 
-	String getSubject();
+	List<ActivityObject> getReply();
 
-	void setSubject(String subject);
+	void setReply(List<ActivityObject> reply);
 
-	String getDescription();
+	List<ActivityObject> getReaction();
 
-	void setDescription(String description);
+	void setReaction(List<ActivityObject> reaction);
 
-	String getRating();
+	ActionLink getAction();
 
-	void setRating(String rating);
+	void setAction(ActionLink action);
 
-	String getIcon();
+	List<String> getUpstreamDuplicateId();
 
-	void setIcon(String icon);
+	void setUpstreamDuplicateId(List<String> upstreamDuplicateId);
 
-	List<String> getObjectType();
+	List<String> getDownstreamDuplicateId();
 
-	void setObjectType(List<String> objectType);
+	void setDownstreamDuplicateId(List<String> downstreamDuplicateId);
 
-	ActivityObject getInReplyTo();
+	String getStandardLink();
 
-	void setInReplyTo(ActivityObject inReplyTo);
+	void setStandardLink(String standardLink);
 }
\ No newline at end of file

Modified: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java (original)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java Thu Jul  1 23:51:35 2010
@@ -15,14 +15,14 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-
 package org.apache.shindig.extras.as.opensocial.model;
 
 import java.util.List;
 
-import org.apache.shindig.protocol.model.Exportablebean;
 import org.apache.shindig.extras.as.core.model.ActivityStreamImpl;
 
+import org.apache.shindig.protocol.model.Exportablebean;
+
 import com.google.inject.ImplementedBy;
 
 /*

Added: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java?rev=959815&view=auto
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java (added)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java Thu Jul  1 23:51:35 2010
@@ -0,0 +1,67 @@
+package org.apache.shindig.extras.as.opensocial.model;
+
+import org.apache.shindig.protocol.model.Exportablebean;
+import org.apache.shindig.extras.as.core.model.MediaLinkImpl;
+import com.google.inject.ImplementedBy;
+
+/*
+ * TODO: comment this class.
+ */
+@ImplementedBy(MediaLinkImpl.class)
+@Exportablebean
+public interface MediaLink {
+
+	/*
+	 * Fields that represent the JSON elements.
+	 */
+	public static enum Field {
+		TARGET("target"),
+		TYPE("type"),
+		WIDTH("width"),
+		HEIGHT("height"),
+		DURATION("duration");
+		
+		/*
+		 * The name of the JSON element.
+		 */
+		private final String jsonString;
+		
+		/*
+		 * Constructs the field base for the JSON element.
+		 * 
+		 * @param jsonString the name of the element
+		 */
+		private Field(String jsonString) {
+			this.jsonString = jsonString;
+		}
+		
+		/*
+		 * Returns the name of the JSON element.
+		 * 
+		 * @return String the name of the JSON element
+		 */
+		public String toString() {
+			return jsonString;
+		}
+	}
+	
+	String getTarget();
+
+	void setTarget(String target);
+
+	String getType();
+
+	void setType(String type);
+
+	String getWidth();
+
+	void setWidth(String width);
+
+	String getHeight();
+
+	void setHeight(String height);
+
+	String getDuration();
+
+	void setDuration(String duration);
+}

Modified: shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java
URL: http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java (original)
+++ shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java Thu Jul  1 23:51:35 2010
@@ -66,9 +66,11 @@ public class ActivityStreamsJsonDbServic
   public Future<Void> createActivityEntry(UserId userId, GroupId groupId, String appId,
 	      Set<String> fields, ActivityEntry activityEntry, SecurityToken token) throws ProtocolException {
 	try {
-	  JSONObject jsonObject = convertFromActivityEntry(activityEntry, fields);
-	  if (!jsonObject.has(ActivityEntry.Field.ID.toString())) {
-	    jsonObject.put(ActivityEntry.Field.ID.toString(), System.currentTimeMillis());
+	  JSONObject jsonEntry = convertFromActivityEntry(activityEntry, fields);
+	  JSONObject jsonEntryObject = jsonEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString());
+	  if (!jsonEntryObject.has(ActivityObject.Field.ID.toString())) {
+		  jsonEntryObject.put(ActivityObject.Field.ID.toString(), System.currentTimeMillis());
+		  jsonEntry.put(ActivityEntry.Field.OBJECT.toString(), jsonEntryObject);
 	  }
 
 	  // TODO: bug fixed: jsonArray will not be null; will throw exception!
@@ -81,7 +83,7 @@ public class ActivityStreamsJsonDbServic
 		  jsonArray = new JSONArray();
 		  db.getJSONObject(ACTIVITYSTREAMS_TABLE).put(userId.getUserId(token), jsonArray);
 	  }
-	  jsonArray.put(jsonObject);
+	  jsonArray.put(jsonEntry);
 	  return ImmediateFuture.newInstance(null);
 	} catch (JSONException je) {
 	  throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(),
@@ -100,7 +102,7 @@ public class ActivityStreamsJsonDbServic
 	      JSONArray newList = new JSONArray();
 	      for (int i = 0; i < activityEntries.length(); i++) {
 	        JSONObject activityEntry = activityEntries.getJSONObject(i);
-	        if (!activityIds.contains(activityEntry.getString(ActivityEntry.Field.ID.toString()))) {
+	        if (!activityIds.contains(activityEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString()).getString(ActivityObject.Field.ID.toString()))) {
 	          newList.put(activityEntry);
 	        }
 	      }
@@ -123,16 +125,16 @@ public class ActivityStreamsJsonDbServic
   public Future<ActivityEntry> getActivityEntry(UserId userId, GroupId groupId,
 		  String appId, Set<String> fields, String activityId, SecurityToken token)
 		  throws ProtocolException {
-    try {
+    try {	   	
       String user = userId.getUserId(token);
       if (db.getJSONObject(ACTIVITYSTREAMS_TABLE).has(user)) {
         JSONArray activityEntries = db.getJSONObject(ACTIVITYSTREAMS_TABLE).getJSONArray(user);
         for (int i = 0; i < activityEntries.length(); i++) {
           JSONObject activityEntry = activityEntries.getJSONObject(i);
-          JSONObject actor = new JSONObject(activityEntry.get(ActivityEntry.Field.ACTOR.toString()).toString());
+          JSONObject actor = activityEntry.getJSONObject(ActivityEntry.Field.ACTOR.toString());
           String actorId = actor.get(ActivityObject.Field.ID.toString()).toString();
           if (actorId.equals(user)
-              && activityEntry.get(ActivityEntry.Field.ID.toString()).toString().equals(activityId)) {
+              && activityEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString()).get(ActivityObject.Field.ID.toString()).toString().equals(activityId)) {
             return ImmediateFuture.newInstance(jsonDb.filterFields(activityEntry, fields, ActivityEntry.class));
          }
         }
@@ -144,13 +146,29 @@ public class ActivityStreamsJsonDbServic
           je);
     }
   }
-
+	
   public Future<RestfulCollection<ActivityEntry>> getActivityEntries(
 		  Set<UserId> userIds, GroupId groupId, String appId, Set<String> fields,
 		  CollectionOptions options, SecurityToken token)
 		  throws ProtocolException {
       List<ActivityEntry> result = Lists.newArrayList();
-
+      
+//    	// Retrieve activities from Lotus Connections
+//		FeedParser parser;
+//		try {
+//			parser = new FeedParser();
+//		    ArrayList<JSONObject> activityEntries = parser.parseFeed("http://w3.ibm.com/connections/news/atom/stories/public");
+//		    for(JSONObject activityEntry : activityEntries) {
+//		    	result.add(jsonDb.filterFields(activityEntry, fields, ActivityEntry.class));
+//		    }
+//		} catch (ParserConfigurationException e) {
+//			e.printStackTrace();
+//		} catch (SAXException e) {
+//			e.printStackTrace();
+//		} catch (JSONException e) {
+//			e.printStackTrace();
+//		}
+		
       try {
         Set<String> idSet = jsonDb.getIdSet(userIds, groupId, token);
         for (String id : idSet) {
@@ -161,9 +179,9 @@ public class ActivityStreamsJsonDbServic
               result.add(jsonDb.filterFields(activityEntry, fields, ActivityEntry.class));
               // TODO: ActivityStreams don't have appIds
 //	              if (appId == null || !activitystream.has(ActivityStream.Field.APP_ID.toString())) {
-//	                result.add(filterFields(activitystream, fields, ActivityStream.class));
+//	                result.add(jsonDb.filterFields(activitystream, fields, ActivityStream.class));
 //	              } else if (activitystream.get(ActivityStream.Field.APP_ID.toString()).equals(appId)) {
-//	                result.add(filterFields(activitystream, fields, ActivityStream.class));
+//	                result.add(jsonDb.filterFields(activitystream, fields, ActivityStream.class));
 //	              }
             }
           }
@@ -174,7 +192,7 @@ public class ActivityStreamsJsonDbServic
           je);
     }
   }
-
+	
   public Future<RestfulCollection<ActivityEntry>> getActivityEntries(
 		  UserId userId, GroupId groupId, String appId, Set<String> fields,
 		  CollectionOptions options, Set<String> activityIds, SecurityToken token)
@@ -189,7 +207,7 @@ public class ActivityStreamsJsonDbServic
             JSONObject actor = new JSONObject(activityEntry.get(ActivityEntry.Field.ACTOR.toString()));
             String actorId = actor.get(ActivityObject.Field.ID.toString()).toString();
             if (actorId.equals(user)
-              && activityIds.contains(activityEntry.getString(ActivityEntry.Field.ID.toString()))) {
+              && activityIds.contains(activityEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString()).getString(ActivityObject.Field.ID.toString()).toString())) {
             result.add(jsonDb.filterFields(activityEntry, fields, ActivityEntry.class));
           }
         }