Hi Claus,

I completely agree on your proposition as we reuse pieces of code between
the different (same) camel components (jetty, websocket but also cometd) as
they increase "maintenance" costs.

Point 1) --> +1 to merge camel-jetty, camel-websocket and camel-cometd

The most important thing will be to reuse code of websocket as it supports
to register in a camel context a Jetty Application Server but with
different servlets (acting as producer or consumer or producer/consumer).
This is not the case for camel-cometd and camel-jetty

I would like also to propose that we include camel-cometd component as it
uses also jetty but for cometd bayeux protocol. Moreover, it provide
additional feature like CORS which is really important for
websocket/cometd. This is why I have created a ticket to also support CORS
in websocket (https://issues.apache.org/jira/browse/CAMEL-5354).

Agreement should be find between different components to adopt the same
Jetty version (7.5.4 or 8.1.3 for websocket support)

Point 2) --> +1 : jetty:protocol where protocol = ws, wss, cometd, cometds,
http, https
Point 3) --> +1 : As we plan to develop in a near future camel-atmosphere,
camel-vertx, camel-nodejs components to support different IO architecture

Regards,

Charles Moulliard

Apache Committer

Blog : http://cmoulliard.blogspot.com
Twitter : http://twitter.com/cmoulliard
Linkedin : http://www.linkedin.com/in/charlesmoulliard
Skype: cmoulliard


On Mon, Jun 11, 2012 at 11:38 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> In Camel 2.10 we introduce a new component: camel-websocket.
> Its currently based on Jetty, and thus requires jetty to be used.
>
> In recent time the component was enhanced to support SSL with websocket as
> well. That change brings in a lot of code that was
> copied directly from the existing camel-jetty component.
>
> So I wonder if we should consider
>
> 1)
> Merge the code from camel-websocket into camel-jetty, as its all Jetty
> based.
> This avoid duplicated code,
> This allows to share port numbers with http services and websocket.
> Currently that is not possible as its 2 different components.
>
> 2)
> Change the component name from websocket, so its part of jetty, eg
>
> from("websocket:foo")
>    becomes
> from("jetty:ws:foo")
>
> The current jetty component supports
> - http
> - https
>
> So adding websocket is a matter of having
> - ws
> - wss
>
> 3)
> In the future there will be other websocket implementations/components in
> Camel. For example the Atmosphere framework seems to be a great framework
> for that. As well with future releases of the JEE spec may introduce
> websocket support from a spec point of view.
> So having camel-websocket that is tied to Jetty seems to tie the "generic"
> websocket name to a specific implementation (jetty).
>
>
>
> Any thoughts?
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: cib...@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
>

Reply via email to