camel-netty: Add a registry based option for a custom ChannelPipelineFactory
----------------------------------------------------------------------------

                 Key: CAMEL-2713
                 URL: https://issues.apache.org/activemq/browse/CAMEL-2713
             Project: Apache Camel
          Issue Type: Improvement
    Affects Versions: 2.3.0
         Environment: All
            Reporter: Christian Mueller
             Fix For: 2.4.0


We will build an ims-component to communicate with our 
[IMS|http://en.wikipedia.org/wiki/Information_Management_System] system.

As described in the Netty documentation in chapter [1.7.2.  The First 
Solution|http://docs.jboss.org/netty/3.1/guide/html_single/index.html#d0e865], 
I assume that we need a state full SimpleChannelHandler (class annotated with 
@ChannelPipelineCoverage("one")). The proposed solution is to use a 
ChannelPipelineFactory which creates a new ChannelPipeline and a new 
SimpleChannelHandler for each Channel.

{code}
public class TimeClientPipelineFactory implements ChannelPipelineFactory {

    public ChannelPipeline getPipeline() {
        ChannelPipeline pipeline = Channels.pipeline();
        pipeline.addLast("handler", new TimeClientHandler());
        return pipeline;
    }
}
{code}

In the current implementation, this is not possible IMO. The custom handler, 
which is looked up from the registry, is shared between all channels:

{code}
    channelPipeline.addLast("handler", 
consumer.getConfiguration().getHandler());
{code}

If I'm right, I would like to provide the patch (but unfortunately not in the 
next two weeks).

Thanks,
Christian

P.S: Very nice/clean code inside this component... :-)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to