looks good.

thanks,
Amila.

On Sun, Dec 25, 2011 at 7:39 PM, Shameera Rathnayaka <shameerai...@gmail.com
> wrote:

> Hi devs,
>
> I hope to select an axis2 related project to do in 2012 GSOC. Therefore i
> did some basic research about Axis2 and found that Current Json support in
> Axis2 can be improved using a rich library such as google-gson to use
> normal JSON object to communicate with java services without converting it
> to Badgerfish.
>
> Here is my proposal in brief.
>
> There are two ways that xml string can be converted into JSON string,
> Badgerfish and Mapped . Current Axis2 with JSON module completely supports
> Badgerfish convention[1] while partialy supports Mapped convention[1] as
> Mapped formatted JSON with namespaces are not supported in Axis2. Therefore
> if the client side java-script code needs to talk with java service which
> is deployed in Axis2, it should be sent as Badgerfish convention. It is
> cumbersome to generate Badgerfish convention of JSON string again and again
> to call services if there is no  xml representation string in client side.
>
> If java script client can send JSON object to relevant java service in
> Axis2, defining service and operation in request url, without doing any
> modifications to JSON objects, then it would be very helpful for
> Java-Script users at client side.
>
> Here i propose a solution to implement this with some limitations by using 
> google-gson
> [2] <http://code.google.com/p/google-gson/> library which is a rich
> library to convert JSON string to Java object and vice-versa and also it is
> released under Apache license. Using this library we can improve JSON
> support in Axis2 to overcome above problem. Following are some advantages
> of using gson to convert JSON to Java object and vice-versa.
>
>    - Provide simple toJson() and fromJson() methods to convert Java
>    objects to JSON and vice-versa
>    - Allow pre-existing unmodifiable objects to be converted to and from
>    JSON
>    - Extensive support of Java Generics
>    - Allow custom representations for objects
>    - Support arbitrarily complex objects (with deep inheritance
>    hierarchies and extensive use of generic types)
>
> As i mentioned there are several limitations because we are not using
> namespace mapping. As an example if wsdl has two methods with same name but
> different namespace then this method will fail,But there are ways we can
> find a solution to fix this to some extent.
>
> Also i have some basic idea about how to implement this improvement, as
> follows. Here i have assumed that service name and operation name can be
> read from request URL. Then incoming message can be dispatched to correct
> operation.
>
>
> 1. write a jsonMessagebuilder to read incoming json string under specific
> content type.
>
> 2. store json string without doing any process untill it reaches
> JsonMessageReceiver. JsonMessageReceiver is a new Message Receiver which
> use gson to convert json to java objects, call relevant operation and get
> result.
>
>
> 3. write a jsonMessageFormatter to write output stream according to
> content type.
>
>
> I would like to know that whether this is a good idea and will it be
> allright to do this as GSOC project.
>
> [1]http://wso2.org/library/768 <http://wso2.org/library/768>
> [2]http://code.google.com/p/google-gson/<http://code.google.com/p/google-gson/>
>
> Thanks
> Shameera.
>
> --
> Shameera Rathnayaka
> Undergraduate
> Department of Computer Science and Engineering
> University of Moratuwa.
> Sri Lanka.
>
> Blog : http://shameerarathnayaka.blogspot.com/
>
>


-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/

Reply via email to