----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/881/ -----------------------------------------------------------
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 1134331 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 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ActivityObjectImpl.java 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/ExtensionImpl.java 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/MediaLinkImpl.java 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStream081Configuration.java 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/ActivityEntry.java 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/ActivityObject.java 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Extension.java 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/MediaLink.java 1134331 http://svn.apache.org/repos/asf/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/RestfulJsonActivityEntryTest.java 1134331 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
