> On 2011-06-13 17:33:14, Henry Saputra wrote: > > The JSON-RPC API calls will also have this extension field support because > > it uses the same JSON converter, right? > > > > Is this is to support model extension as mentioned in > > http://opensocial-resources.googlecode.com/svn/spec/2.0/OpenSocial-Specification.xml#rfc.section.5.2 > > > > > > - Henry
Correct, JSON-RPC and all other APIs will pick this up; the serialization happens deep down in the JSON & XML converters. Also correct, this change will make it almost trivial to implement extensions which, by definition, are supported by the OpenSocial spec. I've uploaded a revised patch to address your comments, adding ASF license headers to the new files and correcting formatting. Thanks for the review, Henry. - Eric ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/881/#review803 ----------------------------------------------------------- On 2011-06-13 19:06:19, Eric Woods wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/881/ > ----------------------------------------------------------- > > (Updated 2011-06-13 19:06:19) > > > Review request for shindig. > > > Summary > ------- > > This is a much-needed improvement to the Shindig REST API. This patch adds > support for dynamic extensions to Shindig's data model. For example, fields > that are not explicitly defined in ActivityEntry may be posted to the > Activity Streams REST API, and Shindig will receive, persist, and retrieve > them properly. This will circumvent the need for continued maintenance as > field requirements change, especially for internal changes that aren't pushed > back to Shindig. > > To enable dynamic extensions to an existing data model, simply extend > ExtendableBean. > > I recommend using the JSON API when handling extensions. The JSON API fully > supports all CRUD operations with extensions "out-of-the-box". > > The XML API has a number of limitations with respect to extensions due > Shindig's design and use of xstream: > * To serialize extensions to XML, the extension's field name must be > predefined in the parent POJO. > * Serialization of dynamic extensions doesn't follow all OpenSocial > conventions > * Limited XML POST support (which has always been the case) > > > Diffs > ----- > > > http://svn.apache.org/repos/asf/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/ExtendableBeanConverter.java > PRE-CREATION > > http://svn.apache.org/repos/asf/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/ExtendableBean.java > PRE-CREATION > > http://svn.apache.org/repos/asf/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/ExtendableBeanImpl.java > PRE-CREATION > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ActivityEntryImpl.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ActivityObjectImpl.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ExtensionImpl.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/MediaLinkImpl.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStream081Configuration.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/ActivityEntry.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/ActivityObject.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Extension.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/MediaLink.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/RestfulJsonActivityEntryTest.java > 1134325 > > http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/fixtures/ActivityEntryJsonExtension.json > PRE-CREATION > > Diff: https://reviews.apache.org/r/881/diff > > > Testing > ------- > > Yes. > > > Thanks, > > Eric > >
