<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
	<id>tag:n2.nabble.com,2006:forum-685710</id>
	<title>Nabble - Netty Developer Group</title>
	<updated>2009-11-07T09:23:56Z</updated>
	<link rel="self" type="application/atom+xml" href="http://n2.nabble.com/Netty-Developer-Group-f685710.xml" />
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Netty-Developer-Group-f685710.html" />
	<subtitle type="html">Various development issues such as road map, API design, feature request and bug fix are discussed here.</subtitle>
	
<entry>
	<id>tag:n2.nabble.com,2006:post-3964949</id>
	<title>Re: Volatile fields in the decoders</title>
	<published>2009-11-07T09:23:56Z</published>
	<updated>2009-11-07T09:23:56Z</updated>
	<author>
		<name>Frederic Bregier</name>
	</author>
	<content type="html">﻿&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;

&lt;META content=&quot;text/html; charset=utf-8&quot; http-equiv=Content-Type&gt;
&lt;META name=GENERATOR content=&quot;MSHTML 8.00.6001.18828&quot;&gt;



&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;Hi Trustin,&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;For me; I agree that most of the time, Codec are 
before ExecutionHandler.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;In fact, I have no real&amp;nbsp;idea of other cases, 
e&lt;/FONT&gt;&lt;FONT size=2 face=Arial&gt;xcept, if I search the extreme case, when one 
wants to &quot;pipeline&quot; two kinds of channels, for instance:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;&quot;network-channel -&amp;gt; one codec -&amp;gt; execution 
handler -&amp;gt; business handler which writes on local-channel -&amp;gt; another codec 
-&amp;gt; another execution handler -&amp;gt; another business handler&quot;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;I do this to pipeline several &quot;business&quot; stream 
into one network-channel.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;My guess is that probably there the codec for the 
local channel (the one in the middle named another codec) must be ok for 
multiple thread suport.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;Perhaps not all codec are necessary for 
that.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;Also I'm not completely sure that my example is a 
good one.. Just a guess more than an example...&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;WDYT ?&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2 face=Arial&gt;Frederic&lt;/FONT&gt;&lt;/DIV&gt;
&lt;BLOCKQUOTE style=&quot;BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px&quot;&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;----- Original Message ----- &lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black&quot;&gt;&lt;B&gt;From:&lt;/B&gt; 
  &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3964949&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt; &lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;To:&lt;/B&gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3964949&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt; &lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;Sent:&lt;/B&gt; Saturday, November 07, 2009 3:47 
  PM&lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;Subject:&lt;/B&gt; Volatile fields in the 
  decoders&lt;/DIV&gt;
  &lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;Hi folks, &lt;BR&gt;&lt;BR&gt;Currently, all decoders distributed with 
  Netty define their state &lt;BR&gt;fields as volatile, because I assumed that the 
  decoders might be &lt;BR&gt;placed after ExecutionHandler. &amp;nbsp;However, nobody 
  seem to place them &lt;BR&gt;after ExecutionHandler because decoding is a CPU bound 
  task. &lt;BR&gt;Therefore, I'd like to remove the volatile modifier if I did not 
  miss &lt;BR&gt;anything. &amp;nbsp;Please feel free to post your idea - it will be very 
  &lt;BR&gt;helpful regardless whether it's agreement or disagreement. &lt;BR&gt;&lt;BR&gt;Thanks 
  &lt;BR&gt;&lt;BR&gt;— Trustin Lee, &lt;A href=&quot;http://gleamynode.net/&quot; rel=&quot;nofollow&quot; target=_top&gt;http://gleamynode.net/&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;_______________________________________________ 
  &lt;BR&gt;netty-dev mailing list &lt;BR&gt;&lt;A href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;amp;node=3964373&amp;amp;i=0&quot; rel=&quot;nofollow&quot; target=_top&gt;[hidden email]&lt;/A&gt; &lt;BR&gt;&lt;A href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; rel=&quot;nofollow&quot; target=_top&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/A&gt;&lt;BR&gt;
  &lt;DIV class=signature&gt;— Trustin Lee, &lt;A href=&quot;http://gleamynode.net/&quot; rel=&quot;nofollow&quot; target=_top&gt;http://gleamynode.net/&lt;/A&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;
&lt;div class=&quot;signature&quot;&gt;Hardware/Software Architect&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Volatile-fields-in-the-decoders-tp3964373p3964949.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3964373"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3964373</id>
	<title>Volatile fields in the decoders</title>
	<published>2009-11-07T06:47:19Z</published>
	<updated>2009-11-07T06:47:19Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi folks,
&lt;br&gt;&lt;br&gt;Currently, all decoders distributed with Netty define their state
&lt;br&gt;fields as volatile, because I assumed that the decoders might be
&lt;br&gt;placed after ExecutionHandler. &amp;nbsp;However, nobody seem to place them
&lt;br&gt;after ExecutionHandler because decoding is a CPU bound task.
&lt;br&gt;Therefore, I'd like to remove the volatile modifier if I did not miss
&lt;br&gt;anything. &amp;nbsp;Please feel free to post your idea - it will be very
&lt;br&gt;helpful regardless whether it's agreement or disagreement.
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3964373&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Volatile-fields-in-the-decoders-tp3964373p3964373.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3962642</id>
	<title>Adopting Generics into Netty API</title>
	<published>2009-11-06T18:41:55Z</published>
	<updated>2009-11-06T18:41:55Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi folks,
&lt;br&gt;&lt;br&gt;I'm considering to adopt Java 5 Generics into Netty API. &amp;nbsp;Please let
&lt;br&gt;me know if you have any idea about this. &amp;nbsp;Let's brainstorm and see
&lt;br&gt;what we can do about this.
&lt;br&gt;&lt;br&gt;What I can think of right now is to eliminate explicit down-cast in
&lt;br&gt;the handler by adding type parameter for received message type.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3962642&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Adopting-Generics-into-Netty-API-tp3962642p3962642.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3964402</id>
	<title>Re: HttpMessageDecoder - Skip the footer; does anyone use it?</title>
	<published>2009-11-07T07:00:17Z</published>
	<updated>2009-11-07T07:00:17Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Roger,
&lt;br&gt;&lt;br&gt;Oh, there was really someone who uses it! :)
&lt;br&gt;&lt;br&gt;I will try to add support for trailing headers in 3.2. &amp;nbsp;Your patch
&lt;br&gt;does look very helpful. &amp;nbsp;Thanks a lot!
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Thu, Nov 5, 2009 at 7:52 AM, Roger F &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3964402&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Trustin Lee,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have been trying to use TrailingHeaders after a Content-Transfer: chunked
&lt;br&gt;&amp;gt; message, obviously it does not work, yet.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This would be useful to allow large files, size unknown, to be streamed in
&lt;br&gt;&amp;gt; chunks, followed by the MD5.
&lt;br&gt;&amp;gt; This ensures data integrity and prevents out of memory in a server.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Here is an example :
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; PUT / HTTP/1.1
&lt;br&gt;&amp;gt; Host: localhost:8081
&lt;br&gt;&amp;gt; Transfer-Encoding: chunked
&lt;br&gt;&amp;gt; Trailer: Content-MD5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 64
&lt;br&gt;&amp;gt; 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
&lt;br&gt;&amp;gt; 0
&lt;br&gt;&amp;gt; Content-MD5: 4f30805221b29b36df636869549398fb
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The following code changes allow TrailingHeaders and seem to work so far in
&lt;br&gt;&amp;gt; testing.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In HttpMessageDecoder replacing in the decode method the following switch
&lt;br&gt;&amp;gt; state READ_CHUNK_FOOTER :
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; @Override
&lt;br&gt;&amp;gt; protected Object decode(ChannelHandlerContext ctx, Channel channel,
&lt;br&gt;&amp;gt; ChannelBuffer buffer, State state) throws Exception {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ....
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; case READ_CHUNK_FOOTER: {
&lt;br&gt;&amp;gt;    // Do not Skip the footer; some people use it!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    try {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        readFooterHeaders(buffer);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        if (maxChunkSize == 0) {
&lt;br&gt;&amp;gt;            // Chunked encoding disabled.
&lt;br&gt;&amp;gt;            return reset();
&lt;br&gt;&amp;gt;        } else {
&lt;br&gt;&amp;gt;            reset();
&lt;br&gt;&amp;gt;            // The last chunk, which is empty
&lt;br&gt;&amp;gt;            return HttpChunk.LAST_CHUNK;
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;    } finally {
&lt;br&gt;&amp;gt;        checkpoint();
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Then also in HttpMessageDecoder adding the following method :
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; private void readFooterHeaders(ChannelBuffer buffer) throws
&lt;br&gt;&amp;gt; TooLongFrameException {
&lt;br&gt;&amp;gt;    HttpFooterHeaders footerHeaders = new HttpFooterHeaders();
&lt;br&gt;&amp;gt;    headerSize = 0;
&lt;br&gt;&amp;gt;    String line = readHeader(buffer);
&lt;br&gt;&amp;gt;    String lastHeader = null;
&lt;br&gt;&amp;gt;    if (line.length() != 0) {
&lt;br&gt;&amp;gt;        do {
&lt;br&gt;&amp;gt;            char firstChar = line.charAt(0);
&lt;br&gt;&amp;gt;            if (lastHeader != null &amp;&amp; (firstChar == ' ' || firstChar ==
&lt;br&gt;&amp;gt; '\t')) {
&lt;br&gt;&amp;gt;                List&amp;lt;String&amp;gt; current = footerHeaders.getHeaders(lastHeader);
&lt;br&gt;&amp;gt;                int lastPos = current.size() - 1;
&lt;br&gt;&amp;gt;                String newString = current.get(lastPos) + line.trim();
&lt;br&gt;&amp;gt;                current.set(lastPos, newString);
&lt;br&gt;&amp;gt;            } else {
&lt;br&gt;&amp;gt;                String[] header = splitHeader(line);
&lt;br&gt;&amp;gt;                footerHeaders.addHeader(header[0], header[1]);
&lt;br&gt;&amp;gt;                lastHeader = header[0];
&lt;br&gt;&amp;gt;            }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;            line = readHeader(buffer);
&lt;br&gt;&amp;gt;        } while (line.length() != 0);
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    Set&amp;lt;String&amp;gt; headerNames = footerHeaders.getHeaderNames();
&lt;br&gt;&amp;gt;    for (Iterator&amp;lt;String&amp;gt; it = headerNames.iterator(); it.hasNext();) {
&lt;br&gt;&amp;gt;        String headerName = it.next();
&lt;br&gt;&amp;gt;        List&amp;lt;String&amp;gt; headerValues = footerHeaders.getHeaders(headerName);
&lt;br&gt;&amp;gt;        for (String headerValue : headerValues) {
&lt;br&gt;&amp;gt;            message.addHeader(headerName, headerValue);
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The following class needs to then be added to the package
&lt;br&gt;&amp;gt; org.jboss.netty.handler.codec.http :
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; package org.jboss.netty.handler.codec.http;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; import java.util.ArrayList;
&lt;br&gt;&amp;gt; import java.util.Collections;
&lt;br&gt;&amp;gt; import java.util.List;
&lt;br&gt;&amp;gt; import java.util.Map;
&lt;br&gt;&amp;gt; import java.util.Set;
&lt;br&gt;&amp;gt; import java.util.TreeMap;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; import org.jboss.netty.util.internal.CaseIgnoringComparator;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public class HttpFooterHeaders {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    private final Map&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt; headers = new TreeMap&amp;lt;String,
&lt;br&gt;&amp;gt; List&amp;lt;String&amp;gt;&amp;gt;(CaseIgnoringComparator.INSTANCE);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    public HttpFooterHeaders() {
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    public void addHeader(final String name, final String value) {
&lt;br&gt;&amp;gt;        validateHeaderName(name);
&lt;br&gt;&amp;gt;        validateHeaderValue(value);
&lt;br&gt;&amp;gt;        if (value == null) {
&lt;br&gt;&amp;gt;            throw new NullPointerException(&amp;quot;value is null&amp;quot;);
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;        //RFC2616 section 14.40 footer headers MUST NOT contain
&lt;br&gt;&amp;gt; Transfer-Encoding, Content-Length or Trailer
&lt;br&gt;&amp;gt;        if (name.equalsIgnoreCase(&amp;quot;Transfer-Encoding&amp;quot;) ||
&lt;br&gt;&amp;gt; name.equalsIgnoreCase(&amp;quot;Content-Length&amp;quot;) || name.equalsIgnoreCase(&amp;quot;Trailer&amp;quot;))
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;            return;
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;        if (headers.get(name) == null) {
&lt;br&gt;&amp;gt;            headers.put(name, new ArrayList&amp;lt;String&amp;gt;(1));
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;        headers.get(name).add(value);
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    private static void validateHeaderName(String name) {
&lt;br&gt;&amp;gt;        if (name == null) {
&lt;br&gt;&amp;gt;            throw new NullPointerException(&amp;quot;name&amp;quot;);
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;        for (int i = 0; i &amp;lt; name.length(); i++) {
&lt;br&gt;&amp;gt;            char c = name.charAt(i);
&lt;br&gt;&amp;gt;            if (c &amp;gt; 127) {
&lt;br&gt;&amp;gt;                throw new IllegalArgumentException(
&lt;br&gt;&amp;gt;                        &amp;quot;name contains non-ascii character: &amp;quot; + name);
&lt;br&gt;&amp;gt;            }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;            // Check prohibited characters.
&lt;br&gt;&amp;gt;            switch (c) {
&lt;br&gt;&amp;gt;                case '=':
&lt;br&gt;&amp;gt;                case ',':
&lt;br&gt;&amp;gt;                case ';':
&lt;br&gt;&amp;gt;                case ' ':
&lt;br&gt;&amp;gt;                case ':':
&lt;br&gt;&amp;gt;                case '\t':
&lt;br&gt;&amp;gt;                case '\r':
&lt;br&gt;&amp;gt;                case '\n':
&lt;br&gt;&amp;gt;                case '\f':
&lt;br&gt;&amp;gt;                case 0x0b: // Vertical tab
&lt;br&gt;&amp;gt;                    throw new IllegalArgumentException(
&lt;br&gt;&amp;gt;                            &amp;quot;name contains one of the following prohibited
&lt;br&gt;&amp;gt; characters: &amp;quot; +
&lt;br&gt;&amp;gt;                            &amp;quot;=,;: \\t\\r\\n\\v\\f: &amp;quot; + name);
&lt;br&gt;&amp;gt;            }
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    private static void validateHeaderValue(String value) {
&lt;br&gt;&amp;gt;        if (value == null) {
&lt;br&gt;&amp;gt;            throw new NullPointerException(&amp;quot;value&amp;quot;);
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;        for (int i = 0; i &amp;lt; value.length(); i++) {
&lt;br&gt;&amp;gt;            char c = value.charAt(i);
&lt;br&gt;&amp;gt;            // Check prohibited characters.
&lt;br&gt;&amp;gt;            switch (c) {
&lt;br&gt;&amp;gt;                case '\r':
&lt;br&gt;&amp;gt;                case '\n':
&lt;br&gt;&amp;gt;                case '\f':
&lt;br&gt;&amp;gt;                case 0x0b: // Vertical tab
&lt;br&gt;&amp;gt;                    throw new IllegalArgumentException(
&lt;br&gt;&amp;gt;                            &amp;quot;value contains one of the following prohibited
&lt;br&gt;&amp;gt; characters: &amp;quot; +
&lt;br&gt;&amp;gt;                            &amp;quot;\\r\\n\\v\\f: &amp;quot; + value);
&lt;br&gt;&amp;gt;            }
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    public List&amp;lt;String&amp;gt; getHeaders(final String name) {
&lt;br&gt;&amp;gt;        List&amp;lt;String&amp;gt; values = headers.get(name);
&lt;br&gt;&amp;gt;        if (values == null) {
&lt;br&gt;&amp;gt;            return Collections.emptyList();
&lt;br&gt;&amp;gt;        } else {
&lt;br&gt;&amp;gt;            return values;
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    public Set&amp;lt;String&amp;gt; getHeaderNames() {
&lt;br&gt;&amp;gt;        return headers.keySet();
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is probably not the best way as it duplicates some of the code from
&lt;br&gt;&amp;gt; HttpMessage as the headers and methods are built into the class.
&lt;br&gt;&amp;gt; The problem is then adding the trailing headers to the HttpMessage headers
&lt;br&gt;&amp;gt; without clearing them.
&lt;br&gt;&amp;gt; This is a quick fix, maybe you understand a better way to implement it.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've not found the way to send chunked data from the client side, will
&lt;br&gt;&amp;gt; continue looking.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for the effort you've done so far on NIO frameworks.
&lt;br&gt;&amp;gt; We've been using Mina for a while now and it has been working very well.
&lt;br&gt;&amp;gt; We are now migrating onto Netty and so far it looks like you have done an
&lt;br&gt;&amp;gt; excellent job.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt;   Roger F
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://n2.nabble.com/HttpMessageDecoder-Skip-the-footer-does-anyone-use-it-tp3948901p3948901.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/HttpMessageDecoder-Skip-the-footer-does-anyone-use-it-tp3948901p3948901.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the Netty Developer Group mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3964402&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3964402&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/HttpMessageDecoder-Skip-the-footer-does-anyone-use-it-tp3948901p3964402.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3948901"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3948901</id>
	<title>HttpMessageDecoder - Skip the footer; does anyone use it?</title>
	<published>2009-11-04T14:52:51Z</published>
	<updated>2009-11-04T14:52:51Z</updated>
	<author>
		<name>Roger F</name>
	</author>
	<content type="html">Hi Trustin Lee,
&lt;br&gt;&lt;br&gt;I have been trying to use TrailingHeaders after a Content-Transfer: chunked message, obviously it does not work, yet.
&lt;br&gt;&lt;br&gt;This would be useful to allow large files, size unknown, to be streamed in chunks, followed by the MD5.
&lt;br&gt;This ensures data integrity and prevents out of memory in a server.
&lt;br&gt;&lt;br&gt;Here is an example :
&lt;br&gt;&lt;br&gt;PUT / HTTP/1.1
&lt;br&gt;Host: localhost:8081
&lt;br&gt;Transfer-Encoding: chunked
&lt;br&gt;Trailer: Content-MD5
&lt;br&gt;&lt;br&gt;64
&lt;br&gt;1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
&lt;br&gt;0
&lt;br&gt;Content-MD5: 4f30805221b29b36df636869549398fb
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;The following code changes allow TrailingHeaders and seem to work so far in testing.
&lt;br&gt;&lt;br&gt;In HttpMessageDecoder replacing in the decode method the following switch state READ_CHUNK_FOOTER :
&lt;br&gt;&lt;br&gt;@Override
&lt;br&gt;protected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer, State state) throws Exception {
&lt;br&gt;&lt;br&gt;....
&lt;br&gt;&lt;br&gt;case READ_CHUNK_FOOTER: {
&lt;br&gt;&amp;nbsp; &amp;nbsp; // Do not Skip the footer; some people use it!
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; try {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; readFooterHeaders(buffer);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (maxChunkSize == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Chunked encoding disabled.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return reset();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reset();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // The last chunk, which is empty
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return HttpChunk.LAST_CHUNK;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; } finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; checkpoint();
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;...
&lt;br&gt;&lt;br&gt;&lt;br&gt;Then also in HttpMessageDecoder adding the following method :
&lt;br&gt;&lt;br&gt;private void readFooterHeaders(ChannelBuffer buffer) throws TooLongFrameException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; HttpFooterHeaders footerHeaders = new HttpFooterHeaders();
&lt;br&gt;&amp;nbsp; &amp;nbsp; headerSize = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; String line = readHeader(buffer);
&lt;br&gt;&amp;nbsp; &amp;nbsp; String lastHeader = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (line.length() != 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char firstChar = line.charAt(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (lastHeader != null &amp;&amp; (firstChar == ' ' || firstChar == '\t')) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; List&amp;lt;String&amp;gt; current = footerHeaders.getHeaders(lastHeader);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int lastPos = current.size() - 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String newString = current.get(lastPos) + line.trim();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; current.set(lastPos, newString);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String[] header = splitHeader(line);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; footerHeaders.addHeader(header[0], header[1]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lastHeader = header[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; line = readHeader(buffer);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while (line.length() != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Set&amp;lt;String&amp;gt; headerNames = footerHeaders.getHeaderNames();
&lt;br&gt;&amp;nbsp; &amp;nbsp; for (Iterator&amp;lt;String&amp;gt; it = headerNames.iterator(); it.hasNext();) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String headerName = it.next();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; List&amp;lt;String&amp;gt; headerValues = footerHeaders.getHeaders(headerName);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (String headerValue : headerValues) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.addHeader(headerName, headerValue);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;The following class needs to then be added to the package org.jboss.netty.handler.codec.http :
&lt;br&gt;&lt;br&gt;package org.jboss.netty.handler.codec.http;
&lt;br&gt;&lt;br&gt;import java.util.ArrayList;
&lt;br&gt;import java.util.Collections;
&lt;br&gt;import java.util.List;
&lt;br&gt;import java.util.Map;
&lt;br&gt;import java.util.Set;
&lt;br&gt;import java.util.TreeMap;
&lt;br&gt;&lt;br&gt;import org.jboss.netty.util.internal.CaseIgnoringComparator;
&lt;br&gt;&lt;br&gt;public class HttpFooterHeaders {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; private final Map&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt; headers = new TreeMap&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt;(CaseIgnoringComparator.INSTANCE);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public HttpFooterHeaders() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public void addHeader(final String name, final String value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; validateHeaderName(name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; validateHeaderValue(value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (value == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new NullPointerException(&amp;quot;value is null&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //RFC2616 section 14.40 footer headers MUST NOT contain Transfer-Encoding, Content-Length or Trailer
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (name.equalsIgnoreCase(&amp;quot;Transfer-Encoding&amp;quot;) || name.equalsIgnoreCase(&amp;quot;Content-Length&amp;quot;) || name.equalsIgnoreCase(&amp;quot;Trailer&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (headers.get(name) == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; headers.put(name, new ArrayList&amp;lt;String&amp;gt;(1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; headers.get(name).add(value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; private static void validateHeaderName(String name) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (name == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new NullPointerException(&amp;quot;name&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; name.length(); i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char c = name.charAt(i);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (c &amp;gt; 127) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new IllegalArgumentException(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;name contains non-ascii character: &amp;quot; + name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Check prohibited characters.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch (c) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case '=':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case ',':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case ';':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case ' ':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case ':':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case '\t':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case '\r':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case '\n':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case '\f':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0x0b: // Vertical tab
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new IllegalArgumentException(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;name contains one of the following prohibited characters: &amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;=,;: \\t\\r\\n\\v\\f: &amp;quot; + name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; private static void validateHeaderValue(String value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (value == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new NullPointerException(&amp;quot;value&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; value.length(); i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char c = value.charAt(i);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Check prohibited characters.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch (c) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case '\r':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case '\n':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case '\f':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0x0b: // Vertical tab
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new IllegalArgumentException(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;value contains one of the following prohibited characters: &amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;\\r\\n\\v\\f: &amp;quot; + value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public List&amp;lt;String&amp;gt; getHeaders(final String name) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; List&amp;lt;String&amp;gt; values = headers.get(name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (values == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return Collections.emptyList();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return values;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public Set&amp;lt;String&amp;gt; getHeaderNames() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return headers.keySet();
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;This is probably not the best way as it duplicates some of the code from HttpMessage as the headers and methods are built into the class. 
&lt;br&gt;The problem is then adding the trailing headers to the HttpMessage headers without clearing them.
&lt;br&gt;This is a quick fix, maybe you understand a better way to implement it.
&lt;br&gt;&lt;br&gt;I've not found the way to send chunked data from the client side, will continue looking.
&lt;br&gt;&lt;br&gt;Thanks for the effort you've done so far on NIO frameworks.
&lt;br&gt;We've been using Mina for a while now and it has been working very well.
&lt;br&gt;We are now migrating onto Netty and so far it looks like you have done an excellent job.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&amp;nbsp; &amp;nbsp;Roger F</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/HttpMessageDecoder-Skip-the-footer-does-anyone-use-it-tp3948901p3948901.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3934914</id>
	<title>[JBoss JIRA] Updated: (NETTY-246) New full duplex HTTP tunnel implementation (client and server)</title>
	<published>2009-11-02T13:56:07Z</published>
	<updated>2009-11-02T13:56:07Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Iain McGinniss updated NETTY-246:
&lt;br&gt;---------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: netty_http_firstcut_20091102
&lt;br&gt;&lt;br&gt;&lt;br&gt;Patch for the new transport, based on trunk. As mentioned in the description the jmock tests do not work and therefore have been annotated with @Ignore.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; New full duplex HTTP tunnel implementation (client and server)
&lt;br&gt;&amp;gt; --------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-246
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-246&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-246&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Core API, Transport
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Cross platform addition. Does not yet work with an HTTP proxy, however this should be a trivial addition (for basic/digest authentication at least, NTLM is a different matter)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Iain McGinniss
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: netty_http_firstcut_20091102
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As a contributor to the JXTA peer to peer networking framework, I have been tasked with replacing the HTTP based transport that exists in JXTA. I had recently completed the work to rewrite the TCP based transport to use Netty, and felt it would be a good idea to use Netty for HTTP too. However, I found the existing HTTP tunnel to be unsatisfactory, mostly because it required a servlet container on the server side.
&lt;br&gt;&amp;gt; As such, I have create a new full duplex HTTP tunnel using Netty's low level HTTP support. It has been tested in relatively simple setups to date and there are a number of known areas for improvement or fixing, as I would not yet consider myself to be an expert in Netty's inner workings. The implementation uses two TCP connections per channel (two SocketChannels, in fact), one used for sending data from client to server (the &amp;quot;send&amp;quot; channel), the other used for sending data from server to client (the &amp;quot;poll&amp;quot; channel). The technique used is known as Comet, and is necessary to allow usage via a proxy - something which has not yet been implemented but has been planned. There are other intricacies in the implementation, such as an enforced upper limit of 16KB per message body, which is intended to average out the per-byte throughput rather than delivering highly inconsistent payloads. It is debatable whether this works in practice, and is something I would encourage the wider co!
&lt;/div&gt;&amp;nbsp;mmunity to discuss and help choose an appropriate threshold.
&lt;br&gt;&amp;gt; Issues with the implementation:
&lt;br&gt;&amp;gt; 1. No proxy support. This isn't difficult, but has not been implemented yet. If this hasn't been picked up by others in the community within the next week, I will likely implement this as a patch extension.
&lt;br&gt;&amp;gt; 2. Poor connection close handling. The tunnel should be resilient to requests, forceful or polite, to close a connection that is servicing the tunnel. While HTTP 1.1 connections can be long lived, some proxies will close them frequently / at regular intervals.
&lt;br&gt;&amp;gt; 3. Write fragmenting / aggregating. As mentioned above, an upper limit is imposed on the size of message bodies sent in each direction. While the implementation works enforcing the upper limit, it does not attempt to reaggregate smaller fragments into larger bodies. As a result, the size of the message body sent may be wastefully small when there is other data in the outgoing queue.
&lt;br&gt;&amp;gt; 4. Dealing with the synchronous nature of HTTP. While HTTP 1.1 should allow pipelining and full duplex communications, most firewalls / proxies don't like this and therefore we should adhere to a strict request / response ordering. The implementation does this, but I am unsure whether the implementation is a good expression of this logic in netty.
&lt;br&gt;&amp;gt; 5. Correct handling of the various event types in Netty. This is probably the part I am least comfortable with. I make an effort to honour the semantics of ChannelFutures on writes, and deal with bind/unbind/connect/disconnect, but I am unsure whether these are correct. In depth review would be greatly beneficial here.
&lt;br&gt;&amp;gt; 6. Unit tests use jmock - jmock is what I am used to in previous projects, but I see EasyMock is the testing tool of choice here. The jmock tests do not appear to run well within maven build of Netty, so these tests may need to be rewritten using EasyMock to pass QA.
&lt;br&gt;&amp;gt; I may think of other issues as time goes on, but for now it is probably best if we get some wider exposure of this work and some testing in environments other than my own.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3934914&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-246-New-full-duplex-HTTP-tunnel-implementation-client-and-server-tp3934903p3934914.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3934903"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3934903</id>
	<title>[JBoss JIRA] Created: (NETTY-246) New full duplex HTTP tunnel implementation (client and server)</title>
	<published>2009-11-02T13:54:06Z</published>
	<updated>2009-11-02T13:54:06Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">New full duplex HTTP tunnel implementation (client and server)
&lt;br&gt;--------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: NETTY-246
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-246&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-246&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Netty
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Patch
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: Core API, Transport
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Environment: Cross platform addition. Does not yet work with an HTTP proxy, however this should be a trivial addition (for basic/digest authentication at least, NTLM is a different matter)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Iain McGinniss
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Trustin Lee
&lt;br&gt;&lt;br&gt;&lt;br&gt;As a contributor to the JXTA peer to peer networking framework, I have been tasked with replacing the HTTP based transport that exists in JXTA. I had recently completed the work to rewrite the TCP based transport to use Netty, and felt it would be a good idea to use Netty for HTTP too. However, I found the existing HTTP tunnel to be unsatisfactory, mostly because it required a servlet container on the server side.
&lt;br&gt;&lt;br&gt;As such, I have create a new full duplex HTTP tunnel using Netty's low level HTTP support. It has been tested in relatively simple setups to date and there are a number of known areas for improvement or fixing, as I would not yet consider myself to be an expert in Netty's inner workings. The implementation uses two TCP connections per channel (two SocketChannels, in fact), one used for sending data from client to server (the &amp;quot;send&amp;quot; channel), the other used for sending data from server to client (the &amp;quot;poll&amp;quot; channel). The technique used is known as Comet, and is necessary to allow usage via a proxy - something which has not yet been implemented but has been planned. There are other intricacies in the implementation, such as an enforced upper limit of 16KB per message body, which is intended to average out the per-byte throughput rather than delivering highly inconsistent payloads. It is debatable whether this works in practice, and is something I would encourage the wider comm!
&lt;br&gt;&amp;nbsp;unity to discuss and help choose an appropriate threshold.
&lt;br&gt;&lt;br&gt;Issues with the implementation:
&lt;br&gt;&lt;br&gt;1. No proxy support. This isn't difficult, but has not been implemented yet. If this hasn't been picked up by others in the community within the next week, I will likely implement this as a patch extension.
&lt;br&gt;2. Poor connection close handling. The tunnel should be resilient to requests, forceful or polite, to close a connection that is servicing the tunnel. While HTTP 1.1 connections can be long lived, some proxies will close them frequently / at regular intervals.
&lt;br&gt;3. Write fragmenting / aggregating. As mentioned above, an upper limit is imposed on the size of message bodies sent in each direction. While the implementation works enforcing the upper limit, it does not attempt to reaggregate smaller fragments into larger bodies. As a result, the size of the message body sent may be wastefully small when there is other data in the outgoing queue.
&lt;br&gt;4. Dealing with the synchronous nature of HTTP. While HTTP 1.1 should allow pipelining and full duplex communications, most firewalls / proxies don't like this and therefore we should adhere to a strict request / response ordering. The implementation does this, but I am unsure whether the implementation is a good expression of this logic in netty.
&lt;br&gt;5. Correct handling of the various event types in Netty. This is probably the part I am least comfortable with. I make an effort to honour the semantics of ChannelFutures on writes, and deal with bind/unbind/connect/disconnect, but I am unsure whether these are correct. In depth review would be greatly beneficial here.
&lt;br&gt;6. Unit tests use jmock - jmock is what I am used to in previous projects, but I see EasyMock is the testing tool of choice here. The jmock tests do not appear to run well within maven build of Netty, so these tests may need to be rewritten using EasyMock to pass QA.
&lt;br&gt;&lt;br&gt;I may think of other issues as time goes on, but for now it is probably best if we get some wider exposure of this work and some testing in environments other than my own.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3934903&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-246-New-full-duplex-HTTP-tunnel-implementation-client-and-server-tp3934903p3934903.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3931538</id>
	<title>[JBoss JIRA] Closed: (NETTY-245) More convenience methods in CodecEmbedder</title>
	<published>2009-11-02T04:38:06Z</published>
	<updated>2009-11-02T04:38:06Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Trustin Lee closed NETTY-245.
&lt;br&gt;-----------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Done
&lt;br&gt;&lt;br&gt;&lt;br&gt;Done
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; More convenience methods in CodecEmbedder
&lt;br&gt;&amp;gt; -----------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-245
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-245&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-245&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Feature Request
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Handler
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.2.0.ALPHA1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It is sometimes useful to get the number of products in the CodecEmbedder queue -&amp;gt; add CodecEmbedder.size()
&lt;br&gt;&amp;gt; If the number of products is known, it's much simpler to iterate over the array of the product than to call poll() many times. -&amp;gt; add CodecEmbedder.pollAll(T[])
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3931538&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-245-More-convenience-methods-in-CodecEmbedder-tp3931382p3931538.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3931382"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3931382</id>
	<title>[JBoss JIRA] Created: (NETTY-245) More convenience methods in CodecEmbedder</title>
	<published>2009-11-02T04:01:05Z</published>
	<updated>2009-11-02T04:01:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">More convenience methods in CodecEmbedder
&lt;br&gt;-----------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: NETTY-245
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-245&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-245&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Netty
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Feature Request
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: Handler
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fix For: 3.2.0.ALPHA1
&lt;br&gt;&lt;br&gt;&lt;br&gt;It is sometimes useful to get the number of products in the CodecEmbedder queue -&amp;gt; add CodecEmbedder.size()
&lt;br&gt;If the number of products is known, it's much simpler to iterate over the array of the product than to call poll() many times. -&amp;gt; addCodecEmbedder.pollAll(T[])
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3931382&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-245-More-convenience-methods-in-CodecEmbedder-tp3931382p3931382.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3931384</id>
	<title>[JBoss JIRA] Updated: (NETTY-245) More convenience methods in CodecEmbedder</title>
	<published>2009-11-02T04:01:05Z</published>
	<updated>2009-11-02T04:01:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Trustin Lee updated NETTY-245:
&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Description: 
&lt;br&gt;It is sometimes useful to get the number of products in the CodecEmbedder queue -&amp;gt; add CodecEmbedder.size()
&lt;br&gt;If the number of products is known, it's much simpler to iterate over the array of the product than to call poll() many times. -&amp;gt; add CodecEmbedder.pollAll(T[])
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; was:
&lt;br&gt;It is sometimes useful to get the number of products in the CodecEmbedder queue -&amp;gt; add CodecEmbedder.size()
&lt;br&gt;If the number of products is known, it's much simpler to iterate over the array of the product than to call poll() many times. -&amp;gt; addCodecEmbedder.pollAll(T[])
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; More convenience methods in CodecEmbedder
&lt;br&gt;&amp;gt; -----------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-245
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-245&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-245&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Feature Request
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Handler
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.2.0.ALPHA1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It is sometimes useful to get the number of products in the CodecEmbedder queue -&amp;gt; add CodecEmbedder.size()
&lt;br&gt;&amp;gt; If the number of products is known, it's much simpler to iterate over the array of the product than to call poll() many times. -&amp;gt; add CodecEmbedder.pollAll(T[])
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3931384&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-245-More-convenience-methods-in-CodecEmbedder-tp3931382p3931384.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3931382"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3938322</id>
	<title>Re: A couple of questions about Netty internals</title>
	<published>2009-11-03T05:02:05Z</published>
	<updated>2009-11-03T05:02:05Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Mert,
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Tue, Nov 3, 2009 at 7:52 PM, Mert İnan &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3938322&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you Truntin.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; First i post to &amp;quot;Netty Developer Group&amp;quot;, due to lack of response i thougth
&lt;br&gt;&amp;gt; may be i posted to wrong group. So i posted to &amp;quot;Netty User Group&amp;quot; and tried
&lt;br&gt;&amp;gt; to delete first post. but could not delete.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; which group should newbies should post?
&lt;br&gt;&amp;gt; here i tried to ask my questions in more detail.
&lt;br&gt;&lt;br&gt;Actually, Netty User Group is the correct place, but I'm just fine. :)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Trustin Lee wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks for your interest in Netty, but please do not double-post.
&lt;br&gt;&amp;gt;&amp;gt; Your second duplicate post has been discarded.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 2, 2009 at 3:44 PM, Mert İnan &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3938322&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi Netty Developer Group,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; i am trying to get confortable with Netty(3.1.5). Here are a couple of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; questions i come up with.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 1. Data comes into netty, it goes up and down through handlers. There may
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; many ChannelUpstreamHandler and ChannelDownstreamHandler handlers. In all
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; those handlers,in general, should i use Channels.fireMessageReceived only
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; once? if so when? what happens if Channels.fireMessageReceived is called
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; more then once in up handlers?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Trustin Lee wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; There's no restriction on how many times an event should be generated
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; by a handler.  This means, you can generate as many as events as you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; want
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; For example A handler fires X message, B handler receices it. B converts X
&lt;br&gt;&amp;gt;&amp;gt; to Y message.
&lt;br&gt;&amp;gt;&amp;gt; in B hanler X's lifecycle is over, Y message must go on to upper handlers.
&lt;br&gt;&amp;gt;&amp;gt; Bu i can not code this approach.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I could not find a way to kill X and forward Y from where X left.
&lt;/div&gt;&lt;br&gt;1) In handler A, you could call Channels.fireMessageReceived(...) with
&lt;br&gt;the message X.
&lt;br&gt;2) In handler B, you could convert X to Y and then call
&lt;br&gt;Channels.fireMessageReceived(...) with the message Y.
&lt;br&gt;&lt;br&gt;I'm not sure this is what you are looking for because this is a very
&lt;br&gt;typical configuration.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 2. What should i do when my decoder constructed by more than one handler?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; it required that Decoder must be implemented in one handler?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Trustin Lee wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; You can write a complex decoder with more than one handler.  That is,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; you can combine multiple decoders to decode multi-layered protocols
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; for example.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; how can i forward both the half decoded message and renaming buffer?
&lt;br&gt;&amp;gt;&amp;gt; Should i encupsulate them in a new class for example?
&lt;/div&gt;&lt;br&gt;Yes. &amp;nbsp;You can encapsulate them in a new class. &amp;nbsp;There might be other
&lt;br&gt;ways, but I think it is simple and clean.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 3. Why FrameDecoder.callDecode throws this Exception?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;                throw new IllegalStateException(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;                        &amp;quot;decode() method must read at least one byte &amp;quot; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;                        &amp;quot;if it returned a frame (caused by: &amp;quot; + getClass()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;)&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Trustin Lee wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Decoding, by definition, reads something from the input and produces
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the decoded data.  Therefore, you cannot create something from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; nothing.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I want to separete roles of framer and decoder. As you said decoder always
&lt;br&gt;&amp;gt;&amp;gt; should read data.
&lt;br&gt;&amp;gt;&amp;gt; But framer should not i guess. Framer must ensure that enough data is
&lt;br&gt;&amp;gt;&amp;gt; received.
&lt;br&gt;&amp;gt;&amp;gt; in my case, i want to ensure that enough data is received without actually
&lt;br&gt;&amp;gt;&amp;gt; reading it and forward that data to decoder .
&lt;/div&gt;&lt;br&gt;Yes, of course. &amp;nbsp;That's how it is implemented. &amp;nbsp;Could you take a look
&lt;br&gt;into the telnet example? &amp;nbsp;Also, take a look at the source code of
&lt;br&gt;frame decoder and string decoder.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; i hope i could express myself.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Trustin Lee wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; HTH
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; — Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3938322&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://n2.nabble.com/A-couple-of-questions-about-Netty-internals-tp3930218p3937712.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/A-couple-of-questions-about-Netty-internals-tp3930218p3937712.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the Netty Developer Group mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3938322&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3938322&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/A-couple-of-questions-about-Netty-internals-tp3930218p3938322.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3937712"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3937712</id>
	<title>Re: A couple of questions about Netty internals</title>
	<published>2009-11-03T02:52:49Z</published>
	<updated>2009-11-03T02:52:49Z</updated>
	<author>
		<name>Mert İnan</name>
	</author>
	<content type="html">Thank you Truntin.
&lt;br&gt;&lt;br&gt;First i post to &amp;quot;Netty Developer Group&amp;quot;, due to lack of response i thougth may be i posted to wrong group. So i posted to &amp;quot;Netty User Group&amp;quot; and tried to delete first post. but could not delete.
&lt;br&gt;&lt;br&gt;which group should newbies should post? 
&lt;br&gt;here i tried to ask my questions in more detail. 
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Trustin Lee wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Thanks for your interest in Netty, but please do not double-post.
&lt;br&gt;Your second duplicate post has been discarded.
&lt;br&gt;&lt;br&gt;On Mon, Nov 2, 2009 at 3:44 PM, Mert İnan &amp;lt;inanme@yahoo.com&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Netty Developer Group,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; i am trying to get confortable with Netty(3.1.5). Here are a couple of
&lt;br&gt;&amp;gt; questions i come up with.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 1. Data comes into netty, it goes up and down through handlers. There may be
&lt;br&gt;&amp;gt; many ChannelUpstreamHandler and ChannelDownstreamHandler handlers. In all
&lt;br&gt;&amp;gt; those handlers,in general, should i use Channels.fireMessageReceived only
&lt;br&gt;&amp;gt; once? if so when? what happens if Channels.fireMessageReceived is called
&lt;br&gt;&amp;gt; more then once in up handlers?
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Trustin Lee wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message&quot;&gt;There's no restriction on how many times an event should be generated
&lt;br&gt;by a handler. &amp;nbsp;This means, you can generate as many as events as you
&lt;br&gt;want
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
For example A handler fires X message, B handler receices it. B converts X to Y message.
&lt;br&gt;in B hanler X's lifecycle is over, Y message must go on to upper handlers.
&lt;br&gt;Bu i can not code this approach.
&lt;br&gt;&lt;br&gt;I could not find a way to kill X and forward Y from where X left. 
&lt;br&gt;&lt;br&gt;&amp;gt; 2. What should i do when my decoder constructed by more than one handler? Is
&lt;br&gt;&amp;gt; it required that Decoder must be implemented in one handler?
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Trustin Lee wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message&quot;&gt;You can write a complex decoder with more than one handler. &amp;nbsp;That is,
&lt;br&gt;you can combine multiple decoders to decode multi-layered protocols
&lt;br&gt;for example.
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
how can i forward both the half decoded message and renaming buffer? Should i encupsulate them in a new class for example? 
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; 3. Why FrameDecoder.callDecode throws this Exception?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;                throw new IllegalStateException(
&lt;br&gt;&amp;gt;                        &amp;quot;decode() method must read at least one byte &amp;quot; +
&lt;br&gt;&amp;gt;                        &amp;quot;if it returned a frame (caused by: &amp;quot; + getClass() +
&lt;br&gt;&amp;gt; &amp;quot;)&amp;quot;);
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Trustin Lee wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message&quot;&gt;Decoding, by definition, reads something from the input and produces
&lt;br&gt;the decoded data. &amp;nbsp;Therefore, you cannot create something from
&lt;br&gt;nothing.
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
I want to separete roles of framer and decoder. As you said decoder always should read data.
&lt;br&gt;But framer should not i guess. Framer must ensure that enough data is received.
&lt;br&gt;in my case, i want to ensure that enough data is received without actually reading it and forward that data to decoder .
&lt;br&gt;&lt;br&gt;i hope i could express myself. 
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Trustin Lee wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message&quot;&gt;HTH
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;netty-dev@lists.jboss.org
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/A-couple-of-questions-about-Netty-internals-tp3930218p3937712.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3937355"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3937355</id>
	<title>Re: A couple of questions about Netty internals</title>
	<published>2009-11-03T01:23:13Z</published>
	<updated>2009-11-03T01:23:13Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Thanks for your interest in Netty, but please do not double-post.
&lt;br&gt;Your second duplicate post has been discarded.
&lt;br&gt;&lt;br&gt;On Mon, Nov 2, 2009 at 3:44 PM, Mert İnan &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3937355&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Netty Developer Group,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; i am trying to get confortable with Netty(3.1.5). Here are a couple of
&lt;br&gt;&amp;gt; questions i come up with.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 1. Data comes into netty, it goes up and down through handlers. There may be
&lt;br&gt;&amp;gt; many ChannelUpstreamHandler and ChannelDownstreamHandler handlers. In all
&lt;br&gt;&amp;gt; those handlers,in general, should i use Channels.fireMessageReceived only
&lt;br&gt;&amp;gt; once? if so when? what happens if Channels.fireMessageReceived is called
&lt;br&gt;&amp;gt; more then once in up handlers?
&lt;/div&gt;&lt;br&gt;There's no restriction on how many times an event should be generated
&lt;br&gt;by a handler. &amp;nbsp;This means, you can generate as many as events as you
&lt;br&gt;want
&lt;br&gt;&lt;br&gt;&amp;gt; 2. What should i do when my decoder constructed by more than one handler? Is
&lt;br&gt;&amp;gt; it required that Decoder must be implemented in one handler?
&lt;br&gt;&lt;br&gt;You can write a complex decoder with more than one handler. &amp;nbsp;That is,
&lt;br&gt;you can combine multiple decoders to decode multi-layered protocols
&lt;br&gt;for example.
&lt;br&gt;&lt;br&gt;&amp;gt; 3. Why FrameDecoder.callDecode throws this Exception?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;                throw new IllegalStateException(
&lt;br&gt;&amp;gt;                        &amp;quot;decode() method must read at least one byte &amp;quot; +
&lt;br&gt;&amp;gt;                        &amp;quot;if it returned a frame (caused by: &amp;quot; + getClass() +
&lt;br&gt;&amp;gt; &amp;quot;)&amp;quot;);
&lt;br&gt;&lt;br&gt;Decoding, by definition, reads something from the input and produces
&lt;br&gt;the decoded data. &amp;nbsp;Therefore, you cannot create something from
&lt;br&gt;nothing.
&lt;br&gt;&lt;br&gt;HTH
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3937355&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/A-couple-of-questions-about-Netty-internals-tp3930218p3937355.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3930218"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3930218</id>
	<title>A couple of questions about Netty internals</title>
	<published>2009-11-01T22:44:22Z</published>
	<updated>2009-11-01T22:44:22Z</updated>
	<author>
		<name>Mert İnan</name>
	</author>
	<content type="html">Hi Netty Developer Group,
&lt;br&gt;&lt;br&gt;i am trying to get confortable with Netty(3.1.5). Here are a couple of questions i come up with.
&lt;br&gt;&lt;br&gt;1. Data comes into netty, it goes up and down through handlers. There may be many ChannelUpstreamHandler and ChannelDownstreamHandler handlers. In all those handlers,in general, should i use Channels.fireMessageReceived only once? if so when? what happens if Channels.fireMessageReceived is called more then once in up handlers?
&lt;br&gt;&lt;br&gt;2. What should i do when my decoder constructed by more than one handler? Is it required that Decoder must be implemented in one handler?
&lt;br&gt;&lt;br&gt;3. Why FrameDecoder.callDecode throws this Exception?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new IllegalStateException(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;decode() method must read at least one byte &amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;if it returned a frame (caused by: &amp;quot; + getClass() + &amp;quot;)&amp;quot;);
&lt;br&gt;&lt;br&gt;Thank you very much.</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/A-couple-of-questions-about-Netty-internals-tp3930218p3930218.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3930200</id>
	<title>[JBoss JIRA] Closed: (NETTY-244) ReceiveBufferSizePredictorFactory</title>
	<published>2009-11-01T22:37:05Z</published>
	<updated>2009-11-01T22:37:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Trustin Lee closed NETTY-244.
&lt;br&gt;-----------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Done
&lt;br&gt;&lt;br&gt;&lt;br&gt;ReceiveBufferSizePredictorFactory has been added as described above.
&lt;br&gt;&lt;br&gt;I did not deprecate get/setReceiveBufferSizePredictor() though because it is still useful when a user wants to switch the predictor dynamically.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ReceiveBufferSizePredictorFactory
&lt;br&gt;&amp;gt; ---------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-244
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-244&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-244&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Core API
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.2.0.ALPHA1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Configuring a ReceiveBufferSizePredictor using Bootstrap.setOption() is practically impossible because a stateful ReceiveBufferSizePredictor such as AdaptiveReceiveBufferSizePredictor must be instantiated for each channel. &amp;nbsp;Hence, we need ReceiveBufferSizePredictorFactory so that the transport implementations create a new predictor for each new channel.
&lt;br&gt;&amp;gt; Implementation plan: Calling config.setReceiveBufferSizePredictorFactory() will instantiate a new ReceiveBufferSizePredictor immediately and call config.setReceiveBufferSizePredictor() with the new predictor if no predictor has been configured yet. &amp;nbsp;To avoid unnecessary instantiation of the default ReceiveBufferSizePredictor, it should be set to null by default and the default instance should be created in a lazy manner. &amp;nbsp;Deprecate get/setReceiveBufferSizePredictor() and store predictor instances in the 
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3930200&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-244-ReceiveBufferSizePredictorFactory-tp3903265p3930200.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3903265"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3903326</id>
	<title>[JBoss JIRA] Updated: (NETTY-244) ReceiveBufferSizePredictorFactory</title>
	<published>2009-10-27T20:07:05Z</published>
	<updated>2009-10-27T20:07:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Trustin Lee updated NETTY-244:
&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Description: 
&lt;br&gt;Configuring a ReceiveBufferSizePredictor using Bootstrap.setOption() is practically impossible because a stateful ReceiveBufferSizePredictor such as AdaptiveReceiveBufferSizePredictor must be instantiated for each channel. &amp;nbsp;Hence, we need ReceiveBufferSizePredictorFactory so that the transport implementations create a new predictor for each new channel.
&lt;br&gt;&lt;br&gt;Implementation plan: Calling config.setReceiveBufferSizePredictorFactory() will instantiate a new ReceiveBufferSizePredictor immediately and call config.setReceiveBufferSizePredictor() with the new predictor if no predictor has been configured yet. &amp;nbsp;To avoid unnecessary instantiation of the default ReceiveBufferSizePredictor, it should be set to null by default and the default instance should be created in a lazy manner. &amp;nbsp;Deprecate get/setReceiveBufferSizePredictor() and store predictor instances in the 
&lt;br&gt;&lt;br&gt;&amp;nbsp; was:
&lt;br&gt;Configuring a ReceiveBufferSizePredictor using Bootstrap.setOption() is practically impossible because a stateful ReceiveBufferSizePredictor such as AdaptiveReceiveBufferSizePredictor must be instantiated for each channel. &amp;nbsp;Hence, we need ReceiveBufferSizePredictorFactory so that the transport implementations create a new predictor for each new channel.
&lt;br&gt;&lt;br&gt;Implementation plan: Calling config.setReceiveBufferSizePredictorFactory() will instantiate a new ReceiveBufferSizePredictor immediately and call config.setReceiveBufferSizePredictor() with the new predictor. &amp;nbsp;To avoid unnecessary instantiation of the default ReceiveBufferSizePredictor, it should be set to null by default and the default instance should be created in a lazy manner.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ReceiveBufferSizePredictorFactory
&lt;br&gt;&amp;gt; ---------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-244
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-244&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-244&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Core API
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.2.0.ALPHA1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Configuring a ReceiveBufferSizePredictor using Bootstrap.setOption() is practically impossible because a stateful ReceiveBufferSizePredictor such as AdaptiveReceiveBufferSizePredictor must be instantiated for each channel. &amp;nbsp;Hence, we need ReceiveBufferSizePredictorFactory so that the transport implementations create a new predictor for each new channel.
&lt;br&gt;&amp;gt; Implementation plan: Calling config.setReceiveBufferSizePredictorFactory() will instantiate a new ReceiveBufferSizePredictor immediately and call config.setReceiveBufferSizePredictor() with the new predictor if no predictor has been configured yet. &amp;nbsp;To avoid unnecessary instantiation of the default ReceiveBufferSizePredictor, it should be set to null by default and the default instance should be created in a lazy manner. &amp;nbsp;Deprecate get/setReceiveBufferSizePredictor() and store predictor instances in the 
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3903326&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-244-ReceiveBufferSizePredictorFactory-tp3903265p3903326.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3903265"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3903265</id>
	<title>[JBoss JIRA] Created: (NETTY-244) ReceiveBufferSizePredictorFactory</title>
	<published>2009-10-27T19:47:05Z</published>
	<updated>2009-10-27T19:47:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">ReceiveBufferSizePredictorFactory
&lt;br&gt;---------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: NETTY-244
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-244&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-244&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Netty
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: Core API
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fix For: 3.2.0.ALPHA1
&lt;br&gt;&lt;br&gt;&lt;br&gt;Configuring a ReceiveBufferSizePredictor using Bootstrap.setOption() is practically impossible because a stateful ReceiveBufferSizePredictor such as AdaptiveReceiveBufferSizePredictor must be instantiated for each channel. &amp;nbsp;Hence, we need ReceiveBufferSizePredictorFactory so that the transport implementations create a new predictor for each new channel.
&lt;br&gt;&lt;br&gt;Implementation plan: Calling config.setReceiveBufferSizePredictorFactory() will instantiate a new ReceiveBufferSizePredictor immediately and call config.setReceiveBufferSizePredictor() with the new predictor. &amp;nbsp;To avoid unnecessary instantiation of the default ReceiveBufferSizePredictor, it should be set to null by default and the default instance should be created in a lazy manner.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3903265&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-244-ReceiveBufferSizePredictorFactory-tp3903265p3903265.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3963608</id>
	<title>Re: New branch httpPost</title>
	<published>2009-11-07T02:00:10Z</published>
	<updated>2009-11-07T02:00:10Z</updated>
	<author>
		<name>Frederic Bregier</name>
	</author>
	<content type="html">Hi Trustin,
&lt;br&gt;&lt;br&gt;It's done for httpPost branch.
&lt;br&gt;Cheers,
&lt;br&gt;&lt;br&gt;Frederic
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Frederic Bregier wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Trustin,
&lt;br&gt;&lt;br&gt;The branch was up to date from the very first version of trunk pre 3.2.
&lt;br&gt;I will take a look into the trunk if some changes were done (at least one in the snoop example I see) in order update the branch to make it easier for you to get it back into the trunk when you think it is ready.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Frederic
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Trustin Lee wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Frederic,
&lt;br&gt;&lt;br&gt;Thank you very much for another big chunk of contribution! :)
&lt;br&gt;&lt;br&gt;I will take a look soon and get back to you! &amp;nbsp;Meanwhile, please watch
&lt;br&gt;out for my changes in the trunk, which might need to be merged into
&lt;br&gt;your branch.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Sun, Oct 25, 2009 at 8:31 AM, Frederic Bregier &amp;lt;fredbregier@free.fr&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Trustin,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I finally managed to get the time to upload the branch httpPost which
&lt;br&gt;&amp;gt; contains the coder end decoder for Post Request in Http and the enhanced
&lt;br&gt;&amp;gt; snoop example.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Except of course if some improvements are still needed, with the two
&lt;br&gt;&amp;gt; branches out there (one with IpFilter and Traffic, the other one with
&lt;br&gt;&amp;gt; HttpPost), I can go back to my production qualification of my two projects.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Just to let you know that OpenR66 passes all tests, including long term,
&lt;br&gt;&amp;gt; huge load and high speed, thanks to Netty... and you and all of Netty's
&lt;br&gt;&amp;gt; users and contributors !
&lt;br&gt;&amp;gt; Now its the turn of GoldenGate FTP...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you all !
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; Frederic
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----
&lt;br&gt;&amp;gt; Hardware/Software Architect
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://n2.nabble.com/New-branch-httpPost-tp3885879p3885879.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/New-branch-httpPost-tp3885879p3885879.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the Netty Developer Group mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt; netty-dev@lists.jboss.org
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;netty-dev@lists.jboss.org
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;div class=&quot;signature&quot;&gt;Hardware/Software Architect&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-branch-httpPost-tp3885879p3963608.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3937466"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3937466</id>
	<title>Re: New branch httpPost</title>
	<published>2009-11-03T01:52:52Z</published>
	<updated>2009-11-03T01:52:52Z</updated>
	<author>
		<name>Frederic Bregier</name>
	</author>
	<content type="html">Hi Trustin,
&lt;br&gt;&lt;br&gt;The branch was up to date from the very first version of trunk pre 3.2.
&lt;br&gt;I will take a look into the trunk if some changes were done (at least one in the snoop example I see) in order update the branch to make it easier for you to get it back into the trunk when you think it is ready.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Frederic
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Trustin Lee wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Frederic,
&lt;br&gt;&lt;br&gt;Thank you very much for another big chunk of contribution! :)
&lt;br&gt;&lt;br&gt;I will take a look soon and get back to you! &amp;nbsp;Meanwhile, please watch
&lt;br&gt;out for my changes in the trunk, which might need to be merged into
&lt;br&gt;your branch.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Sun, Oct 25, 2009 at 8:31 AM, Frederic Bregier &amp;lt;fredbregier@free.fr&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Trustin,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I finally managed to get the time to upload the branch httpPost which
&lt;br&gt;&amp;gt; contains the coder end decoder for Post Request in Http and the enhanced
&lt;br&gt;&amp;gt; snoop example.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Except of course if some improvements are still needed, with the two
&lt;br&gt;&amp;gt; branches out there (one with IpFilter and Traffic, the other one with
&lt;br&gt;&amp;gt; HttpPost), I can go back to my production qualification of my two projects.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Just to let you know that OpenR66 passes all tests, including long term,
&lt;br&gt;&amp;gt; huge load and high speed, thanks to Netty... and you and all of Netty's
&lt;br&gt;&amp;gt; users and contributors !
&lt;br&gt;&amp;gt; Now its the turn of GoldenGate FTP...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you all !
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; Frederic
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----
&lt;br&gt;&amp;gt; Hardware/Software Architect
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://n2.nabble.com/New-branch-httpPost-tp3885879p3885879.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/New-branch-httpPost-tp3885879p3885879.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the Netty Developer Group mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt; netty-dev@lists.jboss.org
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;netty-dev@lists.jboss.org
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;div class=&quot;signature&quot;&gt;Hardware/Software Architect&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-branch-httpPost-tp3885879p3937466.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3937184"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3937184</id>
	<title>Re: New branch httpPost</title>
	<published>2009-11-03T00:40:00Z</published>
	<updated>2009-11-03T00:40:00Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Frederic,
&lt;br&gt;&lt;br&gt;Thank you very much for another big chunk of contribution! :)
&lt;br&gt;&lt;br&gt;I will take a look soon and get back to you! &amp;nbsp;Meanwhile, please watch
&lt;br&gt;out for my changes in the trunk, which might need to be merged into
&lt;br&gt;your branch.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Sun, Oct 25, 2009 at 8:31 AM, Frederic Bregier &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3937184&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Trustin,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I finally managed to get the time to upload the branch httpPost which
&lt;br&gt;&amp;gt; contains the coder end decoder for Post Request in Http and the enhanced
&lt;br&gt;&amp;gt; snoop example.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Except of course if some improvements are still needed, with the two
&lt;br&gt;&amp;gt; branches out there (one with IpFilter and Traffic, the other one with
&lt;br&gt;&amp;gt; HttpPost), I can go back to my production qualification of my two projects.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Just to let you know that OpenR66 passes all tests, including long term,
&lt;br&gt;&amp;gt; huge load and high speed, thanks to Netty... and you and all of Netty's
&lt;br&gt;&amp;gt; users and contributors !
&lt;br&gt;&amp;gt; Now its the turn of GoldenGate FTP...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you all !
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; Frederic
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----
&lt;br&gt;&amp;gt; Hardware/Software Architect
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://n2.nabble.com/New-branch-httpPost-tp3885879p3885879.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/New-branch-httpPost-tp3885879p3885879.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the Netty Developer Group mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3937184&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3937184&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-branch-httpPost-tp3885879p3937184.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3885879"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3885879</id>
	<title>New branch httpPost</title>
	<published>2009-10-24T16:31:41Z</published>
	<updated>2009-10-24T16:31:41Z</updated>
	<author>
		<name>Frederic Bregier</name>
	</author>
	<content type="html">Hi Trustin,
&lt;br&gt;&lt;br&gt;I finally managed to get the time to upload the branch httpPost which contains the coder end decoder for Post Request in Http and the enhanced snoop example.
&lt;br&gt;&lt;br&gt;Except of course if some improvements are still needed, with the two branches out there (one with IpFilter and Traffic, the other one with HttpPost), I can go back to my production qualification of my two projects.
&lt;br&gt;&lt;br&gt;Just to let you know that OpenR66 passes all tests, including long term, huge load and high speed, thanks to Netty... and you and all of Netty's users and contributors !
&lt;br&gt;Now its the turn of GoldenGate FTP...
&lt;br&gt;&lt;br&gt;Thank you all !
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Frederic&lt;div class=&quot;signature&quot;&gt;Hardware/Software Architect&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-branch-httpPost-tp3885879p3885879.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3865499</id>
	<title>[JBoss JIRA] Created: (NETTY-243) Make the HTTP tunneling transport firewall-friendly</title>
	<published>2009-10-21T07:05:05Z</published>
	<updated>2009-10-21T07:05:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">Make the HTTP tunneling transport firewall-friendly
&lt;br&gt;---------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: NETTY-243
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-243&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-243&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Netty
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Feature Request
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: Transport
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fix For: 3.2.0.ALPHA1
&lt;br&gt;&lt;br&gt;&lt;br&gt;The current HTTP tunneling transport implementation will not work with strict HTTP firewalls as it uses infinitely long connection. &amp;nbsp;Some advanced technique which is similar to Comet/Bayeux must be applied.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3865499&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-243-Make-the-HTTP-tunneling-transport-firewall-friendly-tp3865499p3865499.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3872394</id>
	<title>[JBoss JIRA] Commented: (NETTY-242) contribution: asynchronous hessian rpc + hessian encoder/decoder</title>
	<published>2009-10-22T06:46:05Z</published>
	<updated>2009-10-22T06:46:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12490964#action_12490964&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12490964#action_12490964&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;rr zo commented on NETTY-242:
&lt;br&gt;-----------------------------
&lt;br&gt;&lt;br&gt;Hello, I have signed the contributor license agreement just before adding this patch
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; contribution: asynchronous hessian rpc + hessian encoder/decoder
&lt;br&gt;&amp;gt; ----------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-242
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: rr zo
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Optional
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: netty_hessian.zip
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; encoder/decoder for hessian serialization
&lt;br&gt;&amp;gt; asynchronous hessian rpc with the following features:
&lt;br&gt;&amp;gt; support for sessions
&lt;br&gt;&amp;gt; synchronous + asynchronous client side proxies
&lt;br&gt;&amp;gt; synchronous + asynchronous + continutations support for server side services
&lt;br&gt;&amp;gt; this is a full functional initial release for evaluation and for feedbck.
&lt;br&gt;&amp;gt; package name does not contain jboss.netty yet. this could be changed once the package name has been decided.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3872394&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-242-contribution-asynchronous-hessian-rpc-hessian-encoder-decoder-tp3860278p3872394.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3860278"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3865619</id>
	<title>[JBoss JIRA] Commented: (NETTY-242) contribution: asynchronous hessian rpc + hessian encoder/decoder</title>
	<published>2009-10-21T07:26:05Z</published>
	<updated>2009-10-21T07:26:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12490721#action_12490721&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12490721#action_12490721&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Trustin Lee commented on NETTY-242:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;By the way, please sign the contributor license agreement so that I can merge your contribution to JBoss.org source code repository: &amp;nbsp; &lt;a href=&quot;http://www.jboss.org/contribute/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jboss.org/contribute/&lt;/a&gt;&lt;br&gt;Please let me know when you finished sign-up - I will try to expedite the approval process.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; contribution: asynchronous hessian rpc + hessian encoder/decoder
&lt;br&gt;&amp;gt; ----------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-242
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: rr zo
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Optional
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: netty_hessian.zip
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; encoder/decoder for hessian serialization
&lt;br&gt;&amp;gt; asynchronous hessian rpc with the following features:
&lt;br&gt;&amp;gt; support for sessions
&lt;br&gt;&amp;gt; synchronous + asynchronous client side proxies
&lt;br&gt;&amp;gt; synchronous + asynchronous + continutations support for server side services
&lt;br&gt;&amp;gt; this is a full functional initial release for evaluation and for feedbck.
&lt;br&gt;&amp;gt; package name does not contain jboss.netty yet. this could be changed once the package name has been decided.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3865619&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-242-contribution-asynchronous-hessian-rpc-hessian-encoder-decoder-tp3860278p3865619.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3860278"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3865587</id>
	<title>[JBoss JIRA] Commented: (NETTY-242) contribution: asynchronous hessian rpc + hessian encoder/decoder</title>
	<published>2009-10-21T07:20:20Z</published>
	<updated>2009-10-21T07:20:20Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12490716#action_12490716&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12490716#action_12490716&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Trustin Lee commented on NETTY-242:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;This is a very interesting contribution. &amp;nbsp;Thank you very much! &amp;nbsp;I'll make sure to review it soon and get back to you.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; contribution: asynchronous hessian rpc + hessian encoder/decoder
&lt;br&gt;&amp;gt; ----------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-242
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: rr zo
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Optional
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: netty_hessian.zip
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; encoder/decoder for hessian serialization
&lt;br&gt;&amp;gt; asynchronous hessian rpc with the following features:
&lt;br&gt;&amp;gt; support for sessions
&lt;br&gt;&amp;gt; synchronous + asynchronous client side proxies
&lt;br&gt;&amp;gt; synchronous + asynchronous + continutations support for server side services
&lt;br&gt;&amp;gt; this is a full functional initial release for evaluation and for feedbck.
&lt;br&gt;&amp;gt; package name does not contain jboss.netty yet. this could be changed once the package name has been decided.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3865587&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-242-contribution-asynchronous-hessian-rpc-hessian-encoder-decoder-tp3860278p3865587.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3860278"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3860305</id>
	<title>[JBoss JIRA] Updated: (NETTY-242) contribution: asynchronous hessian rpc + hessian encoder/decoder</title>
	<published>2009-10-20T11:08:07Z</published>
	<updated>2009-10-20T11:08:07Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;rr zo updated NETTY-242:
&lt;br&gt;------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: netty_hessian.zip
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; contribution: asynchronous hessian rpc + hessian encoder/decoder
&lt;br&gt;&amp;gt; ----------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-242
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: rr zo
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Optional
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: netty_hessian.zip
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; encoder/decoder for hessian serialization
&lt;br&gt;&amp;gt; asynchronous hessian rpc with the following features:
&lt;br&gt;&amp;gt; support for sessions
&lt;br&gt;&amp;gt; synchronous + asynchronous client side proxies
&lt;br&gt;&amp;gt; synchronous + asynchronous + continutations support for server side services
&lt;br&gt;&amp;gt; this is a full functional initial release for evaluation and for feedbck.
&lt;br&gt;&amp;gt; package name does not contain jboss.netty yet. this could be changed once the package name has been decided.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3860305&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-242-contribution-asynchronous-hessian-rpc-hessian-encoder-decoder-tp3860278p3860305.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3860278"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3860278</id>
	<title>[JBoss JIRA] Created: (NETTY-242) contribution: asynchronous hessian rpc + hessian encoder/decoder</title>
	<published>2009-10-20T11:03:05Z</published>
	<updated>2009-10-20T11:03:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">contribution: asynchronous hessian rpc + hessian encoder/decoder
&lt;br&gt;----------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: NETTY-242
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-242&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-242&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Netty
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Patch
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: rr zo
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Optional
&lt;br&gt;&lt;br&gt;&lt;br&gt;encoder/decoder for hessian serialization
&lt;br&gt;asynchronous hessian rpc with the following features:
&lt;br&gt;&lt;br&gt;support for sessions
&lt;br&gt;synchronous + asynchronous client side proxies
&lt;br&gt;synchronous + asynchronous + continutations support for server side services
&lt;br&gt;&lt;br&gt;this is a full functional initial release for evaluation and for feedbck.
&lt;br&gt;package name does not contain jboss.netty yet. this could be changed once the package name has been decided.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3860278&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-242-contribution-asynchronous-hessian-rpc-hessian-encoder-decoder-tp3860278p3860278.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3888278</id>
	<title>Re: Fix branch to last version of trunk</title>
	<published>2009-10-25T11:05:38Z</published>
	<updated>2009-10-25T11:05:38Z</updated>
	<author>
		<name>Frederic Bregier</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I applied a small fix on Traffic handler.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Frederic
&lt;br&gt;&lt;br&gt;Frederic Bregier [via Netty Forums and Mailing Lists] a écrit :
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It's me again. In fact I recover my passwd, so I was able to remove 
&lt;br&gt;&amp;gt; the two olds branches that were unified in one branch.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; Frederic
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Frederic Bregier wrote:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Hi Trustin,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; I did not know how to update the two branches up to the last
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; version of trunk, so I decided to create a new one from the last
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; current version of Trunk named trafficAndIpFilter.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; It includes both Traffic and IpFilter branches updated to last
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; version of trunk and it includes a fix on Traffic where a bug (not
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; really a bug) occurs when we change the bandwitdh.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; The fix covers the following:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; - If the bandwidth is changed (for instance dramatically lower
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; than previous), the previous computations on limitation is
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; sometimes very slow to reopen the write or read commands.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; - So when a change on the limitations is done, the limitation
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; computations are cleaned in order that new bandwitdh takes effect
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; correctly immediately.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; I do not know how to delete the two previous branches (I need to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; get again my svn password since it is only stored in Eclipse right
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; now).
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; So could you delete the two previous branches (Filter and Traffic) ?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Sorry for this... ;-(
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; I will start on a new branch named HttpPost which will include the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; latest revision of Http codec plus the proposed evolution on Post.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Cheers,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Frederic
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hardware/Software Architect
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; View message @ 
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/Fix-branch-to-last-version-of-trunk-tp3856835p3856885.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/Fix-branch-to-last-version-of-trunk-tp3856835p3856885.html&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; To unsubscribe from Fix branch to last version of trunk, click here 
&lt;br&gt;&amp;gt; &amp;lt;&lt;a target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&amp;lt;Link Removed&amp;gt;&lt;/a&gt;&amp;gt;. 
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;Hardware/Software Architect&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Fix-branch-to-last-version-of-trunk-tp3856835p3888278.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3856885"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3856885</id>
	<title>Re: Fix branch to last version of trunk</title>
	<published>2009-10-19T22:47:14Z</published>
	<updated>2009-10-19T22:47:14Z</updated>
	<author>
		<name>Frederic Bregier</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;It's me again. In fact I recover my passwd, so I was able to remove the two olds branches that were unified in one branch.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Frederic
&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Frederic Bregier wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Trustin,
&lt;br&gt;&lt;br&gt;I did not know how to update the two branches up to the last version of trunk, so I decided to create a new one from the last current version of Trunk named trafficAndIpFilter.
&lt;br&gt;It includes both Traffic and IpFilter branches updated to last version of trunk and it includes a fix on Traffic where a bug (not really a bug) occurs when we change the bandwitdh. 
&lt;br&gt;&lt;br&gt;The fix covers the following:
&lt;br&gt;- If the bandwidth is changed (for instance dramatically lower than previous), the previous computations on limitation is sometimes very slow to reopen the write or read commands.
&lt;br&gt;- So when a change on the limitations is done, the limitation computations are cleaned in order that new bandwitdh takes effect correctly immediately.
&lt;br&gt;&lt;br&gt;I do not know how to delete the two previous branches (I need to get again my svn password since it is only stored in Eclipse right now).
&lt;br&gt;So could you delete the two previous branches (Filter and Traffic) ?
&lt;br&gt;Sorry for this... ;-(
&lt;br&gt;&lt;br&gt;I will start on a new branch named HttpPost which will include the latest revision of Http codec plus the proposed evolution on Post.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Frederic
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;div class=&quot;signature&quot;&gt;Hardware/Software Architect&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Fix-branch-to-last-version-of-trunk-tp3856835p3856885.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3856835"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3856835</id>
	<title>Fix branch to last version of trunk</title>
	<published>2009-10-19T22:31:24Z</published>
	<updated>2009-10-19T22:31:24Z</updated>
	<author>
		<name>Frederic Bregier</name>
	</author>
	<content type="html">Hi Trustin,
&lt;br&gt;&lt;br&gt;I did not know how to update the two branches up to the last version of trunk, so I decided to create a new one from the last current version of Trunk named trafficAndIpFilter.
&lt;br&gt;It includes both Traffic and IpFilter branches updated to last version of trunk and it includes a fix on Traffic where a bug (not really a bug) occurs when we change the bandwitdh. 
&lt;br&gt;&lt;br&gt;The fix covers the following:
&lt;br&gt;- If the bandwidth is changed (for instance dramatically lower than previous), the previous computations on limitation is sometimes very slow to reopen the write or read commands.
&lt;br&gt;- So when a change on the limitations is done, the limitation computations are cleaned in order that new bandwitdh takes effect correctly immediately.
&lt;br&gt;&lt;br&gt;I do not know how to delete the two previous branches (I need to get again my svn password since it is only stored in Eclipse right now).
&lt;br&gt;So could you delete the two previous branches (Filter and Traffic) ?
&lt;br&gt;Sorry for this... ;-(
&lt;br&gt;&lt;br&gt;I will start on a new branch named HttpPost which will include the latest revision of Http codec plus the proposed evolution on Post.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Frederic&lt;div class=&quot;signature&quot;&gt;Hardware/Software Architect&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Fix-branch-to-last-version-of-trunk-tp3856835p3856835.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3869937</id>
	<title>Re: Open Source</title>
	<published>2009-10-21T20:06:56Z</published>
	<updated>2009-10-21T20:06:56Z</updated>
	<author>
		<name>Mike McGrady</name>
	</author>
	<content type="html">Thanks Trustin. &amp;nbsp;We will give this careful consideration but value &amp;nbsp;
&lt;br&gt;your opinion
&lt;br&gt;&lt;br&gt;Sent from my iPhone
&lt;br&gt;&lt;br&gt;On Oct 21, 2009, at 6:22 PM, Trustin Lee (이희승) &amp;nbsp;
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869937&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hey Mike,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; First of all, good luck to your new open source project!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As to license, I would prefer LGPL or ALv2 but you should research
&lt;br&gt;&amp;gt; carefully to find the best one for you. &amp;nbsp;Try to consult
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869937&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt; mailing list.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; HTH
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; — Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Tue, Oct 20, 2009 at 2:31 AM, Michael McGrady
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869937&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; To All and Especially Trustin:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I am going to open source a mobile object (agent) technology called
&lt;br&gt;&amp;gt;&amp;gt; KARMA (Kolona Automated Resource Management Architecture) with Netty
&lt;br&gt;&amp;gt;&amp;gt; as the default transport. &amp;nbsp;Is there any advice out there, especially
&lt;br&gt;&amp;gt;&amp;gt; from Trustin, regarding the appropriate license?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Mike
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Mike McGrady
&lt;br&gt;&amp;gt;&amp;gt; Principal Investigator AF081-028 AFRL SBIR
&lt;br&gt;&amp;gt;&amp;gt; Senior Engineer
&lt;br&gt;&amp;gt;&amp;gt; Topia Technology, Inc
&lt;br&gt;&amp;gt;&amp;gt; 1.253.720.3365
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869937&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869937&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869937&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869937&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Open-Source-tp3850434p3869937.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3869603"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3869603</id>
	<title>Re: Open Source</title>
	<published>2009-10-21T18:22:02Z</published>
	<updated>2009-10-21T18:22:02Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hey Mike,
&lt;br&gt;&lt;br&gt;First of all, good luck to your new open source project!
&lt;br&gt;&lt;br&gt;As to license, I would prefer LGPL or ALv2 but you should research
&lt;br&gt;carefully to find the best one for you. &amp;nbsp;Try to consult
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869603&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt; mailing list.
&lt;br&gt;&lt;br&gt;HTH
&lt;br&gt;&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Tue, Oct 20, 2009 at 2:31 AM, Michael McGrady
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869603&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; To All and Especially Trustin:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I am going to open source a mobile object (agent) technology called
&lt;br&gt;&amp;gt; KARMA (Kolona Automated Resource Management Architecture) with Netty
&lt;br&gt;&amp;gt; as the default transport.  Is there any advice out there, especially
&lt;br&gt;&amp;gt; from Trustin, regarding the appropriate license?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Mike
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Mike McGrady
&lt;br&gt;&amp;gt; Principal Investigator AF081-028 AFRL SBIR
&lt;br&gt;&amp;gt; Senior Engineer
&lt;br&gt;&amp;gt; Topia Technology, Inc
&lt;br&gt;&amp;gt; 1.253.720.3365
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869603&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869603&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3869603&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Open-Source-tp3850434p3869603.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3850434"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3850434</id>
	<title>Open Source</title>
	<published>2009-10-19T10:31:22Z</published>
	<updated>2009-10-19T10:31:22Z</updated>
	<author>
		<name>Mike McGrady</name>
	</author>
	<content type="html">To All and Especially Trustin:
&lt;br&gt;&lt;br&gt;I am going to open source a mobile object (agent) technology called &amp;nbsp;
&lt;br&gt;KARMA (Kolona Automated Resource Management Architecture) with Netty &amp;nbsp;
&lt;br&gt;as the default transport. &amp;nbsp;Is there any advice out there, especially &amp;nbsp;
&lt;br&gt;from Trustin, regarding the appropriate license?
&lt;br&gt;&lt;br&gt;Mike
&lt;br&gt;&lt;br&gt;Mike McGrady
&lt;br&gt;Principal Investigator AF081-028 AFRL SBIR
&lt;br&gt;Senior Engineer
&lt;br&gt;Topia Technology, Inc
&lt;br&gt;1.253.720.3365
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3850434&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3850434&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Open-Source-tp3850434p3850434.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3833642</id>
	<title>[JBoss JIRA] Closed: (NETTY-241) Add more ChannelBufferFactory.getBuffer() methods for less memory bandwidth consumption</title>
	<published>2009-10-15T21:53:05Z</published>
	<updated>2009-10-15T21:53:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Trustin Lee closed NETTY-241.
&lt;br&gt;-----------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Done
&lt;br&gt;&lt;br&gt;&lt;br&gt;Done.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add more ChannelBufferFactory.getBuffer() methods for less memory bandwidth consumption
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: NETTY-241
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-241&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-241&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Netty
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Task
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Buffer
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Trustin Lee
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.2.0.ALPHA1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When using ChannelBufferFactory to create a new buffer, there's no way to wrap a byte array other than making a copy. &amp;nbsp;The default factory (HeapChannelBufferFactory) could simply wrap the array if the methods for this purpose are provided.
&lt;br&gt;&amp;gt; Before:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; byte[] array = ...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; ChannelBuffer buf = factory.getBuffer(array.length);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; buf.writeBytes(array);
&lt;br&gt;&amp;gt; After:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; byte[] array = ...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; ChannelBuffer buf = factory.getBuffer(array, 0, array.length);
&lt;br&gt;&amp;gt; And the same could be applied for wrapping NIO ByteBuffers.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3833642&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-241-Add-more-ChannelBufferFactory-getBuffer-methods-for-less-memory-bandwidn-tp3833578p3833642.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3833578"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3833578</id>
	<title>[JBoss JIRA] Created: (NETTY-241) Add more ChannelBufferFactory.getBuffer() methods for less memory bandwidth consumption</title>
	<published>2009-10-15T21:27:05Z</published>
	<updated>2009-10-15T21:27:05Z</updated>
	<author>
		<name>JIRA jira-events@lists.jboss.org</name>
	</author>
	<content type="html">Add more ChannelBufferFactory.getBuffer() methods for less memory bandwidth consumption
&lt;br&gt;---------------------------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: NETTY-241
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-241&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-241&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Netty
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Task
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: Buffer
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Trustin Lee
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Minor
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fix For: 3.2.0.ALPHA1
&lt;br&gt;&lt;br&gt;&lt;br&gt;When using ChannelBufferFactory to create a new buffer, there's no way to wrap a byte array other than making a copy. &amp;nbsp;The default factory (HeapChannelBufferFactory) could simply wrap the array if the methods for this purpose are provided.
&lt;br&gt;&lt;br&gt;Before:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; byte[] array = ...;
&lt;br&gt;&amp;nbsp; &amp;nbsp; ChannelBuffer buf = factory.getBuffer(array.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; buf.writeBytes(array);
&lt;br&gt;&lt;br&gt;After:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; byte[] array = ...;
&lt;br&gt;&amp;nbsp; &amp;nbsp; ChannelBuffer buf = factory.getBuffer(array, 0, array.length);
&lt;br&gt;&lt;br&gt;And the same could be applied for wrapping NIO ByteBuffers.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;https://jira.jboss.org/jira/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3833578&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;[hidden email]&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/JBoss-JIRA-Created-NETTY-241-Add-more-ChannelBufferFactory-getBuffer-methods-for-less-memory-bandwidn-tp3833578p3833578.html" />
	
</entry>

</feed>
