Author: woodser Date: Fri May 20 15:43:12 2011 New Revision: 1125436 URL: http://svn.apache.org/viewvc?rev=1125436&view=rev Log: Committing Ryan Baxter's patch to enable Embedded Experience via Activity Streams.
https://reviews.apache.org/r/764/ Added: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/EmbeddedExperienceImpl.java shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/EmbeddedExperience.java Modified: shindig/trunk/content/sampledata/canonicaldb.json shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ExtensionImpl.java shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStream081Configuration.java shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Extension.java shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomId.xml shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomIds.xml shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonDelete.json shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonGroup.json shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonIds.json shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlId.xml shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlIds.xml Modified: shindig/trunk/content/sampledata/canonicaldb.json URL: http://svn.apache.org/viewvc/shindig/trunk/content/sampledata/canonicaldb.json?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/content/sampledata/canonicaldb.json (original) +++ shindig/trunk/content/sampledata/canonicaldb.json Fri May 20 15:43:12 2011 @@ -425,6 +425,13 @@ "width": 250, "height": 250 } + }, + "openSocial": { + "embed": { + "url": "http://example.org/album/", + "gadget": "http://example.org/albumViewer.xml", + "context": "1234" + } } }] }, Added: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/EmbeddedExperienceImpl.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/EmbeddedExperienceImpl.java?rev=1125436&view=auto ============================================================================== --- shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/EmbeddedExperienceImpl.java (added) +++ shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/EmbeddedExperienceImpl.java Fri May 20 15:43:12 2011 @@ -0,0 +1,61 @@ +package org.apache.shindig.social.core.model; + +import org.apache.shindig.social.opensocial.model.EmbeddedExperience; + +/** + * Embedded experience implementation. + * + */ +public class EmbeddedExperienceImpl implements EmbeddedExperience { + + private Object context; + private String gadget; + private String previewImage; + private String url; + + /** + * Constructor + */ + public EmbeddedExperienceImpl(){} + + /** {@inheritDoc} */ + public Object getContext() { + return context; + } + + /** {@inheritDoc} */ + public String getGadget() { + return gadget; + } + + /** {@inheritDoc} */ + public String getPreviewImage() { + return previewImage; + } + + /** {@inheritDoc} */ + public String getUrl(){ + return url; + } + + /** {@inheritDoc} */ + public void setContext(Object context) { + this.context = context; + } + + /** {@inheritDoc} */ + public void setGadget(String gadget) { + this.gadget = gadget; + } + + /** {@inheritDoc} */ + public void setPreviewImage(String previewImage) { + this.previewImage = previewImage; + } + + /** {@inheritDoc} */ + public void setUrl(String url){ + this.url = url; + } + +} Modified: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ExtensionImpl.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ExtensionImpl.java?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ExtensionImpl.java (original) +++ shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ExtensionImpl.java Fri May 20 15:43:12 2011 @@ -1,10 +1,29 @@ package org.apache.shindig.social.core.model; +import org.apache.shindig.social.opensocial.model.EmbeddedExperience; import org.apache.shindig.social.opensocial.model.Extension; /** * Extension namespace implementation. */ public class ExtensionImpl implements Extension { + + //Embedded experience extension + private EmbeddedExperience embed; + + /** + * Constructor + */ + public ExtensionImpl(){} + + /** {@inheritDoc} */ + public EmbeddedExperience getEmbed() { + return embed; + } + + /** {@inheritDoc} */ + public void setEmbed(EmbeddedExperience embed) { + this.embed = embed; + } } Modified: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStream081Configuration.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStream081Configuration.java?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStream081Configuration.java (original) +++ shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStream081Configuration.java Fri May 20 15:43:12 2011 @@ -51,13 +51,14 @@ import org.apache.shindig.social.opensoc import org.apache.shindig.social.opensocial.model.ActivityObject; import org.apache.shindig.social.opensocial.model.Address; import org.apache.shindig.social.opensocial.model.BodyType; +import org.apache.shindig.social.opensocial.model.EmbeddedExperience; +import org.apache.shindig.social.opensocial.model.Extension; import org.apache.shindig.social.opensocial.model.ListField; import org.apache.shindig.social.opensocial.model.MediaItem; import org.apache.shindig.social.opensocial.model.MediaLink; import org.apache.shindig.social.opensocial.model.Message; import org.apache.shindig.social.opensocial.model.MessageCollection; import org.apache.shindig.social.opensocial.model.Name; -import org.apache.shindig.social.opensocial.model.Extension; import org.apache.shindig.social.opensocial.model.Organization; import org.apache.shindig.social.opensocial.model.Person; import org.apache.shindig.social.opensocial.model.Url; @@ -175,6 +176,7 @@ public class XStream081Configuration imp new ClassFieldMapping("person", Person.class), new ClassFieldMapping("url", Url.class), new ClassFieldMapping("openSocial", Extension.class), + new ClassFieldMapping("embed", EmbeddedExperience.class), // this is an example of a class field mapping with context. If // ListField is mapped inside an element named emails, replace the element // name @@ -214,6 +216,7 @@ public class XStream081Configuration imp new ClassFieldMapping("person", Person.class), new ClassFieldMapping("url", Url.class), new ClassFieldMapping("openSocial", Extension.class), + new ClassFieldMapping("embed", EmbeddedExperience.class), // this is an example of a class field mapping with context. If // ListField is mapped inside an element named emails, replace the element // name that would have been defiend as fqcn ListField with email @@ -254,6 +257,7 @@ public class XStream081Configuration imp .put("person", Person.class) .put("url", Url.class) .put("openSocial", Extension.class) + .put("embed", EmbeddedExperience.class) .put("listField", ListField.class).build() ); Added: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/EmbeddedExperience.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/EmbeddedExperience.java?rev=1125436&view=auto ============================================================================== --- shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/EmbeddedExperience.java (added) +++ shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/EmbeddedExperience.java Fri May 20 15:43:12 2011 @@ -0,0 +1,110 @@ +package org.apache.shindig.social.opensocial.model; + +import org.apache.shindig.protocol.model.Exportablebean; +import org.apache.shindig.social.core.model.EmbeddedExperienceImpl; + +import com.google.inject.ImplementedBy; + +/** + * Represents an embedded experience that may be inlined. + * + */ +@ImplementedBy(EmbeddedExperienceImpl.class) +@Exportablebean +public interface EmbeddedExperience { + + /** + * Fields that represent JSON elements for an embedded experience. + */ + public static enum Field { + GADGET("gadget"), CONTEXT("context"), PREVIEWIMAGE("previewImage"), URL("url"); + + /* + * 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; + } + } + + /** + * Gets the URL to the gadget definition for this embedded experience + * + * @return the URL to the gadget definintion for this embedded experience + */ + String getGadget(); + + /** + * Sets the URL to the gadget definition for this embedded experience + * + * @param gadget + * the URL to the gadget definition for this embedded experience + */ + void setGadget(String gadget); + + /** + * Gets the contextual data for this embedded experience + * + * @return the contextual data for this embedded experience + */ + Object getContext(); + + /** + * Sets the contextual data for the embedded experience + * + * @param context + * the contextual data for this embedded experience + */ + void setContext(Object context); + + /** + * Gets the URL to an image that may act as a preview for this embedded + * experience + * + * @return the URL to an image that may act as a preview for this embedded + * experiece + */ + String getPreviewImage(); + + /** + * Set the URL to an image that may act as a preview for this embedded + * experience + * + * @param previewImage + * the URL to an image that may act as a preview for this embedded + * experience + */ + void setPreviewImage(String previewImage); + + /** + * Gets the URL that may be used as an embedded experience + * + * @return the URL that may be used as an embedded experience + */ + String getUrl(); + + /** + * Sets the URL that may be used as an embedded experience + * + * @param url + * the URL that may be used as an embedded experience + */ + void setUrl(String url); +} Modified: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Extension.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Extension.java?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Extension.java (original) +++ shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Extension.java Fri May 20 15:43:12 2011 @@ -11,31 +11,47 @@ import com.google.inject.ImplementedBy; @ImplementedBy(ExtensionImpl.class) @Exportablebean public interface Extension { - - public static enum Field { - ; // No fields to add - - /** - * 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; - } - } + + public static enum Field { + EMBED("embed"); // Embedded Experiences + + /** + * 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; + } + } + + /** + * Gets the embedded experience for this activity. + * + * @return the embedded experience for this activity + */ + EmbeddedExperience getEmbed(); + + /** + * Sets the emnbedded experience for this activity. + * + * @param embed + * the embedded experience to set + */ + void setEmbed(EmbeddedExperience embed); } Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomId.xml URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomId.xml?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomId.xml (original) +++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomId.xml Fri May 20 15:43:12 2011 @@ -66,6 +66,13 @@ </target> <title>John posted a new video to his album.</title> <verb>post</verb> + <openSocial> + <embed> + <context>1234</context> + <gadget>http://example.org/albumViewer.xml</gadget> + <url>http://example.org/album/</url> + </embed> + </openSocial> </activityEntry> </content> </entry> Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomIds.xml URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomIds.xml?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomIds.xml (original) +++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryAtomIds.xml Fri May 20 15:43:12 2011 @@ -102,6 +102,13 @@ </target> <title>John posted a new video to his album.</title> <verb>post</verb> + <openSocial> + <embed> + <context>1234</context> + <gadget>http://example.org/albumViewer.xml</gadget> + <url>http://example.org/album/</url> + </embed> + </openSocial> </activityEntry> </content> </entry> Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonDelete.json URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonDelete.json?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonDelete.json (original) +++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonDelete.json Fri May 20 15:43:12 2011 @@ -51,6 +51,13 @@ "width": 250, "height": 250 } + }, + "openSocial":{ + "embed":{ + "gadget":"http://example.org/albumViewer.xml", + "context":"1234", + "url":"http://example.org/album/" + } } } ], Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonGroup.json URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonGroup.json?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonGroup.json (original) +++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonGroup.json Fri May 20 15:43:12 2011 @@ -77,6 +77,13 @@ "width": 250, "height": 250 } + }, + "openSocial":{ + "embed":{ + "gadget":"http://example.org/albumViewer.xml", + "context":"1234", + "url":"http://example.org/album/" + } } } ], Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonIds.json URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonIds.json?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonIds.json (original) +++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonIds.json Fri May 20 15:43:12 2011 @@ -77,6 +77,13 @@ "width": 250, "height": 250 } + }, + "openSocial":{ + "embed":{ + "gadget":"http://example.org/albumViewer.xml", + "context":"1234", + "url":"http://example.org/album/" + } } } ], Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlId.xml URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlId.xml?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlId.xml (original) +++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlId.xml Fri May 20 15:43:12 2011 @@ -44,6 +44,13 @@ <upstreamDuplicate>upstream2</upstreamDuplicate> <url>http://example.org/album/my_fluffy_cat.jpg</url> </object> + <openSocial> + <embed> + <context>1234</context> + <gadget>http://example.org/albumViewer.xml</gadget> + <url>http://example.org/album/</url> + </embed> + </openSocial> <provider> <url>http://example.org/activity-stream</url> Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlIds.xml URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlIds.xml?rev=1125436&r1=1125435&r2=1125436&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlIds.xml (original) +++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryXmlIds.xml Fri May 20 15:43:12 2011 @@ -105,6 +105,13 @@ </target> <title>John posted a new video to his album.</title> <verb>post</verb> + <openSocial> + <embed> + <context>1234</context> + <gadget>http://example.org/albumViewer.xml</gadget> + <url>http://example.org/album/</url> + </embed> + </openSocial> </activityEntry> </entry> </response> \ No newline at end of file
