Thanks Imesh.. !

*Dakshika Jayathilaka*
Software Engineer
WSO2, Inc.
lean.enterprise.middleware
0771100911

On Sun, Dec 14, 2014 at 10:46 PM, Imesh Gunaratne <im...@apache.org> wrote:
>
> Thanks Dakshika! Pull request 152 is now merged to 4.1.0-test branch.
>
> Thanks
>
> On Sun, Dec 14, 2014 at 6:50 PM, Dakshika Jayathilaka <daksh...@wso2.com>
> wrote:
>>
>> Hi Imesh,
>>
>> I have fixed the issues encountered after $(subject). please merge below
>> PR
>>
>> PR: https://github.com/apache/stratos/pull/152
>>
>> Thank you,
>>
>> *Dakshika Jayathilaka*
>> Software Engineer
>> WSO2, Inc.
>> lean.enterprise.middleware
>> 0771100911
>>
>> On Sun, Dec 14, 2014 at 12:05 PM, Imesh Gunaratne <im...@apache.org>
>> wrote:
>>>
>>> Thanks Udara! We have now resolved this with CXF JSON provider
>>> configuration.
>>> Thanks Dakshika, please let us know if you find any problems.
>>>
>>> On Sun, Dec 14, 2014 at 11:43 AM, Dakshika Jayathilaka <
>>> daksh...@wso2.com> wrote:
>>>>
>>>> Hi Imesh,
>>>>
>>>> I'll check and update.
>>>>
>>>> Thank you,
>>>>
>>>> *Dakshika Jayathilaka*
>>>> Software Engineer
>>>> WSO2, Inc.
>>>> lean.enterprise.middleware
>>>> 0771100911
>>>>
>>>> On Sun, Dec 14, 2014 at 11:42 AM, Udara Liyanage <ud...@wso2.com>
>>>> wrote:
>>>>>
>>>>> Hi Imesh,
>>>>>
>>>>> If we are switching to Jackson json provider(there is a discussion
>>>>> previously)  this may be already resolved. It supports java collections.
>>>>>
>>>>>
>>>>> Touched, not typed. Erroneous words are a feature, not a typo.
>>>>> On Dec 14, 2014 11:32 AM, "Imesh Gunaratne" <im...@apache.org> wrote:
>>>>>
>>>>>> Hi Devs,
>>>>>>
>>>>>> All the REST API methods which return collection types have included
>>>>>> a wrapper object in their response messages. This is according to the CXF
>>>>>> JSON provider configuration.
>>>>>>
>>>>>> Example: GET Cartridges:
>>>>>>
>>>>>> {"*cartridges*":[{"category":"framework","description":"Apache
>>>>>> Tomcat","displayName":"tomcat","host":"tomcat.apache.org
>>>>>> ","multiTenant":false,"provider":"apache","public":false,"type":"tomcat","version":7}]}
>>>>>>
>>>>>> This becomes a problem for the CLI or for any other client that try
>>>>>> to deserialize the JSON string to its corresponding Java object. The
>>>>>> convention we had used to resolve this issue was to define wrapper 
>>>>>> classes
>>>>>> for collection type responses:
>>>>>>
>>>>>>     private class CartridgeList {
>>>>>>         private ArrayList<Cartridge> cartridges;
>>>>>>
>>>>>>         public ArrayList<Cartridge> getCartridges() {
>>>>>>             return cartridges;
>>>>>>         }
>>>>>>
>>>>>>         public void setCartridge(ArrayList<Cartridge> cartridges) {
>>>>>>             this.cartridges = cartridges;
>>>>>>         }
>>>>>>
>>>>>>         CartridgeList() {
>>>>>>             cartridges = new ArrayList<Cartridge>();
>>>>>>         }
>>>>>>     }
>>>>>>
>>>>>> IMO this is an overhead when considering the amount of classes we
>>>>>> have in the REST API domain model.
>>>>>>
>>>>>> As a solution to this problem I have now configured REST API to
>>>>>> remove this element:
>>>>>>
>>>>>> <bean id="jsonProvider" 
>>>>>> class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
>>>>>>
>>>>>>     ...
>>>>>>     <property name="dropCollectionWrapperElement" value="true"/>
>>>>>>
>>>>>>     ...
>>>>>> </bean>
>>>>>>
>>>>>>
>>>>>> *New sample response:*
>>>>>>
>>>>>> [{"category":"framework","description":"Apache 
>>>>>> Tomcat","displayName":"tomcat","host":"tomcat.apache.org","multiTenant":false,"provider":"apache","public":false,"type":"tomcat","version":7}]
>>>>>>
>>>>>> *Sample code to de-serialize the object:*
>>>>>>
>>>>>> Type listType = new TypeToken<ArrayList<CartridgeDefinitionBean>>() 
>>>>>> {}.getType();
>>>>>> List<CartridgeDefinitionBean> cartridgeList = 
>>>>>> (List<CartridgeDefinitionBean>) 
>>>>>> restClient.listEntity(ENDPOINT_LIST_CARTRIDGES,
>>>>>>         listType, "cartridges");
>>>>>>
>>>>>>
>>>>>> Dakshika: We might need to update the UI with this modification.
>>>>>> Really sorry for the inconvenience that may cause.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Imesh Gunaratne
>>>>>>
>>>>>> Technical Lead, WSO2
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>
>>>>>
>>>
>>> --
>>> Imesh Gunaratne
>>>
>>> Technical Lead, WSO2
>>> Committer & PMC Member, Apache Stratos
>>>
>>
>
> --
> Imesh Gunaratne
>
> Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>

Reply via email to