I have tested your patch and have some comments  to give. First, can
you create a JIRA issue for this and update above details with all
attachments there it's hard to keep the track  of progress of your
work in mail thread.

Thanks !

On Sat, Mar 3, 2012 at 2:55 PM, Shameera Rathnayaka
<shameerai...@gmail.com> wrote:
> Hi devs,
>
> As we discussed in this thread previously there are two ways we can add this
> json implementation to axis2 .
> 1. First one is get the inputstream and use gson to create java beans and
> use hava reflection to invoke method. In this scenario we assume it uses
> requiest url base dispatching and we know service and operation at this
> stage when it come to particular Message Receiver .
>
> 2. Second one is build this json string the way we can integrate with
> existing Architecture. Create an XMLStreamReader implementation with gson
> reader or  construct a SOAPEnvelope that builds that representation lazily
> (using the OMSourcedElement/OMDataSource API). I don't know the different of
> these two, need to clarify more about this scenario.
>
> I did some background search and referred some code parts in Axis2. As i
> have been in touch with Axis2 project it was easy to understand the basic
> things, therefore i implemented the first part which i have mentioned above
> as a way of being prepared for GSoC 2012 in the coming months. However this
> is not the final work in that first part, but is the progress i have made so
> far with the project.
>
> I have attached my implementation as a patch for current trunk.
> For testing purposes i have attached a simple service and client which send
> http post request to sample service(Sample service attached with this reply)
> post request has required json string as a request entity.
>
> Feedbacks are appreciate as it would help me a lot in presenting my final
> proposal for the project :)
>
> Attachments
>
> 1. json-iml.patch   --> my implementation patch for current trunk
> 2. JsonImlTest.aar  --> sample service to deploy in axis2
> 3. SimpleJsonClient.java --> simple code which send a request to
>  JsonService( in JsonImlTest) using http post method
> 4. axis2_json.xml  --> modified configuration file, i have added my json
> formatter and builder under the application/json-iml content type, Yes we
> can decide a good content type later this is only for testing purpose.
>
>
>
>
> On Thu, Jan 12, 2012 at 2:05 PM, Amila Suriarachchi
> <amilasuriarach...@gmail.com> wrote:
>>
>>
>>
>> On Tue, Jan 10, 2012 at 11:28 PM, Shameera Rathnayaka
>> <shameerai...@gmail.com> wrote:
>>>
>>>
>>>
>>> On Sat, Jan 7, 2012 at 5:21 PM, Amila Suriarachchi
>>> <amilasuriarach...@gmail.com> wrote:
>>>>
>>>>
>>>>
>>>> On Sat, Jan 7, 2012 at 2:34 AM, Andreas Veithen
>>>> <andreas.veit...@gmail.com> wrote:
>>>>>
>>>>> On Thu, Jan 5, 2012 at 05:57, Shameera Rathnayaka
>>>>> <shameerai...@gmail.com> wrote:
>>>>> > Here what i understood simply is under the 1st approch Inside the
>>>>> > message
>>>>> > builder class i need to get the input stream and store it inside the
>>>>> > message
>>>>> > context as a property to access later, while putting a dummy SOAP
>>>>> > envelope.
>>>>> > And dispatching will be occurred request uri based.i.e dummy message
>>>>> > would
>>>>> > be some thing like
>>>>> >
>>>>> >
>>>>> >  <soap:Envelope><soap:Body><ns:wrapper>Json</ns:wrapper></soap:Body></soap:Envelope>
>>>>> >
>>>>> > This input-stream is processed only inside the message receiver when
>>>>> > gson
>>>>> > reads the input stream and create relavant java objects from that.
>>>>> >
>>>>> > Response is also handled same as request handle but bottom up way.
>>>>> >
>>>>> > In the 2nd approach Inside the message builder class i have to get
>>>>> > the input
>>>>> > stream and build the Json String first and then store it as
>>>>>
>>>>> Not exactly. You would not read the input stream in the message
>>>>> builder, but construct a SOAPEnvelope that builds that representation
>>>>> lazily (using the OMSourcedElement/OMDataSource API). If something
>>>>> (e.g. a logging/auditing handler) between the message builder and the
>>>>> message receiver attempts to access the SOAPEnvelope, then the input
>>>>> stream will be read and the corresponding Axiom objects created on the
>>>>> fly. If the SOAPEnvelope reaches the message receiver untouched, then
>>>>> you would feed the input stream (more or less) directly to
>>>>> google-gson.
>>>>
>>>>
>>>> Another option is to write an xmlstream reader/writer implementation to
>>>> parse the json stream. And provide that xml stream implementation to Axiom.
>>>>
>>>> This model works with other data bindings such as ADB as well.
>>>
>>>
>>> If we use xmlstream reader/writer to parse the json stream. How it works
>>> with ADB ?
>>
>>
>> ADB I mean the ADB generated code. Which only uses the xmlstream API
>> instead of Axiom. Anyway Axiom is also written on top of xmlstream layer. So
>> if we can create a json type implementation for xmlstreams that will work
>> with any axis2 instance.
>>
>>>
>>> as i know ADB needs xml representation of all elements to process i.e ADB
>>> create complex and simple types of relevant xml representation of the
>>> request, and process the request. But here we only have wrapped xml
>>> elements. Should i implement ADB to use with json?
>>>
>>>>
>>>> thanks,
>>>> Amila.
>>>>
>>>>>
>>>>>
>>>>> Once you start your GSOC project, we will point you to some samples
>>>>> (such as the plain text handling in Synapse) that show how this works.
>>>>>
>>>>> >  <soap:Envelope><soap:Body>json-string</soap:Body></soap:Envelope> ,
>>>>> > json-string would be something like "method":{"name":"value"}.
>>>>> >
>>>>> > After that inside the message receiver it is processed using google
>>>>> > gson.
>>>>> > It can be dispatched using request uri based and qname based as
>>>>> > sagara
>>>>> > mentioned previous post.
>>>>> >
>>>>> > I'am interesting in doing these two approaches as the GSoc project.
>>>>> >  According to the knowledge that i have in Axis2 this implementation
>>>>> > can be done. But not sure about the workload of each approach because
>>>>> >  most probably i will meet lot of problems with these approaches.
>>>>> >
>>>>> >
>>>>> > About the analyzing part - First as a student i would like touch
>>>>> > architecture
>>>>> > and designing side also, But can you clarify your idea a little bit
>>>>> > as i
>>>>> > have seen
>>>>> > there are few blog posts explaining why axis2 cant support Mapped
>>>>> > convention?.
>>>>> >  Because it's not possible to know the namespace mappings used on one
>>>>> > side
>>>>> > of the transport to the other side (client or service).
>>>>>
>>>>> The situation is actually somewhat similar to how WSDL 2.0 attempted
>>>>> to describe REST services: on one side you have a client that speaks
>>>>> REST (using various HTTP verbs, resource identifiers, etc.) and on the
>>>>> other side you have a Web service with an abstract interface that is
>>>>> described in terms of operations, messages and XML schema constructs.
>>>>> The Web service engine then also needs to know how to map REST
>>>>> requests/responses to operations, messages, etc. These mappings are
>>>>> described in a WSDL binding.
>>>>>
>>>>> In the case of mapped JSON, it's actually even simpler, because the
>>>>> engine "only" needs to map between JSON prefixes and XML namespaces.
>>>>> However, as in the REST/WSDL 2.0 case that mapping is specific to a
>>>>> given service. It would actually be trivial to implement something
>>>>> that lets the developer specify these mappings on a service (a service
>>>>> parameter would be enough for that), but the problem is that the
>>>>> message builder (which is responsible to generate the XML
>>>>> representation) doesn't know which service will be invoked and is
>>>>> therefore unable to locate that configuration.
>>>>>
>>>>> >
>>>>> > On Wed, Jan 4, 2012 at 7:57 PM, Andreas Veithen
>>>>> > <andreas.veit...@gmail.com>
>>>>> > wrote:
>>>>> >>
>>>>> >>
>>>>> >> I think that it would also be interesting to add another task in the
>>>>> >> scope of that GSOC project, namely to analyze why Axis2 doesn't have
>>>>> >> a
>>>>> >> good support for mapped JSON. In fact, if you look at Shameera's
>>>>> >> initial post, he (she?)
>>>>> >
>>>>> > It's he :)
>>>>> >
>>>>> >
>>>>> > Thanks
>>>>> > Shameera
>>>>> >
>>>>> >>
>>>>> >> takes the fact that "Mapped formatted JSON
>>>>> >> with namespaces are not supported in Axis2" as a basic assumption.
>>>>> >> The
>>>>> >> interesting question is actually why this is so. I was thinking
>>>>> >> about
>>>>> >> this a couple of months ago, and I believe that this is actually due
>>>>> >> to a too restrictive assumption that is made in the Axis2
>>>>> >> architecture
>>>>> >> (which is that it is possible to construct a SOAP infoset solely
>>>>> >> based
>>>>> >> on the properties of the incoming message, i.e. the content of the
>>>>> >> message and its content type), and that this is connected to some
>>>>> >> other problems as well as the presence of code in Axis2 that doesn't
>>>>> >> fit naturally into the architecture.
>>>>> >>
>>>>> >> Fixing that properly would probably be out of scope for a GSOC
>>>>> >> project, but doing an analysis would be highly interesting, in
>>>>> >> particular if Shameera is interested not only in development, but
>>>>> >> also
>>>>> >> in architecture and design.
>>>>> >>
>>>>> >> I think that if one includes these different things into the
>>>>> >> proposal,
>>>>> >> it would indeed make a very interesting GSOC project. Can we agree
>>>>> >> on
>>>>> >> that?
>>>>> >>
>>>>> >> Andreas
>>>>> >>
>>>>> >> On Wed, Jan 4, 2012 at 13:54, Sagara Gunathunga
>>>>> >> <sagara.gunathu...@gmail.com> wrote:
>>>>> >> > This proposal is to address real issue with Axis2, that is in
>>>>> >> > Axis2 JSON
>>>>> >> > messages are not perform well as XML messages. Since we have
>>>>> >> > enough time
>>>>> >> > for
>>>>> >> > GSoC we can decide the best approach for this. With your
>>>>> >> > explanation 2nd
>>>>> >> > approach sound good to me , also this approach enable to use QName
>>>>> >> > based
>>>>> >> > dispatching on JSON messages too.
>>>>> >> >
>>>>> >> > One design consideration need to fulfill is full streaming support
>>>>> >> > in
>>>>> >> > builders/formatters level so that gson can process underline
>>>>> >> > stream
>>>>> >> > directly, otherwise this proposal is meaningless.
>>>>> >> >
>>>>> >> > My thought about project scope is first let student to define the
>>>>> >> > goals
>>>>> >> > and
>>>>> >> > scope and give our comments later during community discussion
>>>>> >> > period so
>>>>> >> > that
>>>>> >> > he can add/remove some additional goals that he has confidence on
>>>>> >> > implementing them.
>>>>> >> >
>>>>> >> > Thanks !
>>>>> >> >
>>>>> >> > On Wed, Jan 4, 2012 at 4:27 PM, Andreas Veithen
>>>>> >> > <andreas.veit...@gmail.com>
>>>>> >> > wrote:
>>>>> >> >>
>>>>> >> >> Axiom is an object model for XML and SOAP. Using it to store
>>>>> >> >> something
>>>>> >> >> that doesn't have an XML representation is sonsense. What you are
>>>>> >> >> probably referring to is the fact that an OMDataSource that backs
>>>>> >> >> an
>>>>> >> >> OMSourcedElement can store an arbitrary Java object. However, the
>>>>> >> >> OMDataSource must be able to produce an XML representation of
>>>>> >> >> that
>>>>> >> >> data. More precisely it must be able to create a representation
>>>>> >> >> in the
>>>>> >> >> form of an XMLStreamReader and it must be able to write the XML
>>>>> >> >> representation to an XMLStreamWriter.
>>>>> >> >>
>>>>> >> >> At the level of Axis2 that translates into the fact that when a
>>>>> >> >> message flows through the Axis2 engine, at any given point in
>>>>> >> >> time
>>>>> >> >> that message has a well defined SOAP infoset. In principle you
>>>>> >> >> could
>>>>> >> >> serialize the message to an XML document, deserialize it again
>>>>> >> >> and
>>>>> >> >> replace the SOAPEnvelope in the MessageContext with that
>>>>> >> >> deserialized
>>>>> >> >> message, without changing the outcome of the request.
>>>>> >> >>
>>>>> >> >> I don't know what you are doing in WSO2 products, but to my
>>>>> >> >> knowledge
>>>>> >> >> there is no exception to that rule in Axis2 or Synapse, even for
>>>>> >> >> plain
>>>>> >> >> text and binary messages. For both types of messages,
>>>>> >> >> Axis2/Synapse
>>>>> >> >> internally uses a well defined SOAP infoset:
>>>>> >> >>
>>>>> >> >> - For plain text messages, the SOAP infoset uses an element that
>>>>> >> >> wraps
>>>>> >> >> the entire text message as character data. E.g. for a message
>>>>> >> >> with
>>>>> >> >> content "my message", the SOAP infoset would be (namespaces
>>>>> >> >> removed):
>>>>> >> >>
>>>>> >> >> <soap:Envelope><soap:Body><ns:wrapper>my
>>>>> >> >> message</ns:wrapper></soap:Body></soap:Envelope>
>>>>> >> >>
>>>>> >> >> - For binary messages, the SOAP infoset uses an element that
>>>>> >> >> wraps the
>>>>> >> >> message encoded as base64Binary.
>>>>> >> >>
>>>>> >> >> That being said, Axis2 uses several Axiom features to avoid
>>>>> >> >> building a
>>>>> >> >> full DOM like in memory representation of the entire SOAP
>>>>> >> >> infoset:
>>>>> >> >>
>>>>> >> >> - For a request, the databindings consume the SOAP infoset
>>>>> >> >> without
>>>>> >> >> building the Axiom tree.
>>>>> >> >> - For a response, the databindings use an
>>>>> >> >> OMDataSource/OMSourcedElement that is able to write the XML
>>>>> >> >> representation directly to an XMLStreamWriter.
>>>>> >> >> - For plain text, we also use a special OMDataSource
>>>>> >> >> implementation
>>>>> >> >> that is able to produce the XML representation shown above, but
>>>>> >> >> that
>>>>> >> >> at the same time allows to stream the character data.
>>>>> >> >> - For binary messages, we simply use the Axiom features that are
>>>>> >> >> also
>>>>> >> >> used for XOP/MTOM, i.e. we construct a complete Axiom tree, but
>>>>> >> >> with
>>>>> >> >> an OMText instance that refers to a DataHandler with the binary
>>>>> >> >> data.
>>>>> >> >>
>>>>> >> >> However, these various optimizations don't change anything about
>>>>> >> >> the
>>>>> >> >> fact that in Axis2, a message always has a well defined SOAP
>>>>> >> >> infoset.
>>>>> >> >>
>>>>> >> >> Since google-gson defines a direct mapping between JSON and Java
>>>>> >> >> without defining an XML representation, you will have two
>>>>> >> >> options:
>>>>> >> >>
>>>>> >> >> 1. Use an OMDataSource that doesn't have an XML representation,
>>>>> >> >> i.e.
>>>>> >> >> that doesn't have meaningful implementations of the getReader and
>>>>> >> >> serialize methods, but that only acts as a holder for a Java
>>>>> >> >> object
>>>>> >> >> that can't be transformed to XML. That would clearly be a misuse
>>>>> >> >> of
>>>>> >> >> Axiom.
>>>>> >> >>
>>>>> >> >> 2. Define a trivial XML representation, which would be the JSON
>>>>> >> >> string
>>>>> >> >> wrapped in a wrapper element. Since this is the same thing as we
>>>>> >> >> do
>>>>> >> >> for plain text, we already have the corresponding message
>>>>> >> >> builders and
>>>>> >> >> formatters, and one would simply map these builders/formatters to
>>>>> >> >> the
>>>>> >> >> JSON content type. Implementing the proposal would then require
>>>>> >> >> only
>>>>> >> >> three things:
>>>>> >> >>
>>>>> >> >> - Implementing the message receiver.
>>>>> >> >> - Probably one would have to create a specialized OMDataSource
>>>>> >> >> that
>>>>> >> >> enables streaming of the response.
>>>>> >> >> - Potentially some minor enhancements to Axiom and/or the plain
>>>>> >> >> text
>>>>> >> >> message builders/formatters to make sure that streaming is fully
>>>>> >> >> supported.
>>>>> >> >>
>>>>> >> >> Since the message receiver is basically glue gode between
>>>>> >> >> google-gson,
>>>>> >> >> Axiom and the service object, it will be fairly trivial. The
>>>>> >> >> problem
>>>>> >> >> is then that the scope of this is likely not large enough for a
>>>>> >> >> GSOC
>>>>> >> >> project.
>>>>> >> >>
>>>>> >> >> Andreas
>>>>> >> >>
>>>>> >> >> On Sun, Jan 1, 2012 at 16:25, Sanjiva Weerawarana
>>>>> >> >> <sanj...@opensource.lk>
>>>>> >> >> wrote:
>>>>> >> >> > +1 - while Andreas this functionality can be implemented
>>>>> >> >> > without
>>>>> >> >> > Axis2,
>>>>> >> >> > the
>>>>> >> >> > proposed feature would add a lot of value to use of Axis2 as a
>>>>> >> >> > way to
>>>>> >> >> > have
>>>>> >> >> > services that have a good JSON binding in addition to other
>>>>> >> >> > bindings.
>>>>> >> >> > Axiom's design allows passing of non-XML content without
>>>>> >> >> > forcing XML
>>>>> >> >> > and
>>>>> >> >> > that model performs perfectly fine and well (Synapse and WSO2
>>>>> >> >> > ESB
>>>>> >> >> > both
>>>>> >> >> > leverage that heavily).
>>>>> >> >> >
>>>>> >> >> > Sanjiva.
>>>>> >> >> >
>>>>> >> >> >
>>>>> >> >> > On Fri, Dec 30, 2011 at 10:25 AM, Amila Suriarachchi
>>>>> >> >> > <amilasuriarach...@gmail.com> wrote:
>>>>> >> >> >>
>>>>> >> >> >>
>>>>> >> >> >>
>>>>> >> >> >> On Fri, Dec 30, 2011 at 12:35 AM, Andreas Veithen
>>>>> >> >> >> <andreas.veit...@gmail.com> wrote:
>>>>> >> >> >>>
>>>>> >> >> >>> On Thu, Dec 29, 2011 at 15:55, Amila Suriarachchi
>>>>> >> >> >>> <amilasuriarach...@gmail.com> wrote:
>>>>> >> >> >>> >
>>>>> >> >> >>> >
>>>>> >> >> >>> > On Tue, Dec 27, 2011 at 7:58 PM, Andreas Veithen
>>>>> >> >> >>> > <andreas.veit...@gmail.com>
>>>>> >> >> >>> > wrote:
>>>>> >> >> >>> >>
>>>>> >> >> >>> >> On Sun, Dec 25, 2011 at 15:09, Shameera Rathnayaka
>>>>> >> >> >>> >> <shameerai...@gmail.com> wrote:
>>>>> >> >> >>> >> > 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.
>>>>> >> >> >>> >>
>>>>> >> >> >>> >> What this means in practice is that you will have a
>>>>> >> >> >>> >> message
>>>>> >> >> >>> >> builder, a
>>>>> >> >> >>> >> message receiver and a message formatter that interact
>>>>> >> >> >>> >> with each
>>>>> >> >> >>> >> other, but that have no meaningful interaction with any
>>>>> >> >> >>> >> other
>>>>> >> >> >>> >> component of the Axis2 framework (the fundamental reason
>>>>> >> >> >>> >> being
>>>>> >> >> >>> >> that
>>>>> >> >> >>> >> google-gson defines a mapping between JSON and Java
>>>>> >> >> >>> >> objects, but
>>>>> >> >> >>> >> eliminates XML from the picture). The question is then why
>>>>> >> >> >>> >> would
>>>>> >> >> >>> >> a
>>>>> >> >> >>> >> user go through all the pain of setting up Axis2 for this?
>>>>> >> >> >>> >
>>>>> >> >> >>> >
>>>>> >> >> >>> > if you look into a point where users only need to expose a
>>>>> >> >> >>> > POJO
>>>>> >> >> >>> > with
>>>>> >> >> >>> > json
>>>>> >> >> >>> > then they don't have to use Axis2.
>>>>> >> >> >>> >
>>>>> >> >> >>> > But if the user want to expose the same POJO service both
>>>>> >> >> >>> > soap
>>>>> >> >> >>> > and
>>>>> >> >> >>> > json
>>>>> >> >> >>> > formats this provides a value in terms of performance for
>>>>> >> >> >>> > latter
>>>>> >> >> >>> > case.
>>>>> >> >> >>> > In
>>>>> >> >> >>> > this case JSON message receiver can be written extending
>>>>> >> >> >>> > RPC
>>>>> >> >> >>> > message
>>>>> >> >> >>> > receiver and call the normal RPC processing if the received
>>>>> >> >> >>> > message
>>>>> >> >> >>> > is
>>>>> >> >> >>> > not a
>>>>> >> >> >>> > json one.
>>>>> >> >> >>> >
>>>>> >> >> >>> > thanks,
>>>>> >> >> >>> > Amila.
>>>>> >> >> >>>
>>>>> >> >> >>> As you know, Axis2 assumes that every message it processes is
>>>>> >> >> >>> representable as XML (which is different from CXF where a
>>>>> >> >> >>> message
>>>>> >> >> >>> can
>>>>> >> >> >>> have different representations, depending on the phase that
>>>>> >> >> >>> is
>>>>> >> >> >>> executed). Until now this has always been the case, even for
>>>>> >> >> >>> plain
>>>>> >> >> >>> text and unstructured binary data. Are you going to drop that
>>>>> >> >> >>> requirement from the Axis2 architecture
>>>>> >> >> >>
>>>>> >> >> >>
>>>>> >> >> >> Drop that requirement ( I would say initially Axis2 is
>>>>> >> >> >> designed like
>>>>> >> >> >> that
>>>>> >> >> >> but latter specially in all contract first approaches it has
>>>>> >> >> >> not
>>>>> >> >> >> followed
>>>>> >> >> >> this for performance reasons)  and make an efficient way to
>>>>> >> >> >> work
>>>>> >> >> >> with
>>>>> >> >> >> JSON.
>>>>> >> >> >> Then obviously this won't support WS-Security etc .. which are
>>>>> >> >> >> anyway
>>>>> >> >> >> meaningless for json.
>>>>> >> >> >>
>>>>> >> >> >> If you look at how ADB works for non security (or non message
>>>>> >> >> >> building
>>>>> >> >> >> case) is similar to this. It stores the xml stream in the
>>>>> >> >> >> Axiom
>>>>> >> >> >> object
>>>>> >> >> >> (this
>>>>> >> >> >> feature has come from axiom differed building) and get that
>>>>> >> >> >> underline
>>>>> >> >> >> stream
>>>>> >> >> >> at the message receiver and directly build the java objects
>>>>> >> >> >> from
>>>>> >> >> >> that.
>>>>> >> >> >> Then
>>>>> >> >> >> at the response also it save the response in OMDatasource and
>>>>> >> >> >> directly
>>>>> >> >> >> serialize to the xml stream at the formatter.
>>>>> >> >> >>
>>>>> >> >> >> So idea for this is to provide such a direct stream parsing
>>>>> >> >> >> serializing
>>>>> >> >> >> technique which performs well for POJO objects to communicate
>>>>> >> >> >> using
>>>>> >> >> >> json.
>>>>> >> >> >>
>>>>> >> >> >> thanks,
>>>>> >> >> >> Amila.
>>>>> >> >> >>
>>>>> >> >> >>>
>>>>> >> >> >>> or else, what would be the XML
>>>>> >> >> >>> representation of a JSON message received by that message
>>>>> >> >> >>> receiver?
>>>>> >> >> >>>
>>>>> >> >> >>> >
>>>>> >> >> >>> >>
>>>>> >> >> >>> >>
>>>>> >> >> >>> >> Andreas
>>>>> >> >> >>> >>
>>>>> >> >> >>> >>
>>>>> >> >> >>> >>
>>>>> >> >> >>> >>
>>>>> >> >> >>> >> ---------------------------------------------------------------------
>>>>> >> >> >>> >> To unsubscribe, e-mail:
>>>>> >> >> >>> >> java-dev-unsubscr...@axis.apache.org
>>>>> >> >> >>> >> For additional commands, e-mail:
>>>>> >> >> >>> >> java-dev-h...@axis.apache.org
>>>>> >> >> >>> >>
>>>>> >> >> >>> >
>>>>> >> >> >>> >
>>>>> >> >> >>> >
>>>>> >> >> >>> > --
>>>>> >> >> >>> > Amila Suriarachchi
>>>>> >> >> >>> > WSO2 Inc.
>>>>> >> >> >>> > blog: http://amilachinthaka.blogspot.com/
>>>>> >> >> >>>
>>>>> >> >> >>>
>>>>> >> >> >>>
>>>>> >> >> >>> ---------------------------------------------------------------------
>>>>> >> >> >>> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
>>>>> >> >> >>> For additional commands, e-mail:
>>>>> >> >> >>> java-dev-h...@axis.apache.org
>>>>> >> >> >>>
>>>>> >> >> >>
>>>>> >> >> >>
>>>>> >> >> >>
>>>>> >> >> >> --
>>>>> >> >> >> Amila Suriarachchi
>>>>> >> >> >> WSO2 Inc.
>>>>> >> >> >> blog: http://amilachinthaka.blogspot.com/
>>>>> >> >> >
>>>>> >> >> >
>>>>> >> >> >
>>>>> >> >> >
>>>>> >> >> > --
>>>>> >> >> > Sanjiva Weerawarana, Ph.D.
>>>>> >> >> > Founder, Director & Chief Scientist; Lanka Software Foundation;
>>>>> >> >> > http://www.opensource.lk/
>>>>> >> >> > Founder, Chairman & CEO; WSO2; http://wso2.com/
>>>>> >> >> > Founder & Director; Thinkcube Systems;
>>>>> >> >> > http://www.thinkcube.com/
>>>>> >> >> > Member; Apache Software Foundation; http://www.apache.org/
>>>>> >> >> > Visiting Lecturer; University of Moratuwa;
>>>>> >> >> > http://www.cse.mrt.ac.lk/
>>>>> >> >> >
>>>>> >> >> > Blog: http://sanjiva.weerawarana.org/
>>>>> >> >> >
>>>>> >> >>
>>>>> >> >>
>>>>> >> >> ---------------------------------------------------------------------
>>>>> >> >> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
>>>>> >> >> For additional commands, e-mail: java-dev-h...@axis.apache.org
>>>>> >> >>
>>>>> >> >
>>>>> >> >
>>>>> >> >
>>>>> >> > --
>>>>> >> > Sagara Gunathunga
>>>>> >> >
>>>>> >> > Blog      - http://ssagara.blogspot.com
>>>>> >> > Web      - http://people.apache.org/~sagara/
>>>>> >> > LinkedIn - http://www.linkedin.com/in/ssagara
>>>>> >>
>>>>> >>
>>>>> >> ---------------------------------------------------------------------
>>>>> >> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
>>>>> >> For additional commands, e-mail: java-dev-h...@axis.apache.org
>>>>> >>
>>>>> >
>>>>> >
>>>>> >
>>>>> > --
>>>>> > Shameera Rathnayaka
>>>>> > Undergraduate
>>>>> > Department of Computer Science and Engineering
>>>>> > University of Moratuwa.
>>>>> > Sri Lanka.
>>>>> >
>>>>> > Blog : http://shameerarathnayaka.blogspot.com/
>>>>> >
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
>>>>> For additional commands, e-mail: java-dev-h...@axis.apache.org
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Amila Suriarachchi
>>>> WSO2 Inc.
>>>> blog: http://amilachinthaka.blogspot.com/
>>>
>>>
>>>
>>>
>>> --
>>> 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/
>
>
>
>
> --
> Shameera Rathnayaka
> Undergraduate
> Department of Computer Science and Engineering
> University of Moratuwa.
> Sri Lanka.
>
> Blog : http://shameerarathnayaka.blogspot.com/
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
> For additional commands, e-mail: java-dev-h...@axis.apache.org



-- 
Sagara Gunathunga

Blog      - http://ssagara.blogspot.com
Web      - http://people.apache.org/~sagara/
LinkedIn - http://www.linkedin.com/in/ssagara

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to