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.

Reply via email to