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
