Netty 3.1.0.ALPHA3 released: integration, integration, and integration

Trustin Lee (이희승) trustin at gmail.com
Tue Jan 13 08:23:47 EST 2009


Hi folks,

It's been a long time!  Netty 3.1.0.ALPHA3, the third milestone of the
another major feature release iteration, has been released.  Please
visit our web site to download it:

    * http://www.jboss.org/netty/

As always, your feed back is more than appreciated.  Please visit the
discussion forum and leave some comments and questions:

    * http://www.jboss.org/netty/community.html

Integration with Google Protocol Buffers
========================================
What are Google Protocol Buffers?

"Google Protocol Buffers are a flexible, efficient, automated
mechanism for serializing structured data - think XML, but smaller,
faster, and simpler.  You define how you want your data to be
structured once, then you can use special generated source code to
easily write and read your structured data to and from a variety of
data streams and using a variety of languages. You can even update
your data structure without breaking deployed programs that are
compiled against the "old" format," cited from 'Google Protocol
Buffers Developer Guide' - http://tinyurl.com/68e2x4

Doesn't it sound like an ideal solution for the rapid implementation
of a highly efficient yet evolvable binary protocol?  Indeed.  With
the ProtobufEncoder and ProtobufDecoder (in
org.jboss.netty.handler.codec.protobuf), you can adapt the message
classes generated by Google Protocol Buffers compiler (protoc) into
Netty codec.  Please take a look around the new 'LocalTime' example
that shows how easily you can create a high-performing binary protocol
client and server:

    * LocalTimeProtocol.proto - http://tinyurl.com/7melgo
    * LocalTimeServer - http://tinyurl.com/9y8kfj
    * LocalTimeClient - http://tinyurl.com/9jvxa3

Integration with IoC/DI technologies
====================================
Creating an instance of ChannelFactory was not very easy when you want
to create them for your favorite IoC container.  In many cases, you
want the ChannelFactory created and injected by the IoC container to
be destroyed properly, too.  This release adds the integration with
four leading IoC/DI technologies:

    * JBoss Microcontainer: http://www.jboss.org/jbossmc/
        * ChannelFactories are automatically installed on deployment.
        * Related resources are automatically acquired and released.
        * Internal log messages are redirected to JBoss Logging SPI.

    * OSGi framework: http://www.osgi.org/
        * ChannelFactories are automatically registered as services on startup.
        * Related resources are automatically acquired and released.
        * Internal log messages are redirected to OSGi LogService.

    * Google Guice: http://code.google.com/p/google-guice/
        * A convenience module (NettyModule)
        * Various providers
        * An annotation for precise resource (Executor) injection

    * Spring framework: http://www.springframework.org/
        * Import classpath:/org/jboss/netty/container/spring/beans.xml
            * Source: http://tinyurl.com/7okf33
        * ConfigurableApplicationContext.close() will release all resources.

Please note that the name of each registered / installed /
instantiated ChannelFactory is identical with its fully qualified
class name.  For example, you can look up
NioServerSocketChannelFactory with the service name
'org.netty.jboss.channel.socket.nio.NioServerSocketChannelFactory' in
OSGi.  Alternatively, you can specify
'org.netty.jboss.channel.socket.ServerSocketChannelFactory' so that
Netty can choose the proper ServerSocketChannelFactory implementation
(it's NioServerSocketChannelFactory for now.)

Also, please let me know if you have some nice idea to integrate Netty
better into the container technologies mentioned above, I'd be pleased
to listen to you.

Codec improvements
==================
Various options have been added to existing codec classes.  For
example, you can tell DelimiterBasedFrameDecoder to include the
delimiter in the frame now.  Also, simple yet useful codec classes
were added for your convenience:

    * LengthFieldBasedFrameDecoder - http://tinyurl.com/9rzasc
        * decodes a frame by looking in the length field of a message

    * LengthFieldPrepender - http://tinyurl.com/852d57
        * prepends a binary integer header to the message

    * Base64 codec - http://tinyurl.com/97aswz

These are small changes and additions but you will find combining
these constructs will help you decode a proprietary protocol fairly
easily without much coding.

org.jboss.netty.group -> org.jboss.netty.channel.group
======================================================
The classes in the org.jboss.netty.group package, which were
introduced in 3.1.0.ALPHA2 have been moved to the
org.jboss.netty.channel.group package.

Upcoming Releases
=================
All features added in this release will be reviewed continuously
following up your feed back.  3.1.0.ALPHA4 will be the last alpha
version with most noticeable design issues resolved.  Please feel free
to browse the road map and let us know what you think about it:

    * http://tinyurl.com/5vpxux

Please also note that we are always open to your suggestion and
contribution on any feature which is not listed in the road map yet.
:-)

Miscellaneous
=============
For the detailed changelog, please visit here:

    * http://tinyurl.com/75t4ah

Again, as always, your feed back is more than appreciated.  Please
visit the discussion forum and feel free to leave some comments and
questions:

    * http://www.jboss.org/netty/community.html

Cheers,

— Trustin Lee, http://gleamynode.net/




More information about the netty-users mailing list