You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Mark Webb <el...@gmail.com> on 2007/04/10 13:05:30 UTC

getting started guide

I have added a tutorial that walks a new user through the process of
developing a MINA based application.  In this case, the tutorial shows the
user how to write a time server.  Take a look at the document and let me
know what you think.

http://mina.apache.org/quick-start-guide.html

Thank you.

-- 
..Cheers
Mark

Re: getting started guide

Posted by Maarten Bosteels <mb...@gmail.com>.
On 4/10/07, Roman Magarshak <rm...@nds.com> wrote:
>
> By the way is there a posibility to download sources of 2.0 without svn?


not as far as I know.

(firewall)
>

The firewall should not get in the way, because svn can use http (or https)
try this
svn co http://svn.apache.org/repos/asf/mina/trunk


In a previous thread, Trustin suggested a a poll about the best date for
2.0-M1 release.
And he also wrote "We could introduce each change per each milestone release
though."

I vote for "releasing a 2.0 milestone for every fixed bug"

Maarten


On Tue, 2007-04-10 at 15:20 +0100, Rodrigo Madera wrote:
> > In my opinion, whichever you choose is fine.
> >
> > Trustin, what are the plans for 2.0?
> > Will it eventually replace 1.x or is it planed to branch independently?
> >
> > Rodrigo
> >
> > On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> > >
> > > I could just add a "2.0" section for that part.  No need in building 2
> > > tutorials IMO.
> > >
> > > On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> > > >
> > > > Great!
> > > >
> > > > Now this should be put on the Wiki...
> > > > What do you think Mark? Create a 2.0 version by cloning your article
> and
> > > > renaming?
> > > >
> > > > Rodrigo
> > > >
> > > > On 4/10/07, Maarten Bosteels < mbosteels.dns@gmail.com> wrote:
> > > > >
> > > > > Rodrigo,
> > > > >
> > > > > I was testing the example but only had mina-2.0 at hand, so I
> modified
> > > > it
> > > > > to
> > > > > work with 2.0
> > > > > Here it is:
> > > > >
> > > > > public class MinaTimeServer {
> > > > >   private static final int PORT = 9123;
> > > > >
> > > > >   public static void main(String[] args) throws IOException {
> > > > >
> > > > >     SocketAcceptor acceptor = new SocketAcceptor();
> > > > >
> > > > >     acceptor.getFilterChain().addLast("logger", new
> LoggingFilter() );
> > > > >     acceptor.getFilterChain().addLast( "codec", new
> > > ProtocolCodecFilter(
> > > > > new
> > > > > TextLineCodecFactory( Charset.forName( "UTF-8" ))));
> > > > >     acceptor.setReuseAddress(true);
> > > > >
> > > > >     acceptor.setHandler(new TimeServerHandler() );
> > > > >     acceptor.setLocalAddress( new InetSocketAddress(PORT) );
> > > > >     acceptor.bind();
> > > > >     System.out.println("MINA Time server started.");
> > > > >   }
> > > > > }
> > > > >
> > > > > As you can see, there's a litlle difference.
> > > > > Maarten
> > > > >
> > > > >
> > > > > On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> > > > > >
> > > > > > Mark,
> > > > > >
> > > > > > Could you also provide a 2.0 version of it?
> > > > > > If you have the opportunity, that would be excellent!
> > > > > >
> > > > > > Rodrigo
> > > > > >
> > > > > > On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> > > > > > > I have added a tutorial that walks a new user through the
> process
> > > of
> > > > > > > developing a MINA based application.  In this case, the
> tutorial
> > > > shows
> > > > > > the
> > > > > > > user how to write a time server.  Take a look at the document
> and
> > > > let
> > > > > me
> > > > > > > know what you think.
> > > > > > >
> > > > > > > http://mina.apache.org/quick-start-guide.html
> > > > > > >
> > > > > > > Thank you.
> > > > > > >
> > > > > > > --
> > > > > > > ..Cheers
> > > > > > > Mark
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > ..Cheers
> > > Mark
> > >
> --
> Thank you in advance
>         Roman.
>
> ***********************************************************************************
> This email message and any attachments thereto are intended only for use
> by the addressee(s) named above, and may contain legally privileged and/or
> confidential information. If the reader of this message is not the intended
> recipient, or the employee or agent responsible to deliver it to the
> intended recipient, you are hereby notified that any dissemination,
> distribution or copying of this communication is strictly prohibited. If you
> have received this communication in error, please immediately notify the
> postmaster@nds.com and destroy the original message.
>
> ***********************************************************************************
>

Re: getting started guide

Posted by Roman Magarshak <rm...@nds.com>.
By the way is there a posibility to download sources of 2.0 without svn?
(firewall)


On Tue, 2007-04-10 at 15:20 +0100, Rodrigo Madera wrote:
> In my opinion, whichever you choose is fine.
> 
> Trustin, what are the plans for 2.0?
> Will it eventually replace 1.x or is it planed to branch independently?
> 
> Rodrigo
> 
> On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> >
> > I could just add a "2.0" section for that part.  No need in building 2
> > tutorials IMO.
> >
> > On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> > >
> > > Great!
> > >
> > > Now this should be put on the Wiki...
> > > What do you think Mark? Create a 2.0 version by cloning your article and
> > > renaming?
> > >
> > > Rodrigo
> > >
> > > On 4/10/07, Maarten Bosteels <mb...@gmail.com> wrote:
> > > >
> > > > Rodrigo,
> > > >
> > > > I was testing the example but only had mina-2.0 at hand, so I modified
> > > it
> > > > to
> > > > work with 2.0
> > > > Here it is:
> > > >
> > > > public class MinaTimeServer {
> > > >   private static final int PORT = 9123;
> > > >
> > > >   public static void main(String[] args) throws IOException {
> > > >
> > > >     SocketAcceptor acceptor = new SocketAcceptor();
> > > >
> > > >     acceptor.getFilterChain().addLast("logger", new LoggingFilter() );
> > > >     acceptor.getFilterChain().addLast( "codec", new
> > ProtocolCodecFilter(
> > > > new
> > > > TextLineCodecFactory( Charset.forName( "UTF-8" ))));
> > > >     acceptor.setReuseAddress(true);
> > > >
> > > >     acceptor.setHandler(new TimeServerHandler() );
> > > >     acceptor.setLocalAddress( new InetSocketAddress(PORT) );
> > > >     acceptor.bind();
> > > >     System.out.println("MINA Time server started.");
> > > >   }
> > > > }
> > > >
> > > > As you can see, there's a litlle difference.
> > > > Maarten
> > > >
> > > >
> > > > On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> > > > >
> > > > > Mark,
> > > > >
> > > > > Could you also provide a 2.0 version of it?
> > > > > If you have the opportunity, that would be excellent!
> > > > >
> > > > > Rodrigo
> > > > >
> > > > > On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> > > > > > I have added a tutorial that walks a new user through the process
> > of
> > > > > > developing a MINA based application.  In this case, the tutorial
> > > shows
> > > > > the
> > > > > > user how to write a time server.  Take a look at the document and
> > > let
> > > > me
> > > > > > know what you think.
> > > > > >
> > > > > > http://mina.apache.org/quick-start-guide.html
> > > > > >
> > > > > > Thank you.
> > > > > >
> > > > > > --
> > > > > > ..Cheers
> > > > > > Mark
> > > > > >
> > > > >
> > > >
> > >
> >
> >
> >
> > --
> > ..Cheers
> > Mark
> >
-- 
Thank you in advance
        Roman.
***********************************************************************************
This email message and any attachments thereto are intended only for use by the addressee(s) named above, and may contain legally privileged and/or confidential information. If the reader of this message is not the intended recipient, or the employee or agent responsible to deliver it to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the postmaster@nds.com and destroy the original message.
***********************************************************************************

Re: getting started guide

Posted by Mark Webb <el...@gmail.com>.
The reason that I chose 1.1 was that it is the latest stable release.  I
thought that a quick start guide should be targeted towards people who will
not be checking out the latest from subversion, and therefore would not use
2.0.

If you disagree, we can add in a 2.0 section.


On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
>
> In my opinion, whichever you choose is fine.
>
> Trustin, what are the plans for 2.0?
> Will it eventually replace 1.x or is it planed to branch independently?
>
> Rodrigo
>
> On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> >
> > I could just add a "2.0" section for that part.  No need in building 2
> > tutorials IMO.
> >
> > On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> > >
> > > Great!
> > >
> > > Now this should be put on the Wiki...
> > > What do you think Mark? Create a 2.0 version by cloning your article
> and
> > > renaming?
> > >
> > > Rodrigo
> > >
> > > On 4/10/07, Maarten Bosteels <mb...@gmail.com> wrote:
> > > >
> > > > Rodrigo,
> > > >
> > > > I was testing the example but only had mina-2.0 at hand, so I
> modified
> > > it
> > > > to
> > > > work with 2.0
> > > > Here it is:
> > > >
> > > > public class MinaTimeServer {
> > > >   private static final int PORT = 9123;
> > > >
> > > >   public static void main(String[] args) throws IOException {
> > > >
> > > >     SocketAcceptor acceptor = new SocketAcceptor();
> > > >
> > > >     acceptor.getFilterChain().addLast("logger", new LoggingFilter()
> );
> > > >     acceptor.getFilterChain().addLast( "codec", new
> > ProtocolCodecFilter(
> > > > new
> > > > TextLineCodecFactory( Charset.forName( "UTF-8" ))));
> > > >     acceptor.setReuseAddress(true);
> > > >
> > > >     acceptor.setHandler(new TimeServerHandler() );
> > > >     acceptor.setLocalAddress( new InetSocketAddress(PORT) );
> > > >     acceptor.bind();
> > > >     System.out.println("MINA Time server started.");
> > > >   }
> > > > }
> > > >
> > > > As you can see, there's a litlle difference.
> > > > Maarten
> > > >
> > > >
> > > > On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> > > > >
> > > > > Mark,
> > > > >
> > > > > Could you also provide a 2.0 version of it?
> > > > > If you have the opportunity, that would be excellent!
> > > > >
> > > > > Rodrigo
> > > > >
> > > > > On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> > > > > > I have added a tutorial that walks a new user through the
> process
> > of
> > > > > > developing a MINA based application.  In this case, the tutorial
> > > shows
> > > > > the
> > > > > > user how to write a time server.  Take a look at the document
> and
> > > let
> > > > me
> > > > > > know what you think.
> > > > > >
> > > > > > http://mina.apache.org/quick-start-guide.html
> > > > > >
> > > > > > Thank you.
> > > > > >
> > > > > > --
> > > > > > ..Cheers
> > > > > > Mark
> > > > > >
> > > > >
> > > >
> > >
> >
> >
> >
> > --
> > ..Cheers
> > Mark
> >
>



-- 
..Cheers
Mark

Re: getting started guide

Posted by Rodrigo Madera <ro...@gmail.com>.
In my opinion, whichever you choose is fine.

Trustin, what are the plans for 2.0?
Will it eventually replace 1.x or is it planed to branch independently?

Rodrigo

On 4/10/07, Mark Webb <el...@gmail.com> wrote:
>
> I could just add a "2.0" section for that part.  No need in building 2
> tutorials IMO.
>
> On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> >
> > Great!
> >
> > Now this should be put on the Wiki...
> > What do you think Mark? Create a 2.0 version by cloning your article and
> > renaming?
> >
> > Rodrigo
> >
> > On 4/10/07, Maarten Bosteels <mb...@gmail.com> wrote:
> > >
> > > Rodrigo,
> > >
> > > I was testing the example but only had mina-2.0 at hand, so I modified
> > it
> > > to
> > > work with 2.0
> > > Here it is:
> > >
> > > public class MinaTimeServer {
> > >   private static final int PORT = 9123;
> > >
> > >   public static void main(String[] args) throws IOException {
> > >
> > >     SocketAcceptor acceptor = new SocketAcceptor();
> > >
> > >     acceptor.getFilterChain().addLast("logger", new LoggingFilter() );
> > >     acceptor.getFilterChain().addLast( "codec", new
> ProtocolCodecFilter(
> > > new
> > > TextLineCodecFactory( Charset.forName( "UTF-8" ))));
> > >     acceptor.setReuseAddress(true);
> > >
> > >     acceptor.setHandler(new TimeServerHandler() );
> > >     acceptor.setLocalAddress( new InetSocketAddress(PORT) );
> > >     acceptor.bind();
> > >     System.out.println("MINA Time server started.");
> > >   }
> > > }
> > >
> > > As you can see, there's a litlle difference.
> > > Maarten
> > >
> > >
> > > On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> > > >
> > > > Mark,
> > > >
> > > > Could you also provide a 2.0 version of it?
> > > > If you have the opportunity, that would be excellent!
> > > >
> > > > Rodrigo
> > > >
> > > > On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> > > > > I have added a tutorial that walks a new user through the process
> of
> > > > > developing a MINA based application.  In this case, the tutorial
> > shows
> > > > the
> > > > > user how to write a time server.  Take a look at the document and
> > let
> > > me
> > > > > know what you think.
> > > > >
> > > > > http://mina.apache.org/quick-start-guide.html
> > > > >
> > > > > Thank you.
> > > > >
> > > > > --
> > > > > ..Cheers
> > > > > Mark
> > > > >
> > > >
> > >
> >
>
>
>
> --
> ..Cheers
> Mark
>

Re: getting started guide

Posted by Mark Webb <el...@gmail.com>.
I could just add a "2.0" section for that part.  No need in building 2
tutorials IMO.

On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
>
> Great!
>
> Now this should be put on the Wiki...
> What do you think Mark? Create a 2.0 version by cloning your article and
> renaming?
>
> Rodrigo
>
> On 4/10/07, Maarten Bosteels <mb...@gmail.com> wrote:
> >
> > Rodrigo,
> >
> > I was testing the example but only had mina-2.0 at hand, so I modified
> it
> > to
> > work with 2.0
> > Here it is:
> >
> > public class MinaTimeServer {
> >   private static final int PORT = 9123;
> >
> >   public static void main(String[] args) throws IOException {
> >
> >     SocketAcceptor acceptor = new SocketAcceptor();
> >
> >     acceptor.getFilterChain().addLast("logger", new LoggingFilter() );
> >     acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter(
> > new
> > TextLineCodecFactory( Charset.forName( "UTF-8" ))));
> >     acceptor.setReuseAddress(true);
> >
> >     acceptor.setHandler(new TimeServerHandler() );
> >     acceptor.setLocalAddress( new InetSocketAddress(PORT) );
> >     acceptor.bind();
> >     System.out.println("MINA Time server started.");
> >   }
> > }
> >
> > As you can see, there's a litlle difference.
> > Maarten
> >
> >
> > On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> > >
> > > Mark,
> > >
> > > Could you also provide a 2.0 version of it?
> > > If you have the opportunity, that would be excellent!
> > >
> > > Rodrigo
> > >
> > > On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> > > > I have added a tutorial that walks a new user through the process of
> > > > developing a MINA based application.  In this case, the tutorial
> shows
> > > the
> > > > user how to write a time server.  Take a look at the document and
> let
> > me
> > > > know what you think.
> > > >
> > > > http://mina.apache.org/quick-start-guide.html
> > > >
> > > > Thank you.
> > > >
> > > > --
> > > > ..Cheers
> > > > Mark
> > > >
> > >
> >
>



-- 
..Cheers
Mark

Re: getting started guide

Posted by Rodrigo Madera <ro...@gmail.com>.
Great!

Now this should be put on the Wiki...
What do you think Mark? Create a 2.0 version by cloning your article and
renaming?

Rodrigo

On 4/10/07, Maarten Bosteels <mb...@gmail.com> wrote:
>
> Rodrigo,
>
> I was testing the example but only had mina-2.0 at hand, so I modified it
> to
> work with 2.0
> Here it is:
>
> public class MinaTimeServer {
>   private static final int PORT = 9123;
>
>   public static void main(String[] args) throws IOException {
>
>     SocketAcceptor acceptor = new SocketAcceptor();
>
>     acceptor.getFilterChain().addLast("logger", new LoggingFilter() );
>     acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter(
> new
> TextLineCodecFactory( Charset.forName( "UTF-8" ))));
>     acceptor.setReuseAddress(true);
>
>     acceptor.setHandler(new TimeServerHandler() );
>     acceptor.setLocalAddress( new InetSocketAddress(PORT) );
>     acceptor.bind();
>     System.out.println("MINA Time server started.");
>   }
> }
>
> As you can see, there's a litlle difference.
> Maarten
>
>
> On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
> >
> > Mark,
> >
> > Could you also provide a 2.0 version of it?
> > If you have the opportunity, that would be excellent!
> >
> > Rodrigo
> >
> > On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> > > I have added a tutorial that walks a new user through the process of
> > > developing a MINA based application.  In this case, the tutorial shows
> > the
> > > user how to write a time server.  Take a look at the document and let
> me
> > > know what you think.
> > >
> > > http://mina.apache.org/quick-start-guide.html
> > >
> > > Thank you.
> > >
> > > --
> > > ..Cheers
> > > Mark
> > >
> >
>

Re: getting started guide

Posted by Maarten Bosteels <mb...@gmail.com>.
Rodrigo,

I was testing the example but only had mina-2.0 at hand, so I modified it to
work with 2.0
Here it is:

public class MinaTimeServer {
  private static final int PORT = 9123;

  public static void main(String[] args) throws IOException {

    SocketAcceptor acceptor = new SocketAcceptor();

    acceptor.getFilterChain().addLast("logger", new LoggingFilter() );
    acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new
TextLineCodecFactory( Charset.forName( "UTF-8" ))));
    acceptor.setReuseAddress(true);

    acceptor.setHandler(new TimeServerHandler() );
    acceptor.setLocalAddress( new InetSocketAddress(PORT) );
    acceptor.bind();
    System.out.println("MINA Time server started.");
  }
}

As you can see, there's a litlle difference.
Maarten


On 4/10/07, Rodrigo Madera <ro...@gmail.com> wrote:
>
> Mark,
>
> Could you also provide a 2.0 version of it?
> If you have the opportunity, that would be excellent!
>
> Rodrigo
>
> On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> > I have added a tutorial that walks a new user through the process of
> > developing a MINA based application.  In this case, the tutorial shows
> the
> > user how to write a time server.  Take a look at the document and let me
> > know what you think.
> >
> > http://mina.apache.org/quick-start-guide.html
> >
> > Thank you.
> >
> > --
> > ..Cheers
> > Mark
> >
>

Re: getting started guide

Posted by Rodrigo Madera <ro...@gmail.com>.
Mark,

Could you also provide a 2.0 version of it?
If you have the opportunity, that would be excellent!

Rodrigo

On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> I have added a tutorial that walks a new user through the process of
> developing a MINA based application.  In this case, the tutorial shows the
> user how to write a time server.  Take a look at the document and let me
> know what you think.
>
> http://mina.apache.org/quick-start-guide.html
>
> Thank you.
>
> --
> ..Cheers
> Mark
>

Re: getting started guide

Posted by Mark Webb <el...@gmail.com>.
see comments....

On 4/10/07, Maarten Bosteels <mb...@gmail.com> wrote:
>
> Mark,
>
> I think a quick-start-guide for MINA is a very good idea.
> (it's something I wanted to contribute myself for a long time, but I kept
> postponing it)
>
> So, I will contribute with some constructive remarks :-)


Thanks.  I wrote most of this after midnight last night, so it is a little
rough I guess...

* It says: The logging filter will simply log the message using the SL4J
> library, and the codec filter will encode each message using the
> supplied TextLineCodecFactory
> <
> http://mina.apache.org/report/1.1/apidocs/org/apache/mina/filter/codec/textline/TextLineCodecFactory.html
> >class.
>
>
> => actually, the codec filter will both encode and decode messages


fixed.

* it says "The exceptionCaught method will simply print the stack trace of
> the error and close the session. "
>
> => the code does not close the session at all
> (btw, I could force the exceptionCaught from the telnet client by hitting
> CTR-C + enter)


fixed the code example.

* It says "This method will also print out the current time to standard
> out."
> => but the code only writes "Message written..." to standard out


fixed.

* It says "Depending on the protocol codec that you use, the object (second
> parameter) that gets passed in to this method will be different, as well
> as
> the object that you pass in to the session.write(Object) method."
>
> This description is a little bit vague to me.
> Since the decoder/encoder mechnism is an import part of the MINA design
> I think it would be a good idea to use a custom encoder/decoder in the
> example (ie not use the TextLineCodecFactory).
> WDYT ?


I think a custom encoder/decoder is overkill for a quick start tutorial.
Maybe a reference to the codec tutorial (yet to be written) would be
sufficient.

And maybe mention the possibility to add an ExecutorFilter, or add a link to
> http://mina.apache.org/configuring-thread-model.html


fixed.

Maarten
>
> On 4/10/07, Mark Webb <el...@gmail.com> wrote:
> >
> > I have added a tutorial that walks a new user through the process of
> > developing a MINA based application.  In this case, the tutorial shows
> the
> > user how to write a time server.  Take a look at the document and let me
> > know what you think.
> >
> > http://mina.apache.org/quick-start-guide.html
> >
> > Thank you.
> >
> > --
> > ..Cheers
> > Mark
> >
>



-- 
..Cheers
Mark

Re: getting started guide

Posted by Maarten Bosteels <mb...@gmail.com>.
Mark,

I think a quick-start-guide for MINA is a very good idea.
(it's something I wanted to contribute myself for a long time, but I kept
postponing it)

So, I will contribute with some constructive remarks :-)

* It says: The logging filter will simply log the message using the SL4J
library, and the codec filter will encode each message using the
supplied TextLineCodecFactory
<http://mina.apache.org/report/1.1/apidocs/org/apache/mina/filter/codec/textline/TextLineCodecFactory.html>class.


=> actually, the codec filter will both encode and decode messages

* it says "The exceptionCaught method will simply print the stack trace of
the error and close the session. "

=> the code does not close the session at all
(btw, I could force the exceptionCaught from the telnet client by hitting
CTR-C + enter)

* It says "This method will also print out the current time to standard
out."
=> but the code only writes "Message written..." to standard out

* It says "Depending on the protocol codec that you use, the object (second
parameter) that gets passed in to this method will be different, as well as
the object that you pass in to the session.write(Object) method."

This description is a little bit vague to me.
Since the decoder/encoder mechnism is an import part of the MINA design
I think it would be a good idea to use a custom encoder/decoder in the
example (ie not use the TextLineCodecFactory).
WDYT ?

And maybe mention the possibility to add an ExecutorFilter, or add a link to
http://mina.apache.org/configuring-thread-model.html

Maarten

On 4/10/07, Mark Webb <el...@gmail.com> wrote:
>
> I have added a tutorial that walks a new user through the process of
> developing a MINA based application.  In this case, the tutorial shows the
> user how to write a time server.  Take a look at the document and let me
> know what you think.
>
> http://mina.apache.org/quick-start-guide.html
>
> Thank you.
>
> --
> ..Cheers
> Mark
>