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.