stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reka Thirunavukkarasu <r...@wso2.com>
Subject Rest endpoint not properly converting the objects into Json
Date Mon, 27 Jan 2014 11:15:23 GMT
Hi

While i worked on the cli issue [1], found that json which received from
the Rest endpoint is not backward compatible with the object again. Eg:
Rest call is:

@GET
    @Path("/partition")
    @Produces("application/json")
    @Consumes("application/json")
    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
    public Partition[] getPartitions () throws RestAPIException {

        return ServiceUtils.getAvailablePartitions();
    }

The Partition Pojo is:

@XmlRootElement
public class Partition {

    public String id;

    public int partitionMin;

    public int partitionMax;

    public String provider;

    public List<PropertyBean> property;
}

This should result as:

{"partition":[{"id":"P2","partitionMin":0,"partitionMax":0,"provider":"ec2","property":
*[*{"name":"region","value":"ap-southeast-1"}*]*}]}

but the actual response is when getPartitions from SM without the array
type for the property:

{"partition":[{"id":"P2","partitionMin":0,"partitionMax":0,"provider":"ec2","property":{"name":"region","value":"ap-southeast-1"}}]}

So that the parser failed in cli to parse this string into Object. When i
tested it with more than one property, it takes the property as an array.

Did anyone observer such behavior? How can we handle this?

[1]. https://issues.apache.org/jira/browse/STRATOS-383

Thanks,
Reka

-- 
Reka Thirunavukkarasu
Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007

Mime
View raw message