-----------------------------------------------------------
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

Reply via email to