Thanks. Lets work towards getting a working XML Handling example in MINA

My +1

Shall post the code ones I am done.

thanks
ashish

On Wed, Oct 22, 2008 at 10:03 PM, Smith <[EMAIL PROTECTED]> wrote:
> Hi , i'm following your discussion and i remember that the guys from
> JiveSoftware have created an XMPP server using mina , and the XMPP protocol
> use XML Stream. The software is under GPL so you can take a look a the
> source to see how they handle this problem :)
>
>
> Le 22 oct. 08 à 15:05, newToMina a écrit :
>
>>
>> Ashish, Thanks for the detailed reply. Could you please email me the
>> sample
>> code you have?
>>
>>
>> Ashish-24 wrote:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?> is just an indication of which
>>> version and encoding to be used.
>>> Many applications omit this as well, and still this works.
>>>
>>> Just to summarize what I understood from this thread
>>> 1. Need an XML Decoder/Encoder for a MINA based application :-)
>>> 2. Multiple XML documents can be received. The client code may be
>>> multiplexing all messages to a server. Though this is a very typical
>>> behavior indicating that Clients are asynchronous, they don't wait for
>>> a response, else wouldn't have sent the next xml
>>>
>>> I believe the solution has been discussed. Look for Start tag and end
>>> tag. I worked out a sample using CumulativeProtocolDecoder and it
>>> seems to work fine for simple cases. Its really a bad piece of code
>>> and won't like to scare away anyone :-)
>>>
>>> These are the logical steps
>>> 1. Find the root element
>>> 2. Once found, keep looking till you get the end element, and return
>>> false from doDecode()
>>> if you don't receive it plan to throw away the message, as per some
>>> strategy not known to me
>>> 3. Once you get the end element, write to the ProtocolDecoderOutput
>>> and return true from doDecode(). Now you IoHandler shall see the
>>> complete xml. Just get the bytes from IoBuffer and create a new
>>> String. Use any XML parser either in IoHandler or in another filter.
>>> 4. Keep XML parsing in a filter if you can really ensure your
>>> IoHandler can easily detect the incoming Object (Logic of which object
>>> to choose should be simple)
>>> Done
>>>
>>> Just to make life a little more complicated, here are the things I got
>>> stuck
>>>
>>> 1. Large packets get fragment. I used MINA's pom.xml and tested it,
>>> got 4 read operations. Now the question is how should I detect and
>>> reassemble out of order packets? I my code I simply appended to the
>>> buffer for each read. MINA experts to guide on guide on this.
>>>
>>> 2. To create a generic XML Decoder, we need to have functionality as
>>> per XML spec. for simple xml easy solution would do. My program failed
>>> coz, pom.xml had comment after <?xml version="1.0" encoding="UTF-8"?>
>>> <!-- --> :-(
>>>
>>> 3. If have 2 xml messages in my decoder, how to pass one to handler
>>> and keep other withing decoder till its get completed. Basically
>>> generating 2 message received at IoHandler?
>>>
>>> We could overcome problem 2 using some regular expression and
>>> implementing basic XML parser functionality. Alternatively for a very
>>> robust implementation we may use implementation similar to AsyncWeb's
>>> DecodingState parsing of HTTP.
>>>
>>> I have been blogging about MINA for a while. Trustin and Mike have
>>> already been there. Not sure whether to share them here or not? The
>>> post are the simple example programs that I worked out using MINA.
>>> Forum admins can guide me on this.
>>>
>>> thanks
>>> ashish
>>>
>>> On Wed, Oct 22, 2008 at 4:03 AM, Andres Martinez Quijano
>>> <[EMAIL PROTECTED]> wrote:
>>>>
>>>> so the <?xml version="1.0" encoding="UTF-8"?> tag uniquely describes
>>>> the begining of a new document
>>>>
>>>> On Tue, Oct 21, 2008 at 6:37 PM, newToMina <[EMAIL PROTECTED]> wrote:
>>>>>
>>>>> The messages will of the following format.
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <Message>
>>>>> <MessageType>XYZ</MessageType>
>>>>> <MessageId>1212</StoreNum>
>>>>> <DateTime>20070510132500</DateTime>
>>>>> .
>>>>> .
>>>>> .
>>>>> .
>>>>> </Message>
>>>>>
>>>>> The </Message> tag indicates the end of a document.
>>>>
>>>
>>>
>>>
>>> --
>>> thanks
>>> ashish
>>>
>>> Blog: http://www.ashishpaliwal.com/blog
>>>
>>> My Photo Galleries: http://www.pbase.com/ashishpaliwal
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/MINA---design-guidelines-tp20077627p20110316.html
>> Sent from the Apache MINA User Forum mailing list archive at Nabble.com.
>>
>
>



-- 
thanks
ashish

Blog: http://www.ashishpaliwal.com/blog

My Photo Galleries: http://www.pbase.com/ashishpaliwal

Reply via email to