Apache MINA 2.0.8 发布!

来源: OSCHINA
编辑: oschina
2014-09-25 00:00:00

Apache MINA 2.0.8 发布,此版本是个 bug 修复版本。此版本关闭了 90 个 JIRAs(修复,延迟或者简单的弃用)。

其中一个改进可能会影响 MINA 2.0.7 到 MINA 2.0.8 的切换: */IoHandler/* 接口现在包括一个方法调用 /inputClosed()/,所以你必须实现这个方法,如果你直接实现 */IoHandler/* 接口,或者更好的,你扩展 */IoHandlerAdapter/*。

此版本是稳定版本,可用于生产环境,现已提供下载,更新详情请看这里或者这里

建议每位用户都升级到最新版本!

相关链接
==========
* 项目主页 http://mina.apache.org/mina-project/
* FAQ http://mina.apache.org/mina-project/faq.html
* 文本 http://mina.apache.org/mina-project/documentation.html

Bug 修复

  * DIRMINA-539 <https://issues.apache.org/jira/browse/DIRMINA-539>
<https://issues.apache.org/jira/browse/DIRMINA-539> -
    NioDatagramConnector doesn't takes the TrafficClass value set to his
    DatagramSessionConfig
  * DIRMINA-574 <https://issues.apache.org/jira/browse/DIRMINA-574>
<https://issues.apache.org/jira/browse/DIRMINA-574> -
    ClassCastException when a message is written on a closed session.
  * DIRMINA-604 <https://issues.apache.org/jira/browse/DIRMINA-604>
<https://issues.apache.org/jira/browse/DIRMINA-604> -
    Deadlock occurs when implementing two mina StateMachine
  * DIRMINA-639 <https://issues.apache.org/jira/browse/DIRMINA-639>
<https://issues.apache.org/jira/browse/DIRMINA-639> -
    WriteFuture are updated long after a session.write() is done
  * DIRMINA-738 <https://issues.apache.org/jira/browse/DIRMINA-738>
<https://issues.apache.org/jira/browse/DIRMINA-738> -
    Using IoEventQueueThrottler with a WriteRequestFilter can lead to hangs
  * DIRMINA-760 <https://issues.apache.org/jira/browse/DIRMINA-760>
<https://issues.apache.org/jira/browse/DIRMINA-760> -
    Client fails to detect disconnection
  * DIRMINA-764 <https://issues.apache.org/jira/browse/DIRMINA-764>
<https://issues.apache.org/jira/browse/DIRMINA-764> -
    DDOS possible in only a few seconds...
  * DIRMINA-777 <https://issues.apache.org/jira/browse/DIRMINA-777>
<https://issues.apache.org/jira/browse/DIRMINA-777> -
    IoSessionConfig.setUseReadOperation(true) doesn't seem to work
  * DIRMINA-779 <https://issues.apache.org/jira/browse/DIRMINA-779>
<https://issues.apache.org/jira/browse/DIRMINA-779> -
    SSLHandler can re-order data that it reads
  * DIRMINA-782 <https://issues.apache.org/jira/browse/DIRMINA-782>
<https://issues.apache.org/jira/browse/DIRMINA-782> -
    Combination of SslFilter & FileRegionWriteFilter causes messageSent
    events to be lost
  * DIRMINA-785 <https://issues.apache.org/jira/browse/DIRMINA-785>
<https://issues.apache.org/jira/browse/DIRMINA-785> -
    Half-duplex close of TCP channel
  * DIRMINA-789 <https://issues.apache.org/jira/browse/DIRMINA-789>
<https://issues.apache.org/jira/browse/DIRMINA-789> -
    Possible Deadlock/Out of memory when sending large amounts of data
    using Nio
  * DIRMINA-792 <https://issues.apache.org/jira/browse/DIRMINA-792>
<https://issues.apache.org/jira/browse/DIRMINA-792> -
    await() forever
  * DIRMINA-804 <https://issues.apache.org/jira/browse/DIRMINA-804>
<https://issues.apache.org/jira/browse/DIRMINA-804> -
    NioDatagramAcceptor.unbind does not unbind cleanly
  * DIRMINA-805 <https://issues.apache.org/jira/browse/DIRMINA-805>
<https://issues.apache.org/jira/browse/DIRMINA-805> - No
    cipher suites and protocols in SslFilter
  * DIRMINA-813 <https://issues.apache.org/jira/browse/DIRMINA-813>
<https://issues.apache.org/jira/browse/DIRMINA-813> -
    Starvation occures sometimes in SerialSession#close()
  * DIRMINA-818 <https://issues.apache.org/jira/browse/DIRMINA-818>
<https://issues.apache.org/jira/browse/DIRMINA-818> -
    Loosing connects on NioSocketConnector
  * DIRMINA-833 <https://issues.apache.org/jira/browse/DIRMINA-833>
<https://issues.apache.org/jira/browse/DIRMINA-833> -
    LoggingFilter does not log SENT bytes when used with a
    ProtocolCodecFilter
  * DIRMINA-843 <https://issues.apache.org/jira/browse/DIRMINA-843>
<https://issues.apache.org/jira/browse/DIRMINA-843> -
    NioSocketAcceptor doesnot provide an interface to input
    connectiontimeout parameter.
  * DIRMINA-844 <https://issues.apache.org/jira/browse/DIRMINA-844>
<https://issues.apache.org/jira/browse/DIRMINA-844> -
    Http Proxy Authentication failed to complete (see description for
    exact point of failure)
  * DIRMINA-845 <https://issues.apache.org/jira/browse/DIRMINA-845>
<https://issues.apache.org/jira/browse/DIRMINA-845> -
    ProtocolEncoderOutputImpl isn't thread-safe
  * DIRMINA-891 <https://issues.apache.org/jira/browse/DIRMINA-891>
<https://issues.apache.org/jira/browse/DIRMINA-891> -
    SSLHandler throws SSLException during handshake that sequence number
    triggers
  * DIRMINA-899 <https://issues.apache.org/jira/browse/DIRMINA-899>
<https://issues.apache.org/jira/browse/DIRMINA-899> -
    IoSession.getAttribute() doesn't store default value
  * DIRMINA-902 <https://issues.apache.org/jira/browse/DIRMINA-902>
<https://issues.apache.org/jira/browse/DIRMINA-902> -
    Buffer read incorrectly when reading after a NEED_DATA trigger.
  * DIRMINA-905 <https://issues.apache.org/jira/browse/DIRMINA-905>
<https://issues.apache.org/jira/browse/DIRMINA-905> -
    mina serial close
  * DIRMINA-911 <https://issues.apache.org/jira/browse/DIRMINA-911>
<https://issues.apache.org/jira/browse/DIRMINA-911> -
    Surprising behaviour with ConnectFuture
  * DIRMINA-912 <https://issues.apache.org/jira/browse/DIRMINA-912>
<https://issues.apache.org/jira/browse/DIRMINA-912> -
    Different instances of OrderedThreadPoolExecutor may use same task queue
  * DIRMINA-920 <https://issues.apache.org/jira/browse/DIRMINA-920>
<https://issues.apache.org/jira/browse/DIRMINA-920> -
    HTTP server decoding is broken
  * DIRMINA-926 <https://issues.apache.org/jira/browse/DIRMINA-926>
<https://issues.apache.org/jira/browse/DIRMINA-926> -
    IoSession IP Error when Socket Server Communicate With Microcomputer
    In LAN and Internet.
  * DIRMINA-928 <https://issues.apache.org/jira/browse/DIRMINA-928>
<https://issues.apache.org/jira/browse/DIRMINA-928> -
    when client want to connect to server by binding wrong ip
    address,there is a bug.
  * DIRMINA-931 <https://issues.apache.org/jira/browse/DIRMINA-931>
<https://issues.apache.org/jira/browse/DIRMINA-931> -
    HTTP header decoding is broken
  * DIRMINA-932 <https://issues.apache.org/jira/browse/DIRMINA-932>
<https://issues.apache.org/jira/browse/DIRMINA-932> -
    HTTP Request decoding is broken if request headers are received in
    several messages
  * DIRMINA-933 <https://issues.apache.org/jira/browse/DIRMINA-933>
<https://issues.apache.org/jira/browse/DIRMINA-933> -
    subtle HttpServerDecoder problems
  * DIRMINA-937 <https://issues.apache.org/jira/browse/DIRMINA-937>
<https://issues.apache.org/jira/browse/DIRMINA-937> -
    sslfilter hangs with openjdk works with oracle?
  * DIRMINA-940 <https://issues.apache.org/jira/browse/DIRMINA-940>
<https://issues.apache.org/jira/browse/DIRMINA-940> -
    HTTP Client decoder does not support responses without
    Content-Length header
  * DIRMINA-942 <https://issues.apache.org/jira/browse/DIRMINA-942>
<https://issues.apache.org/jira/browse/DIRMINA-942> -
    Infinite loop flushing to broken pipe
  * DIRMINA-948 <https://issues.apache.org/jira/browse/DIRMINA-948>
<https://issues.apache.org/jira/browse/DIRMINA-948> -
    Performance recession when invoke session.write concurrent
  * DIRMINA-956 <https://issues.apache.org/jira/browse/DIRMINA-956>
<https://issues.apache.org/jira/browse/DIRMINA-956> -
    Status code match bug in AbstractHttpLogicHandler
  * DIRMINA-957 <https://issues.apache.org/jira/browse/DIRMINA-957>
<https://issues.apache.org/jira/browse/DIRMINA-957> -
    MINA build in BlacklistFilter does not support IPV6 address
  * DIRMINA-962 <https://issues.apache.org/jira/browse/DIRMINA-962>
<https://issues.apache.org/jira/browse/DIRMINA-962> -
    Immediate session close with a SSL filter
  * DIRMINA-963 <https://issues.apache.org/jira/browse/DIRMINA-963>
<https://issues.apache.org/jira/browse/DIRMINA-963> -
    Socks5 and ProxyConnector don't work with
    InetSocketAddress.createUnresolved
  * DIRMINA-965 <https://issues.apache.org/jira/browse/DIRMINA-965>
<https://issues.apache.org/jira/browse/DIRMINA-965> -
    HttpServerDecoder is broken in certain condition
  * DIRMINA-966 <https://issues.apache.org/jira/browse/DIRMINA-966>
<https://issues.apache.org/jira/browse/DIRMINA-966> -
    NIO Datagram messages can get duplicated when unable to be sent by
    the underlying DatagramChannel
  * DIRMINA-967 <https://issues.apache.org/jira/browse/DIRMINA-967>
<https://issues.apache.org/jira/browse/DIRMINA-967> -
    IoSession updateThroughput not automatically called
  * DIRMINA-968 <https://issues.apache.org/jira/browse/DIRMINA-968>
<https://issues.apache.org/jira/browse/DIRMINA-968> -
    Memory leak in SSL Handshake errors
  * DIRMINA-970 <https://issues.apache.org/jira/browse/DIRMINA-970>
<https://issues.apache.org/jira/browse/DIRMINA-970> -
    ProtocolEncoderOutputImpl.flush() occur a IllegalArgumentException
  * DIRMINA-972 <https://issues.apache.org/jira/browse/DIRMINA-972>
<https://issues.apache.org/jira/browse/DIRMINA-972> -
    NPE during handshake on Android using SSLFilter
  * DIRMINA-973 <https://issues.apache.org/jira/browse/DIRMINA-973>
<https://issues.apache.org/jira/browse/DIRMINA-973> -
    IllegalArgumentException thrown on ProtocolCodecFilter.flush
  * DIRMINA-976 <https://issues.apache.org/jira/browse/DIRMINA-976>
<https://issues.apache.org/jira/browse/DIRMINA-976> -
    ScheduledWriteBytes Increases after Exception on Writing
  * DIRMINA-977 <https://issues.apache.org/jira/browse/DIRMINA-977>
<https://issues.apache.org/jira/browse/DIRMINA-977> -
    DefaultIoFilterChain.replace does not call register/deregister
  * DIRMINA-978 <https://issues.apache.org/jira/browse/DIRMINA-978>
<https://issues.apache.org/jira/browse/DIRMINA-978> -
    ClosedSelectorException handling in AbstractPollingIoProcessor
  * DIRMINA-980 <https://issues.apache.org/jira/browse/DIRMINA-980>
<https://issues.apache.org/jira/browse/DIRMINA-980> -
    Missing implementation of write() method in
    SerialSessionImpl.SerialIoProcessor
  * DIRMINA-981 <https://issues.apache.org/jira/browse/DIRMINA-981>
<https://issues.apache.org/jira/browse/DIRMINA-981> -
    IoBuffer GetSlice throw an IllegalArgumentException
  * DIRMINA-982 <https://issues.apache.org/jira/browse/DIRMINA-982>
<https://issues.apache.org/jira/browse/DIRMINA-982> -
    ProtocolEncoderOutputImpl.flush() throws an IllegalArgumentException
    if buffers queue is empty
  * DIRMINA-983 <https://issues.apache.org/jira/browse/DIRMINA-983>
<https://issues.apache.org/jira/browse/DIRMINA-983> -
    Problems with TextLineDecoder and special characters


      Improvement

  * DIRMINA-210 <https://issues.apache.org/jira/browse/DIRMINA-210>
<https://issues.apache.org/jira/browse/DIRMINA-210> -
    Investigate removal of static methods in ByteBuffer
  * DIRMINA-237 <https://issues.apache.org/jira/browse/DIRMINA-237>
<https://issues.apache.org/jira/browse/DIRMINA-237> -
    Improve Spring integration
  * DIRMINA-572 <https://issues.apache.org/jira/browse/DIRMINA-572>
<https://issues.apache.org/jira/browse/DIRMINA-572> -
    Add Spring support for Mina statemachine
  * DIRMINA-586 <https://issues.apache.org/jira/browse/DIRMINA-586>
<https://issues.apache.org/jira/browse/DIRMINA-586> -
    Dynamic delimiter support for TextLineCodecFactory
  * DIRMINA-593 <https://issues.apache.org/jira/browse/DIRMINA-593>
<https://issues.apache.org/jira/browse/DIRMINA-593> -
    Javadoc & documentation for org/apache/mina/filter/reqres
  * DIRMINA-629 <https://issues.apache.org/jira/browse/DIRMINA-629>
<https://issues.apache.org/jira/browse/DIRMINA-629> -
    The IoServiceStatistics methods are called for every new session
    creation
  * DIRMINA-631 <https://issues.apache.org/jira/browse/DIRMINA-631>
<https://issues.apache.org/jira/browse/DIRMINA-631> -
    AbstractIoFilter: increment writen- and receivedMessages statistics
    on application end of filter chain
  * DIRMINA-668 <https://issues.apache.org/jira/browse/DIRMINA-668>
<https://issues.apache.org/jira/browse/DIRMINA-668> -
    Modify the way we use IoProcessors
  * DIRMINA-682 <https://issues.apache.org/jira/browse/DIRMINA-682>
<https://issues.apache.org/jira/browse/DIRMINA-682> - We
    need a better documentation for the ExecutorFilter [was :Writing
    more than one message will block until the MessageReceived as been
    fully proceced]
  * DIRMINA-723 <https://issues.apache.org/jira/browse/DIRMINA-723>
<https://issues.apache.org/jira/browse/DIRMINA-723> -
    OrderedThreadPoolExecutor behavior: configurable queue size,
    corePoolSize, maximumPoolSize
  * DIRMINA-752 <https://issues.apache.org/jira/browse/DIRMINA-752>
<https://issues.apache.org/jira/browse/DIRMINA-752> -
    maybe move SerialAddressEditor.class to the mina beans project
  * DIRMINA-761 <https://issues.apache.org/jira/browse/DIRMINA-761>
<https://issues.apache.org/jira/browse/DIRMINA-761> -
    how to shutdown a mina application
  * DIRMINA-766 <https://issues.apache.org/jira/browse/DIRMINA-766>
<https://issues.apache.org/jira/browse/DIRMINA-766> -
    Read does not exploit buffer optimally
  * DIRMINA-767 <https://issues.apache.org/jira/browse/DIRMINA-767>
<https://issues.apache.org/jira/browse/DIRMINA-767> -
    Move encoder/decoder out of the session Attributes
  * DIRMINA-773 <https://issues.apache.org/jira/browse/DIRMINA-773>
<https://issues.apache.org/jira/browse/DIRMINA-773> -
    org.apache.mina.filter.firewall.Subnet should consider 0.0.0.0/0 as
    a subnet that contains 'all the ipv4 addresses'
  * DIRMINA-780 <https://issues.apache.org/jira/browse/DIRMINA-780>
<https://issues.apache.org/jira/browse/DIRMINA-780> -
    Writing null objects to the Session should raise an Exception
  * DIRMINA-825 <https://issues.apache.org/jira/browse/DIRMINA-825>
<https://issues.apache.org/jira/browse/DIRMINA-825> -
    Add host and port info to BindException thrown by NioSocketAcceptor#open
  * DIRMINA-838 <https://issues.apache.org/jira/browse/DIRMINA-838>
<https://issues.apache.org/jira/browse/DIRMINA-838> -
    Redundant AttributeKey allocation resulting in high garbage
    collector activity
  * DIRMINA-913 <https://issues.apache.org/jira/browse/DIRMINA-913>
<https://issues.apache.org/jira/browse/DIRMINA-913> -
    Add a method IoSession.isSecured() to tell the user if the SSL
    filter has been started or not
  * DIRMINA-921 <https://issues.apache.org/jira/browse/DIRMINA-921>
<https://issues.apache.org/jira/browse/DIRMINA-921> -
    Maven build fails if test phase is given
  * DIRMINA-929 <https://issues.apache.org/jira/browse/DIRMINA-929>
<https://issues.apache.org/jira/browse/DIRMINA-929> -
    AbstractPollingIoProcessor patch to mark buffer as free
  * DIRMINA-934 <https://issues.apache.org/jira/browse/DIRMINA-934>
<https://issues.apache.org/jira/browse/DIRMINA-934> -
    Replace synchronized with a Semaphore for better performance
  * DIRMINA-941 <https://issues.apache.org/jira/browse/DIRMINA-941>
<https://issues.apache.org/jira/browse/DIRMINA-941> -
    DefaultIoFilterChain (or any other class) should not catch Throwable
    without re-throwing
  * DIRMINA-945 <https://issues.apache.org/jira/browse/DIRMINA-945>
<https://issues.apache.org/jira/browse/DIRMINA-945> -
    DefaultVmPipeSessionConfig is empty

新特性:

  * DIRMINA-23 <https://issues.apache.org/jira/browse/DIRMINA-23>
<https://issues.apache.org/jira/browse/DIRMINA-23> - New
    transport type: non-NIO sockets
  * DIRMINA-68 <https://issues.apache.org/jira/browse/DIRMINA-68>
<https://issues.apache.org/jira/browse/DIRMINA-68> -
    Automatic reconnect configuration for client channels.
  * DIRMINA-389 <https://issues.apache.org/jira/browse/DIRMINA-389>
<https://issues.apache.org/jira/browse/DIRMINA-389> -
    Create a Connection Throttle Filter
  * DIRMINA-453 <https://issues.apache.org/jira/browse/DIRMINA-453>
<https://issues.apache.org/jira/browse/DIRMINA-453> -
    Multiple IoServices for one java.nio.Selector
  * DIRMINA-485 <https://issues.apache.org/jira/browse/DIRMINA-485>
<https://issues.apache.org/jira/browse/DIRMINA-485> -
    SCTP Transport based on APR (Apache Portable Runtime)
  * DIRMINA-489 <https://issues.apache.org/jira/browse/DIRMINA-489>
<https://issues.apache.org/jira/browse/DIRMINA-489> -
    Composite IoBuffer
  * DIRMINA-507 <https://issues.apache.org/jira/browse/DIRMINA-507>
<https://issues.apache.org/jira/browse/DIRMINA-507> -
    IoBuffer: Support prepending data
  * DIRMINA-554 <https://issues.apache.org/jira/browse/DIRMINA-554>
<https://issues.apache.org/jira/browse/DIRMINA-554> - A
    hook between bind() and accept()
  * DIRMINA-655 <https://issues.apache.org/jira/browse/DIRMINA-655>
<https://issues.apache.org/jira/browse/DIRMINA-655> -
    Add a more general purpose text based decoder
  * DIRMINA-816 <https://issues.apache.org/jira/browse/DIRMINA-816>
<https://issues.apache.org/jira/browse/DIRMINA-816> -
    NioSocketConnector missing defaultLocalAddress
  * DIRMINA-964 <https://issues.apache.org/jira/browse/DIRMINA-964>
<https://issues.apache.org/jira/browse/DIRMINA-964> -
    Custom NIO SelectorProvider for NioSocketAcceptor

任务:

  * DIRMINA-56 <https://issues.apache.org/jira/browse/DIRMINA-56>
<https://issues.apache.org/jira/browse/DIRMINA-56> -
    Create a Benchmark Suite That Generates HTML Reports.
  * DIRMINA-188 <https://issues.apache.org/jira/browse/DIRMINA-188>
<https://issues.apache.org/jira/browse/DIRMINA-188> -
    All-in-one JAR
  * DIRMINA-477 <https://issues.apache.org/jira/browse/DIRMINA-477>
<https://issues.apache.org/jira/browse/DIRMINA-477> -
    Update page about differences between 1.x and 2.x
  * DIRMINA-721 <https://issues.apache.org/jira/browse/DIRMINA-721>
<https://issues.apache.org/jira/browse/DIRMINA-721> -
    Get rid of multiton iohandler and netty2 codec as proposed on ML


测试:

  * DIRMINA-922 <https://issues.apache.org/jira/browse/DIRMINA-922>
<https://issues.apache.org/jira/browse/DIRMINA-922> -
    Add a benchmark project to compare with other IO frameworks

希冀:

  * DIRMINA-250 <https://issues.apache.org/jira/browse/DIRMINA-250>
<https://issues.apache.org/jira/browse/DIRMINA-250> -
    Provide a test suite for a transport implementor.
  * DIRMINA-916 <https://issues.apache.org/jira/browse/DIRMINA-916>
<https://issues.apache.org/jira/browse/DIRMINA-916> -
    Adding Http Status code 101 "101 Switching Protocols" in
    org.apache.mina.http.api.HttpStatus

Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。

在线Javadoc:http://tool.oschina.net/apidocs/apidoc?api=mina

展开阅读全文
14 收藏
分享
9 评论
14 收藏
分享
返回顶部
顶部
返回顶部
顶部