You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by lr...@apache.org on 2009/02/10 02:53:59 UTC

svn commit: r742816 [1/5] - in /incubator/shindig/trunk/java: common/ common/src/main/java/org/apache/shindig/protocol/ common/src/main/java/org/apache/shindig/protocol/conversion/ common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/ co...

Author: lryan
Date: Tue Feb 10 01:53:52 2009
New Revision: 742816

URL: http://svn.apache.org/viewvc?rev=742816&view=rev
Log:
Move protocol handling code into common so it can be re-used in makeRequest and DataPipelining
Did not move Atom handling code becuase it is tightly-coupled to the social code

Added:
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ApiServlet.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BaseRequestItem.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataCollection.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/DataCollection.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServletFetcher.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServletFetcher.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DefaultHandlerRegistry.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DefaultHandlerRegistry.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerPreconditions.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerPreconditions.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerRegistry.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerRegistry.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/JsonRpcServlet.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Operation.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Operation.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ProtocolException.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RequestItem.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseError.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/ResponseError.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseItem.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ResponseItem.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestHandler.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestHandler.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/RestfulCollection.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RpcHandler.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RpcHandler.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Service.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Service.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/SystemHandler.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/SystemHandler.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanAtomConverter.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanConverter.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonLibConverter.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanXStreamConverter.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXStreamConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanXmlConverter.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXmlConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/BaseJsonLibConfig.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/BeanJsonLibConversionException.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConversionException.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/InjectorBeanInstanceStrategy.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/InjectorBeanInstanceStrategy.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/JsonLibConverterUtils.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/JsonLibConverterUtils.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/JsonObjectToMapMorpher.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/JsonObjectToMapMorpher.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/NullDefaultValueProcessor.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/NullDefaultValueProcessor.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/jsonlib/NullPropertyFilter.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/NullPropertyFilter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/ClassFieldMapping.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/DataCollectionConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/GuiceBeanConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/GuiceBeanProvider.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/ImplicitCollectionFieldMapping.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/InterfaceClassMapper.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/InterfaceFieldAliasMapping.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/InterfaceFieldAliasingMapper.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/MapConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/NamespaceSet.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/RestfullCollectionConverter.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/StackDriver.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/StackWriterWrapper.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/ThreadSafeWriterStack.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/WriterStack.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/xstream/XStreamConfiguration.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/Enum.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Enum.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/EnumImpl.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/EnumImpl.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/Exportablebean.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Exportablebean.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/FilterOperation.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/SortOrder.java
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/model/TestModel.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/BaseRequestItemTest.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/BaseRequestItemTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/DataCollectionTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/DataCollectionTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/DataServiceServletTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/DefaultHandlerRegistryTest.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DefaultHandlerRegistryTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/JsonRpcServletTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/RestfulCollectionTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/RestfulCollectionTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/TestHandler.java
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/TestHandler.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/BeanJsonConverterTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonLibConverterTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/BeanJsonLibConverterTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanXmlConverterTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/BeanXmlConverterTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/ApiValidator.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/ApiValidatorException.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/ApiValidatorExpcetion.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/ApiValidatorTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/JsonLibConverterUtilsTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/JsonLibConverterUtilsTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/JsonLibTestsGuiceModule.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/JsonLibTestsGuiceModule.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/JsonObjectToMapMorpherTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/JsonObjectToMapMorpherTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/NullDefaultValueProcessorTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/NullDefaultValueProcessorTest.java
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/jsonlib/NullPropertyFilterTest.java   (contents, props changed)
      - copied, changed from r740988, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/NullPropertyFilterTest.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Drinker.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/LookingFor.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/NetworkPresence.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Smoker.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/SocialRequestItem.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/SocialRequestItemTest.java
Removed:
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/ResponseError.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/EnumImpl.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConversionException.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXStreamConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXmlConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/InjectorBeanInstanceStrategy.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/JsonLibConverterUtils.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/JsonObjectToMapMorpher.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/NullDefaultValueProcessor.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/NullPropertyFilter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/ClassFieldMapping.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/DataCollectionConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/GuiceBeanConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/GuiceBeanProvider.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/ImplicitCollectionFieldMapping.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/InterfaceClassMapper.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/InterfaceFieldAliasMapping.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/InterfaceFieldAliasingMapper.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/MapConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/NamespaceSet.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/RestfullCollectionConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/StackDriver.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/StackWriterWrapper.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/ThreadSafeWriterStack.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/WriterStack.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStreamConfiguration.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Enum.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Exportablebean.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BaseRequestItem.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServletFetcher.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DefaultHandlerRegistry.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerPreconditions.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerRegistry.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Operation.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ResponseItem.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestHandler.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RpcHandler.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Service.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/SystemHandler.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/DataCollection.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/RestfulCollection.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/JsonLibTestsGuiceModule.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/BaseRequestItemTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DefaultHandlerRegistryTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/TestHandler.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/DataCollectionTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/RestfulCollectionTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/ApiValidator.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/ApiValidatorExpcetion.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/ApiValidatorTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/BeanJsonConverterTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/BeanJsonLibConverterTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/BeanXmlConverterTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/JsonLibConverterUtilsTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/JsonObjectToMapMorpherTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/NullDefaultValueProcessorTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/NullPropertyFilterTest.java
Modified:
    incubator/shindig/trunk/java/common/pom.xml
    incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/util/JsonConversionUtilTest.java
    incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.full.xml
    incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.social.xml
    incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml
    incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java
    incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/config/SocialApiGuiceModule.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/model/PersonImpl.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConfig.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXStreamAtomConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/atom/AtomFeed.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/XStream081Configuration.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Account.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Activity.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Address.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/BodyType.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/ListField.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/MediaItem.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Message.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Name.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Organization.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Person.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ActivityHandler.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/AppDataHandler.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/PersonHandler.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/ActivityService.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/AppDataService.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/CollectionOptions.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/PersonService.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/SocialSpiException.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/service/SampleContainerHandler.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/core/config/SocialApiGuiceModuleTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/RestfulJsonPeopleTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/RestfulXmlPeopleTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/ActivityHandlerTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/AppDataHandlerTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/PersonHandlerTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/ResponseItemTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/BeanXStreamConverterTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/JsonConverterPerformancePerf.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialServiceTest.java

Modified: incubator/shindig/trunk/java/common/pom.xml
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/pom.xml?rev=742816&r1=742815&r2=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/common/pom.xml (original)
+++ incubator/shindig/trunk/java/common/pom.xml Tue Feb 10 01:53:52 2009
@@ -105,6 +105,26 @@
       <artifactId>json</artifactId>
     </dependency>
     <dependency>
+      <groupId>net.sf.json-lib</groupId>
+      <artifactId>json-lib</artifactId>
+      <version>2.2</version>
+      <classifier>jdk15</classifier>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <artifactId>commons-betwixt</artifactId>
+      <groupId>commons-betwixt</groupId>
+    </dependency>
+    <dependency>
+      <groupId>com.thoughtworks.xstream</groupId>
+      <artifactId>xstream</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>rhino</groupId>
+      <artifactId>js</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>net.sf.ehcache</groupId>
       <artifactId>ehcache</artifactId>
     </dependency>

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ApiServlet.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ApiServlet.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ApiServlet.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ApiServlet.java Tue Feb 10 01:53:52 2009
@@ -15,14 +15,13 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.shindig.auth.AuthInfo;
 import org.apache.shindig.auth.SecurityToken;
 import org.apache.shindig.common.servlet.InjectedServlet;
-import org.apache.shindig.social.ResponseError;
-import org.apache.shindig.social.core.util.BeanJsonConverter;
-import org.apache.shindig.social.opensocial.spi.SocialSpiException;
+import org.apache.shindig.protocol.conversion.BeanConverter;
+import org.apache.shindig.protocol.conversion.BeanJsonConverter;
 
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
@@ -92,8 +91,8 @@
   }
 
   protected ResponseItem responseItemFromException(Throwable t) {
-    if (t instanceof SocialSpiException) {
-      SocialSpiException spe = (SocialSpiException) t;
+    if (t instanceof ProtocolException) {
+      ProtocolException spe = (ProtocolException) t;
       return new ResponseItem(spe.getError(), spe.getMessage());
     }
 

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ApiServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BaseRequestItem.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BaseRequestItem.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BaseRequestItem.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java Tue Feb 10 01:53:52 2009
@@ -15,19 +15,17 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.shindig.auth.SecurityToken;
-import org.apache.shindig.social.ResponseError;
-import org.apache.shindig.social.opensocial.spi.GroupId;
-import org.apache.shindig.social.opensocial.spi.PersonService;
-import org.apache.shindig.social.opensocial.spi.SocialSpiException;
-import org.apache.shindig.social.opensocial.spi.UserId;
+import org.apache.shindig.protocol.conversion.BeanConverter;
+import org.apache.shindig.protocol.conversion.BeanJsonConverter;
+import org.apache.shindig.protocol.model.FilterOperation;
+import org.apache.shindig.protocol.model.SortOrder;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
 import org.joda.time.DateTime;
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -46,13 +44,15 @@
  */
 public class BaseRequestItem implements RequestItem {
 
-  final SecurityToken token;
+  protected final SecurityToken token;
   final BeanConverter converter;
   final Map<String,Object> parameters;
+  final BeanJsonConverter jsonConverter;
 
   public BaseRequestItem(Map<String, String[]> parameters,
       SecurityToken token,
-      BeanConverter converter) {
+      BeanConverter converter,
+      BeanJsonConverter jsonConverter) {
     this.token = token;
     this.converter = converter;
     this.parameters = Maps.newHashMap();
@@ -65,11 +65,13 @@
         setParameter(entry.getKey(), Lists.newArrayList(entry.getValue()));
       }
     }
+    this.jsonConverter = jsonConverter;
   }
 
   public BaseRequestItem(JSONObject parameters,
       SecurityToken token,
-      BeanConverter converter) {
+      BeanConverter converter,
+      BeanJsonConverter jsonConverter) {
     try {
       this.parameters = Maps.newHashMap();
       Iterator keys = parameters.keys();
@@ -80,8 +82,9 @@
       this.token = token;
       this.converter = converter;
     } catch (JSONException je) {
-      throw new SocialSpiException(ResponseError.INTERNAL_ERROR, je.getMessage(), je);
+      throw new ProtocolException(ResponseError.INTERNAL_ERROR, je.getMessage(), je);
     }
+    this.jsonConverter = jsonConverter;
   }
 
   public String getAppId() {
@@ -103,26 +106,24 @@
     return date.toDate();
   }
 
-  public Set<UserId> getUsers() {
-    List<String> ids = getListParameter(USER_ID);
-    if (ids.isEmpty()) {
-      if (token.getViewerId() != null) {
-        // Assume @me
-        ids = Lists.newArrayList("@me");
-      } else {
-        throw new IllegalArgumentException("No userId provided and viewer not available");
-      }
-    }
-    Set<UserId> userIds = Sets.newLinkedHashSet();
-    for (String id : ids) {
-      userIds.add(UserId.fromJson(id));
-    }
-    return userIds;
+  public String getSortBy() {
+    return getParameter(SORT_BY);
   }
 
+  public SortOrder getSortOrder() {
+    String sortOrder = getParameter(SORT_ORDER);
+    try {
+      return sortOrder == null
+            ? SortOrder.ascending
+            : SortOrder.valueOf(sortOrder);
+    } catch (IllegalArgumentException iae) {
+      throw new ProtocolException(ResponseError.BAD_REQUEST,
+           "Parameter " + SORT_ORDER + " (" + sortOrder + ") is not valid.");
+    }
+  }
 
-  public GroupId getGroup() {
-    return GroupId.fromJson(getParameter(GROUP_ID, "@self"));
+  public String getFilterBy() {
+    return getParameter(FILTER_BY);
   }
 
   public int getStartIndex() {
@@ -131,7 +132,7 @@
       return startIndex == null ? DEFAULT_START_INDEX
           : Integer.valueOf(startIndex);
     } catch (NumberFormatException nfe) {
-      throw new SocialSpiException(ResponseError.BAD_REQUEST,
+      throw new ProtocolException(ResponseError.BAD_REQUEST,
           "Parameter " + START_INDEX + " (" + startIndex + ") is not a number.");
     }
   }
@@ -141,40 +142,19 @@
     try {
       return count == null ? DEFAULT_COUNT : Integer.valueOf(count);
     } catch (NumberFormatException nfe) {
-      throw new SocialSpiException(ResponseError.BAD_REQUEST,
+      throw new ProtocolException(ResponseError.BAD_REQUEST,
            "Parameter " + COUNT + " (" + count + ") is not a number.");
     }
   }
 
-  public String getSortBy() {
-    String sortBy = getParameter(SORT_BY);
-    return sortBy == null ? PersonService.TOP_FRIENDS_SORT : sortBy;
-  }
-
-  public PersonService.SortOrder getSortOrder() {
-    String sortOrder = getParameter(SORT_ORDER);
-    try {
-      return sortOrder == null
-            ? PersonService.SortOrder.ascending
-            : PersonService.SortOrder.valueOf(sortOrder);
-    } catch (IllegalArgumentException iae) {
-      throw new SocialSpiException(ResponseError.BAD_REQUEST,
-           "Parameter " + SORT_ORDER + " (" + sortOrder + ") is not valid.");
-    }
-  }
-
-  public String getFilterBy() {
-    return getParameter(FILTER_BY);
-  }
-
-  public PersonService.FilterOperation getFilterOperation() {
+  public FilterOperation getFilterOperation() {
     String filterOp = getParameter(FILTER_OPERATION);
     try {
       return filterOp == null
-          ? PersonService.FilterOperation.contains
-          : PersonService.FilterOperation.valueOf(filterOp);
+          ? FilterOperation.contains
+          : FilterOperation.valueOf(filterOp);
     } catch (IllegalArgumentException iae) {
-      throw new SocialSpiException(ResponseError.BAD_REQUEST,
+      throw new ProtocolException(ResponseError.BAD_REQUEST,
            "Parameter " + FILTER_OPERATION + " (" + filterOp + ") is not valid.");
     }
   }
@@ -205,6 +185,17 @@
     return converter.convertToObject(getParameter(parameterName), dataTypeClass);
   }
 
+  /**
+   * Assume that all the parameters in the request belong to single aggregate
+   * type and convert to it.
+   * @param dataTypeClass
+   * @return Typed request object
+   */
+  public <T> T getTypedRequest(Class<T> dataTypeClass) {
+    return jsonConverter.convertToObject(new JSONObject(this.parameters).toString(),
+        dataTypeClass);
+  }
+
   public String getParameter(String paramName) {
     Object param = this.parameters.get(paramName);
     if (param instanceof List) {
@@ -250,7 +241,7 @@
         }
         return returnVal;
       } catch (JSONException je) {
-        throw new SocialSpiException(ResponseError.BAD_REQUEST, je.getMessage(), je);
+        throw new ProtocolException(ResponseError.BAD_REQUEST, je.getMessage(), je);
       }
     } else {
       // Allow up-conversion of non-array to array params.
@@ -260,7 +251,7 @@
 
 
   // Exposed for testing only
-  void setParameter(String paramName, Object paramValue) {
+  public void setParameter(String paramName, Object paramValue) {
     if (paramValue instanceof String[]) {
       String[] arr = (String[])paramValue;
       if (arr.length == 1) {

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataCollection.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/DataCollection.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataCollection.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataCollection.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/DataCollection.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/DataCollection.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataCollection.java Tue Feb 10 01:53:52 2009
@@ -15,15 +15,13 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.spi;
+package org.apache.shindig.protocol;
 
 import java.util.Map;
 
 public class DataCollection {
   private Map<String, Map<String, String>> entry;
   
-  
-
   public DataCollection(Map<String, Map<String, String>> entry) {
     this.entry = entry;
   }

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataCollection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java Tue Feb 10 01:53:52 2009
@@ -15,11 +15,10 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.shindig.auth.SecurityToken;
-import org.apache.shindig.social.opensocial.spi.DataCollection;
-import org.apache.shindig.social.opensocial.spi.RestfulCollection;
+import org.apache.shindig.protocol.conversion.BeanConverter;
 
 import com.google.common.collect.ImmutableMap;
 
@@ -112,9 +111,11 @@
     RestHandler handler = dispatcher.getRestHandler(path, method.toUpperCase());
 
     Reader bodyReader = null;
-    if (!servletRequest.getMethod().equals("GET") &&
-        !servletRequest.getMethod().equals("HEAD")) {
-      bodyReader = servletRequest.getReader();
+    if (!servletRequest.getMethod().equals("GET") && !servletRequest.getMethod().equals("HEAD")) {
+      String contentType = servletRequest.getContentType();
+      if (contentType == null || !contentType.startsWith("application/x-www-form-urlencoded")) {
+        bodyReader = servletRequest.getReader();
+      }
     }
 
     // Execute the request

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServletFetcher.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServletFetcher.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServletFetcher.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServletFetcher.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServletFetcher.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServletFetcher.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServletFetcher.java Tue Feb 10 01:53:52 2009
@@ -15,16 +15,15 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.shindig.auth.SecurityTokenDecoder;
 import org.apache.shindig.common.servlet.ParameterFetcher;
 
 import com.google.common.collect.ImmutableMap;
 
-import java.util.Map;
-
 import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
 
 /**
  * Default implementation for the GadgetDataServlet parameter fetcher. Do not change unless you have

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServletFetcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DefaultHandlerRegistry.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DefaultHandlerRegistry.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DefaultHandlerRegistry.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DefaultHandlerRegistry.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DefaultHandlerRegistry.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DefaultHandlerRegistry.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DefaultHandlerRegistry.java Tue Feb 10 01:53:52 2009
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shindig.auth.SecurityToken;
 import org.apache.shindig.common.util.ImmediateFuture;
-import org.apache.shindig.social.ResponseError;
-import org.apache.shindig.social.opensocial.spi.SocialSpiException;
+import org.apache.shindig.protocol.conversion.BeanConverter;
+import org.apache.shindig.protocol.conversion.BeanJsonConverter;
 
 import com.google.common.collect.Maps;
 import com.google.inject.Inject;
@@ -33,6 +33,7 @@
 import org.json.JSONObject;
 
 import java.io.Reader;
+import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Collections;
@@ -41,6 +42,8 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.Future;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * Default implementation of HandlerRegistry. Bind to appropriately
@@ -48,10 +51,13 @@
  */
 public class DefaultHandlerRegistry implements HandlerRegistry {
 
+  private static final Logger logger = Logger.getLogger(DefaultHandlerRegistry.class.getName());
+
   private final Map<String, RestHandler> restOperations = Maps.newHashMap();
   private final Map<String, RpcHandler> rpcOperations = Maps.newHashMap();
 
   private final Injector injector;
+  private final BeanJsonConverter beanJsonConverter;
 
   /**
    * Creates a dispatcher with the specified handler classes
@@ -60,8 +66,10 @@
    */
   @Inject
   public DefaultHandlerRegistry(Injector injector,
-      @Named("org.apache.shindig.handlers") List handlers) {
+      @Named("org.apache.shindig.handlers") List handlers,
+      BeanJsonConverter beanJsonConverter) {
     this.injector = injector;
+    this.beanJsonConverter = beanJsonConverter;
     addHandlers(handlers.toArray());
   }
 
@@ -73,12 +81,12 @@
       String key = rpc.getString("method");
       RpcHandler rpcHandler = rpcOperations.get(key);
       if (rpcHandler == null) {
-        return new ErrorRpcHandler(new SocialSpiException(ResponseError.NOT_IMPLEMENTED,
+        return new ErrorRpcHandler(new ProtocolException(ResponseError.NOT_IMPLEMENTED,
             "The method " + key + " is not implemented"));
       }
       return rpcHandler;
     } catch (JSONException je) {
-      return new ErrorRpcHandler(new SocialSpiException(ResponseError.BAD_REQUEST,
+      return new ErrorRpcHandler(new ProtocolException(ResponseError.BAD_REQUEST,
             "No method requested in RPC"));
     }
   }
@@ -97,7 +105,7 @@
       separatorIndex = matchPath.lastIndexOf("/");
     }
     if (restHandler == null) {
-      return new ErrorRestHandler(new SocialSpiException(ResponseError.NOT_IMPLEMENTED,
+      return new ErrorRestHandler(new ProtocolException(ResponseError.NOT_IMPLEMENTED,
             "No service defined for path " + path));
     }
     return restHandler;
@@ -141,28 +149,59 @@
   }
 
   private void createRestHandler(Object handler, Service service, Operation op, Method m) {
-    RestHandler restHandler = new RestInvocationHandler(service, op, m, handler);
-    String serviceName = service.name();
-
-    for (String httpMethod : op.httpMethods()) {
-      if (!StringUtils.isEmpty(httpMethod)) {
-        if (StringUtils.isEmpty(op.path())) {
-          // Use the standard service name as the key
-          restOperations.put(httpMethod.toUpperCase() + " /" + serviceName, restHandler);
-        } else {
-          // Use the standard service name and constant prefix as the key
-          String prefix = op.path().split("\\{")[0];
-          restOperations.put(httpMethod.toUpperCase() + " /" + serviceName +
-              prefix, restHandler);
+    // Check for request item subclass constructor
+    Class requestItemType = m.getParameterTypes()[0];
+    try {
+      if (RequestItem.class.isAssignableFrom(requestItemType)) {
+        if (requestItemType == RequestItem.class) {
+          requestItemType = BaseRequestItem.class; 
+        }
+        Constructor reqItemConstructor =
+            requestItemType.getConstructor(Map.class, SecurityToken.class, BeanConverter.class,
+                BeanJsonConverter.class);
+        RestHandler restHandler = new RestInvocationHandler(service, op, m, handler,
+            beanJsonConverter, reqItemConstructor);
+        String serviceName = service.name();
+
+        for (String httpMethod : op.httpMethods()) {
+          if (!StringUtils.isEmpty(httpMethod)) {
+            if (StringUtils.isEmpty(op.path())) {
+              // Use the standard service name as the key
+              restOperations.put(httpMethod.toUpperCase() + " /" + serviceName, restHandler);
+            } else {
+              // Use the standard service name and constant prefix as the key
+              String prefix = op.path().split("\\{")[0];
+              restOperations.put(httpMethod.toUpperCase() + " /" + serviceName +
+                  prefix, restHandler);
+            }
+          }
         }
       }
+    } catch (NoSuchMethodException nme) {
+      logger.log(Level.INFO, "No REST binding for " + service.name() + "." + m.getName());
     }
+
   }
 
   private void createRpcHandler(Object handler, Service service, Method m) {
-    RpcHandler rpcHandler = new RpcInvocationHandler(m, handler);
-    String defaultName = service.name() + "." + m.getName();
-    rpcOperations.put(defaultName, rpcHandler);
+    // Check for request item subclass constructor
+    Class requestItemType = m.getParameterTypes()[0];
+    try {
+      if (RequestItem.class.isAssignableFrom(requestItemType)) {
+        if (requestItemType == RequestItem.class) {
+          requestItemType = BaseRequestItem.class;
+        }
+        Constructor reqItemConstructor =
+            requestItemType.getConstructor(JSONObject.class, SecurityToken.class,
+                BeanConverter.class,
+                BeanJsonConverter.class);
+        RpcHandler rpcHandler = new RpcInvocationHandler(m, handler, beanJsonConverter, reqItemConstructor);
+        String defaultName = service.name() + "." + m.getName();
+        rpcOperations.put(defaultName, rpcHandler);
+      }
+    } catch (NoSuchMethodException nme) {
+      logger.log(Level.INFO, "No RPC binding for " + service.name() + "." + m.getName());
+    }
   }
 
   /**
@@ -172,19 +211,27 @@
   private static final class RpcInvocationHandler implements RpcHandler {
     private Method receiver;
     Object handlerInstance;
+    BeanJsonConverter beanJsonConverter;
+    Constructor requestItemConstructor;
 
-    private RpcInvocationHandler(Method receiver, Object handlerInstance) {
+    private RpcInvocationHandler(Method receiver, Object handlerInstance,
+                                 BeanJsonConverter beanJsonConverter,
+                                 Constructor reqItemConstructor) {
       this.receiver = receiver;
       this.handlerInstance =  handlerInstance;
+      this.beanJsonConverter = beanJsonConverter;
+      this.requestItemConstructor = reqItemConstructor;
     }
 
     public Future execute(JSONObject rpc, SecurityToken token, BeanConverter converter) {
       try {
         RequestItem item;
         if (rpc.has("params")) {
-          item = new BaseRequestItem((JSONObject)rpc.get("params"), token, converter);
+          item = (RequestItem)requestItemConstructor.newInstance(
+              (JSONObject)rpc.get("params"), token, converter, beanJsonConverter);
         } else {
-          item = new BaseRequestItem(new JSONObject(), token, converter);
+          item = (RequestItem)requestItemConstructor.newInstance(new JSONObject(), token,
+              converter, beanJsonConverter);
         }
         Object result = receiver.invoke(handlerInstance, item);
         if (result instanceof Future) {
@@ -210,14 +257,20 @@
     Service service;
     Operation operation;
     final String[] expectedUrl;
+    BeanJsonConverter beanJsonConverter;
+    Constructor requestItemConstructor;
 
     private RestInvocationHandler(Service service, Operation operation,
-                                  Method receiver, Object handlerInstance) {
+                                  Method receiver, Object handlerInstance,
+                                  BeanJsonConverter beanJsonConverter,
+                                  Constructor requestItemConstructor) {
       this.service = service;
       this.operation = operation;
       this.receiver = receiver;
       this.handlerInstance =  handlerInstance;
       expectedUrl = service.path().split("/");
+      this.beanJsonConverter = beanJsonConverter;
+      this.requestItemConstructor = requestItemConstructor;
     }
 
     public Future<?> execute(String path, Map<String, String[]> parameters, Reader body,
@@ -232,7 +285,8 @@
 
         extractPathParameters(parameters, path);
 
-        RequestItem item = new BaseRequestItem(parameters, token, converter);
+        RequestItem item = (RequestItem)requestItemConstructor.newInstance(parameters, token,
+            converter, beanJsonConverter);
         Object result = receiver.invoke(handlerInstance, item);
         if (result instanceof Future) {
           return (Future) result;
@@ -260,7 +314,7 @@
                 actualPart.split(","));
           } else {
             if (actualPart.indexOf(',') != -1) {
-              throw new SocialSpiException(ResponseError.BAD_REQUEST,
+              throw new ProtocolException(ResponseError.BAD_REQUEST,
                   "Cannot expect plural value " + actualPart
                       + " for singular field " + expectedPart + " in " + service.path());
             }
@@ -278,9 +332,9 @@
    */
   private static final class ErrorRestHandler implements RestHandler {
 
-    private SocialSpiException error;
+    private ProtocolException error;
 
-    public ErrorRestHandler(SocialSpiException error) {
+    public ErrorRestHandler(ProtocolException error) {
       this.error = error;
     }
 
@@ -295,9 +349,9 @@
    */
   private static final class ErrorRpcHandler implements RpcHandler {
 
-    private SocialSpiException error;
+    private ProtocolException error;
 
-    public ErrorRpcHandler(SocialSpiException error) {
+    public ErrorRpcHandler(ProtocolException error) {
       this.error = error;
     }
 

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/DefaultHandlerRegistry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerPreconditions.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerPreconditions.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerPreconditions.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerPreconditions.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerPreconditions.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerPreconditions.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerPreconditions.java Tue Feb 10 01:53:52 2009
@@ -16,10 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
-import org.apache.shindig.social.ResponseError;
-import org.apache.shindig.social.opensocial.spi.SocialSpiException;
 
 import java.util.Collection;
 
@@ -31,28 +29,28 @@
   private HandlerPreconditions() {}
 
   public static void requireNotEmpty(Collection<?> coll, String message)
-      throws SocialSpiException {
+      throws ProtocolException {
     if (coll.isEmpty()) {
-      throw new SocialSpiException(ResponseError.BAD_REQUEST, message);
+      throw new ProtocolException(ResponseError.BAD_REQUEST, message);
     }
   }
 
-  public static void requireEmpty(Collection<?> coll, String message) throws SocialSpiException {
+  public static void requireEmpty(Collection<?> coll, String message) throws ProtocolException {
     if (!coll.isEmpty()) {
-      throw new SocialSpiException(ResponseError.BAD_REQUEST, message);
+      throw new ProtocolException(ResponseError.BAD_REQUEST, message);
     }
   }
 
   public static void requireSingular(Collection<?> coll, String message)
-      throws SocialSpiException {
+      throws ProtocolException {
     if (coll.size() != 1) {
-      throw new SocialSpiException(ResponseError.BAD_REQUEST, message);
+      throw new ProtocolException(ResponseError.BAD_REQUEST, message);
     }
   }
 
-  public static void requirePlural(Collection<?> coll, String message) throws SocialSpiException {
+  public static void requirePlural(Collection<?> coll, String message) throws ProtocolException {
     if (coll.size() <= 1) {
-      throw new SocialSpiException(ResponseError.BAD_REQUEST, message);
+      throw new ProtocolException(ResponseError.BAD_REQUEST, message);
     }
   }
 }

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerRegistry.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerRegistry.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerRegistry.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerRegistry.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerRegistry.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerRegistry.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerRegistry.java Tue Feb 10 01:53:52 2009
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import com.google.inject.ImplementedBy;
 import org.json.JSONObject;

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/HandlerRegistry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/JsonRpcServlet.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/JsonRpcServlet.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/JsonRpcServlet.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/JsonRpcServlet.java Tue Feb 10 01:53:52 2009
@@ -15,15 +15,12 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shindig.auth.SecurityToken;
 import org.apache.shindig.common.util.JsonConversionUtil;
-import org.apache.shindig.social.ResponseError;
-import org.apache.shindig.social.opensocial.spi.DataCollection;
-import org.apache.shindig.social.opensocial.spi.RestfulCollection;
 
 import com.google.common.collect.Lists;
 import org.json.JSONArray;

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/JsonRpcServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Operation.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Operation.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Operation.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Operation.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Operation.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Operation.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Operation.java Tue Feb 10 01:53:52 2009
@@ -15,7 +15,7 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;

Added: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ProtocolException.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ProtocolException.java?rev=742816&view=auto
==============================================================================
--- incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ProtocolException.java (added)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ProtocolException.java Tue Feb 10 01:53:52 2009
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.shindig.protocol;
+
+/**
+ * Unchecked exception class for errors thrown by request handlers
+ */
+public class ProtocolException extends RuntimeException {
+  private final ResponseError error;
+
+  public ProtocolException(ResponseError error, String errorMessage, Throwable cause) {
+    super(errorMessage, cause);
+    this.error = error;
+  }
+
+  public ProtocolException(ResponseError error, String errorMessage) {
+    super(errorMessage);
+    this.error = error;
+  }
+
+  public ResponseError getError() {
+    return error;
+  }
+}

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RequestItem.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RequestItem.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RequestItem.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RequestItem.java Tue Feb 10 01:53:52 2009
@@ -15,12 +15,11 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.shindig.auth.SecurityToken;
-import org.apache.shindig.social.opensocial.spi.GroupId;
-import org.apache.shindig.social.opensocial.spi.PersonService;
-import org.apache.shindig.social.opensocial.spi.UserId;
+import org.apache.shindig.protocol.model.FilterOperation;
+import org.apache.shindig.protocol.model.SortOrder;
 
 import java.util.Date;
 import java.util.List;
@@ -33,8 +32,6 @@
 
   // Common OpenSocial API fields
   String APP_ID = "appId";
-  String USER_ID = "userId";
-  String GROUP_ID = "groupId";
   String START_INDEX = "startIndex";
   String COUNT = "count";
   String SORT_BY = "sortBy";
@@ -51,21 +48,17 @@
 
   Date getUpdatedSince();
 
-  Set<UserId> getUsers();
-
-  GroupId getGroup();
-
   int getStartIndex();
 
   int getCount();
 
   String getSortBy();
 
-  PersonService.SortOrder getSortOrder();
+  SortOrder getSortOrder();
 
   String getFilterBy();
 
-  PersonService.FilterOperation getFilterOperation();
+  FilterOperation getFilterOperation();
 
   String getFilterValue();
 
@@ -77,6 +70,8 @@
 
   <T> T getTypedParameter(String parameterName, Class<T> dataTypeClass);
 
+  <T> T getTypedRequest(Class<T> dataTypeClass);
+
   String getParameter(String paramName);
 
   String getParameter(String paramName, String defaultValue);

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RequestItem.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseError.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/ResponseError.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseError.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseError.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/ResponseError.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/ResponseError.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseError.java Tue Feb 10 01:53:52 2009
@@ -15,11 +15,11 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social;
-
-import javax.servlet.http.HttpServletResponse;
+package org.apache.shindig.protocol;
 
 import org.apache.commons.lang.StringUtils;
+
+import javax.servlet.http.HttpServletResponse;
 /**
  * An Enumeration for holding all the responses emitted by the social API.
  */

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseError.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseItem.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ResponseItem.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseItem.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseItem.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ResponseItem.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ResponseItem.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseItem.java Tue Feb 10 01:53:52 2009
@@ -15,9 +15,7 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
-
-import org.apache.shindig.social.ResponseError;
+package org.apache.shindig.protocol;
 
 import com.google.common.base.Objects;
 

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/ResponseItem.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestHandler.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestHandler.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestHandler.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestHandler.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestHandler.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestHandler.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestHandler.java Tue Feb 10 01:53:52 2009
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.shindig.auth.SecurityToken;
+import org.apache.shindig.protocol.conversion.BeanConverter;
 
 import java.io.Reader;
 import java.util.Map;

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/RestfulCollection.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/RestfulCollection.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/RestfulCollection.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java Tue Feb 10 01:53:52 2009
@@ -15,7 +15,7 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.spi;
+package org.apache.shindig.protocol;
 
 import java.util.List;
 

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RpcHandler.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RpcHandler.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RpcHandler.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RpcHandler.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RpcHandler.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RpcHandler.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RpcHandler.java Tue Feb 10 01:53:52 2009
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import org.apache.shindig.auth.SecurityToken;
+import org.apache.shindig.protocol.conversion.BeanConverter;
 
 import org.json.JSONObject;
 

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Service.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Service.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Service.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Service.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Service.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/Service.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/Service.java Tue Feb 10 01:53:52 2009
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/SystemHandler.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/SystemHandler.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/SystemHandler.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/SystemHandler.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/SystemHandler.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/SystemHandler.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/SystemHandler.java Tue Feb 10 01:53:52 2009
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol;
 
-import org.apache.shindig.social.opensocial.spi.PersonService;
+import org.apache.shindig.protocol.model.FilterOperation;
 
 import com.google.inject.Inject;
 
@@ -41,7 +41,7 @@
   @Operation(httpMethods = "GET")
   public Set<String> listMethods(RequestItem request) {
     if ("protocol".equalsIgnoreCase(request.getFilterBy()) &&
-        PersonService.FilterOperation.equals == request.getFilterOperation() &&
+        FilterOperation.equals == request.getFilterOperation() &&
       "REST".equalsIgnoreCase(request.getFilterValue())) {
       return registry.getSupportedRestServices();
     }

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanAtomConverter.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanAtomConverter.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanAtomConverter.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanAtomConverter.java Tue Feb 10 01:53:52 2009
@@ -15,13 +15,12 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.core.util;
-
-import org.apache.shindig.social.opensocial.service.BeanConverter;
+package org.apache.shindig.protocol.conversion;
 
 import org.apache.commons.betwixt.IntrospectionConfiguration;
 import org.apache.commons.betwixt.io.BeanReader;
 import org.apache.commons.betwixt.io.BeanWriter;
+
 import org.xml.sax.SAXException;
 
 import java.beans.IntrospectionException;

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanAtomConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanConverter.java (from r740988, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanConverter.java?p2=incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanConverter.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java&r1=740988&r2=742816&rev=742816&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanConverter.java Tue Feb 10 01:53:52 2009
@@ -15,7 +15,7 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-package org.apache.shindig.social.opensocial.service;
+package org.apache.shindig.protocol.conversion;
 
 public interface BeanConverter {
   <T> T convertToObject(String string, Class<T> className);

Propchange: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native