You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Ashwin Karpe (JIRA)" <ji...@apache.org> on 2010/08/09 23:26:47 UTC

[jira] Updated: (CAMEL-2713) camel-netty: Add a registry based option for a custom ChannelPipelineFactory

     [ https://issues.apache.org/activemq/browse/CAMEL-2713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ashwin Karpe updated CAMEL-2713:
--------------------------------

    Attachment: CAMEL-2713-fix.diff
                camel-2713-netty.zip

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.

Cheers,

Ashwin...

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: https://issues.apache.org/activemq/browse/CAMEL-2713
>             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, camel-2713-netty.zip
>
>
> 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.