camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ashwin Karpe (JIRA)" <>
Subject [jira] Updated: (CAMEL-2713) camel-netty: Add a registry based option for a custom ChannelPipelineFactory
Date Mon, 09 Aug 2010 21:26:47 GMT


Ashwin Karpe updated CAMEL-2713:

    Attachment: CAMEL-2713-fix.diff

Hi Claus,

I have provided a fix for this feature enhancement where it should now be possible to add
a user defined custom pipeline factory (both client-side and server-side) to Netty which can
be invoked to create a custom set of handlers, encoders, decoders etc thereby giving full
control over the handler/interceptor chain.

Can you please let me know if I can go ahead and commit. I have run all the unit tests and
added a couple of unit tests to prove the capability.



BTW, can you also let me know if yo have had a chance to look at CAMEL-2943 (Camel-sip component).
I would like to commit this in as well. It is a pretty cool telecom centric protocol component.

> camel-netty: Add a registry based option for a custom ChannelPipelineFactory
> ----------------------------------------------------------------------------
>                 Key: CAMEL-2713
>                 URL:
>             Project: Apache Camel
>          Issue Type: Improvement
>    Affects Versions: 2.3.0
>         Environment: All
>            Reporter: Christian Mueller
>            Assignee: Ashwin Karpe
>             Fix For: 2.5.0
>         Attachments: CAMEL-2713-fix.diff,
> We will build an ims-component to communicate with our [IMS|]
> As described in the Netty documentation in chapter [1.7.2.  The First Solution|],
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
> 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.

View raw message