Tuesday, January 13, 2009

XNIO 1.2.0.GA Released

The final GA release of XNIO 1.2.0 is available for download. This release represents a "settling in" to a 16-week release cycle that should continue from now on. Here's a complete changelog since 1.1.0.GA:

Bugs

  • [XNIO-56] - Xnio.create() fails for the default provider
  • [XNIO-57] - NioSocketChannelImpl suspendWrites method suspends reads instead of writes
  • [XNIO-58] - NPE bug in AllocatedMessageChannelStreamChannelHandler
  • [XNIO-60] - NIO: When pooled selectors are exhausted, an exception is thrown
  • [XNIO-65] - NioPipeTestCase.testOneWayPipeSinkClose fails under Java 5
  • [XNIO-67] - TCP tests fail under Java 5, not Java 6

Feature Request

  • [XNIO-19] - Add ability to switch a channel between blocking and non-blocking
  • [XNIO-50] - Mitigate the performance impact of Selector.wakeup()
  • [XNIO-54] - API for one-time servers
  • [XNIO-64] - IoFuture notifiers with attachments (see below)
  • [XNIO-66] - Add static blocking read/write methods to Channels

Task

  • [XNIO-17] - Add monitoring via JMX
  • [XNIO-39] - Remove deprecated Xnio.createNio() methods
  • [XNIO-48] - Create a UNIX domain socket API
  • [XNIO-64] - IoFuture notifiers with attachments

Links

Download: http://www.jboss.org/xnio/downloads
Javadoc: http://docs.jboss.org/xnio/1.2.0.GA/api
Project page: http://www.jboss.org/xnio
Bug tracker: https://jira.jboss.org/jira/browse/XNIO

Just a reminder that the 1.2.0.GA release is not 100% binary- and source-compatible with 1.1.x, so if you choose to move to 1.2.0.GA, make sure you do a clean build of your project to identify any potential problems with the changes surrounding the new IoFuture attachment feature.

2 comments:

Stephen said...

Could you point to the classes relevant to Unix Domain Sockets? Also, is there any sample code?

Thanks,
Stephen

David M. Lloyd said...

The classes for Unix domain sockets are what you get from the createLocal*() methods on Xnio - they are regular stream channels. The default NIO provider doesn't support it (obviously), but I'm working on getting some support together in the experimental Linux implementation (hopefully out this summer sometime) and subsequently in the Solaris implementation (hopefully by the end of the year). I know that Windows supports similar functionality but I don't have any plans to add a Windows provider at this time due to lack of resources.