May be we have to use element wrapper; @XmlElementWrapper(name="cartridges")

http://blog.bdoughan.com/2010/09/jaxb-collection-properties.html

On Wed, Nov 5, 2014 at 3:11 PM, Udara Liyanage <[email protected]> wrote:

> Hi,
>
> You can find it [1]. Please note that other bean classes have public
> variables which are set when converting to a pojo. This bean as private
> variables and public getters and setters.
>
> [1]
> https://github.com/apache/stratos/blob/docker-grouping-merge/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/definitions/ServiceGroupDefinition.java
>
> On Wed, Nov 5, 2014 at 7:34 PM, Nirmal Fernando <[email protected]>
> wrote:
>
>> Can you point to the relevant rest endpoint bean ?
>>
>> On Wed, Nov 5, 2014 at 2:52 PM, Udara Liyanage <[email protected]> wrote:
>>
>>> Hi Nirmal,
>>>
>>> But it works in get deployment policy endpoint, so it can not be a
>>> limitation ?
>>>
>>> curl -X GET -H "Content-Type: application/json" -d @'app-php-only.json'
>>> -k   -u admin:admin
>>> https://localhost:9443/stratos/admin/policy/deployment/economyDeploymentPolicy
>>> | python -m json.tool
>>>   % Total    % Received % Xferd  Average Speed   Time    Time     Time
>>>  Current
>>>                                  Dload  Upload   Total   Spent    Left
>>>  Speed
>>> 100   908    0   353  100   555   5364   8434 --:--:-- --:--:-- --:--:--
>>>  8538
>>> {
>>>     "deploymentPolicy": {
>>>         "id": "economyDeploymentPolicy",
>>>         "partitionGroup": [
>>>             {
>>>                 "id": "ec2",
>>>                 *"partition": [*
>>> *                    {*
>>> *                        "id": "AWSEC2AsiaPacificPartition1",*
>>> *                        "isPublic": false,*
>>> *                        "partitionMax": 3,*
>>> *                        "partitionMin": 1,*
>>> *                        "property": [*
>>> *                            {*
>>> *                                "name": "region",*
>>> *                                "value": "ap-southeast-1"*
>>> *                            },*
>>> *                            {*
>>> *                                "name": "zone",*
>>> *                                "value": "ap-southeast-1a"*
>>> *                            }*
>>> *                        ],*
>>> *                        "provider": "ec2"*
>>> *                    }*
>>> *                ],*
>>>                 "partitionAlgo": "one-after-another"
>>>             }
>>>         ],
>>>         "public": false
>>>     }
>>> }
>>>
>>>
>>> On Wed, Nov 5, 2014 at 7:21 PM, Udara Liyanage <[email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> When I add the name of the variable to the cxf-servlet.xml as 
>>>> serializeAsArray,
>>>> now cartridges are shown as arrays.
>>>> <value>cartridges</value>
>>>>
>>>> But we can't specify it for each variable.
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Nov 5, 2014 at 6:35 PM, Udara Liyanage <[email protected]> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> When I execute the GET serviceGroup Stratos endpoint I get the
>>>>> folowing output in two different groups. Please note cartridges text  in
>>>>> bold. When there are only one cartridge, it shows as a String (output1),
>>>>> when there are multiple cartridges it is shown as an array (output2).
>>>>>
>>>>> But when I convert the object to a json text, it shows as arrays even
>>>>> when there are single cartridge.
>>>>>
>>>>> The issue happens when the object is sent in response as below
>>>>>
>>>>> return Response.ok().entity(serviceGroupDefinition).build();
>>>>>
>>>>>
>>>>> In the code carridges is set as a list.
>>>>>
>>>>>
>>>>>    1. List<String> cartridgesDef = new ArrayList<String>(Arrays.asList
>>>>>    (cartridges));
>>>>>    2. servicegroupDef.setCartridges(cartridgesDef);
>>>>>
>>>>>
>>>>> [1] suggested to set serializeAsArray as true in cxf-servlet.xml.xml,
>>>>> I tried doing it too. But same result.
>>>>>
>>>>> What is the reason for this?
>>>>>
>>>>>
>>>>> output [1]
>>>>>
>>>>> {
>>>>>     "serviceGroup": [
>>>>>         {
>>>>>            * "cartridges": "tomcat",*
>>>>>             "dependencies": {
>>>>>                 "startupOrders": "group.group1,cartridge.tomcat",
>>>>>                 "terminationBehaviour": "terminate-dependents"
>>>>>             },
>>>>>             "name": "group5",
>>>>>             "subGroups": "group1"
>>>>>         }
>>>>>     ]
>>>>> }
>>>>>
>>>>> output [2]
>>>>>
>>>>> {
>>>>>     "serviceGroup": {
>>>>>         "cartridges": *[*
>>>>> *            "tomcat",*
>>>>> *            "php"*
>>>>> *        ],*
>>>>>         "dependencies": {
>>>>>             "startupOrders": "group.group1,cartridge.tomcat",
>>>>>             "terminationBehaviour": "terminate-dependents"
>>>>>         },
>>>>>         "name": "group6",
>>>>>         "subGroups": "group2"
>>>>>     }
>>>>> }
>>>>>
>>>>> [1]
>>>>> http://stackoverflow.com/questions/18918091/when-a-list-has-only-one-element-cxf-return-the-object-instead-a-js-array
>>>>> --
>>>>>
>>>>> Udara Liyanage
>>>>> Software Engineer
>>>>> WSO2, Inc.: http://wso2.com
>>>>> lean. enterprise. middleware
>>>>>
>>>>> web: http://udaraliyanage.wordpress.com
>>>>> phone: +94 71 443 6897
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Udara Liyanage
>>>> Software Engineer
>>>> WSO2, Inc.: http://wso2.com
>>>> lean. enterprise. middleware
>>>>
>>>> web: http://udaraliyanage.wordpress.com
>>>> phone: +94 71 443 6897
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> Udara Liyanage
>>> Software Engineer
>>> WSO2, Inc.: http://wso2.com
>>> lean. enterprise. middleware
>>>
>>> web: http://udaraliyanage.wordpress.com
>>> phone: +94 71 443 6897
>>>
>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
>
> Udara Liyanage
> Software Engineer
> WSO2, Inc.: http://wso2.com
> lean. enterprise. middleware
>
> web: http://udaraliyanage.wordpress.com
> phone: +94 71 443 6897
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Reply via email to