Over a million developers have joined DZone.

Apache Mina 2.0 Finished

· Java Zone

Discover how powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience, brought to you in partnership with JetBrains

The Apache Mina (Multipurpose Infrastructure for Network Applications) committers announced the first stable release of version 2.0, a break from the 1.x release train.  Mina is a network application framework for quickly developing highly scalable and performant network applications.  It was originally designed for the Apache Directory Server but it began to be used independently.  Mina has an abstract, event-driven, and asynchronous API that is used over transport protocols like TCP/IP or UDP/IP via Java NIO.

Mina 2.0 requires JDK 1.5 or greater and it also requires SLF4J 1.3 or higher.  The fresh new API in Mina 2 is partially backward-incompatible with the 1.x line.  This is because the complex parts of the 1.x API were simplified to be more intuitive in 2.0.  

Some fixes in the final stable release of Mina 2.0 include:

  • Mina server now receives all of the data sent by the client using SSLSocketFactory
  • NioProcessor now gets 100% CPU usage on Linux
  • There's no longer a NullPointerException when opening a socket to a local host
  • Mina can have more than one codec in the chain
  • and more

Improvements to documentation and the packages have also been added for the final release.

                               

Now the early development is beginning on Mina 3.0. So far, developers want to be able to define the number of selectors to use and make the chain implementation less cumbersome.  Stateless and stateful sessions are another goal of Mina 3.0. They also want filters to accept a stream<object>.

Check out the Mina documentation and Mina 2.0 Quick Start Guide.

Learn more about Kotlin, a new programming language designed to solve problems that software developers face every day brought to you in partnership with JetBrains.

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}