You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Charles Moulliard (JIRA)" <ji...@apache.org> on 2008/10/13 14:54:52 UTC

[jira] Created: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
-----------------------------------------------------------------------------------------------------------------------------------------

                 Key: CAMEL-982
                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
             Project: Apache Camel
          Issue Type: New Feature
    Affects Versions: 2.0.0
            Reporter: Charles Moulliard


Hi,

May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)

When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.

Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.

My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.

e.g.

At the camel side, the idea is to use the routing as usual :

from(jms:queue)
to(comet:event)

When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint


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


[jira] Resolved: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Posted by "Hadrian Zbarcea (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hadrian Zbarcea resolved CAMEL-982.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.0

Patch applied with many thanks to David.  Documentation updated.

> Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-982
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
>             Project: Apache Camel
>          Issue Type: New Feature
>    Affects Versions: 2.0.0
>            Reporter: Charles Moulliard
>            Assignee: Hadrian Zbarcea
>             Fix For: 2.0.0
>
>         Attachments: camel-cometd.patch, camel-cometd.patch
>
>
> Hi,
> May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)
> When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.
> Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.
> My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.
> e.g.
> At the camel side, the idea is to use the routing as usual :
> from(jms:queue)
> to(comet:event)
> When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint

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


[jira] Reopened: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Posted by "David Greco (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Greco reopened CAMEL-982:
-------------------------------


Sorry Hadrian,
in the provided patch I forgot to add a folder under src/test/resources needed for running the interactive test as explained in the readme file. I'll post the new patch.

> Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-982
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
>             Project: Apache Camel
>          Issue Type: New Feature
>    Affects Versions: 2.0.0
>            Reporter: Charles Moulliard
>            Assignee: Hadrian Zbarcea
>             Fix For: 2.0.0
>
>         Attachments: camel-cometd.patch, camel-cometd.patch
>
>
> Hi,
> May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)
> When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.
> Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.
> My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.
> e.g.
> At the camel side, the idea is to use the routing as usual :
> from(jms:queue)
> to(comet:event)
> When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint

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


[jira] Updated: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Posted by "David Greco (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Greco updated CAMEL-982:
------------------------------

    Attachment: camel-cometd.patch

I added a camel-cometd component that provides both a consumer and provider for exchanging events using the cometd/bayeux protcol.
The patch has been attached. I'm going to document the component's usage the camel wiki very soon.
For the moment this component allows only sending and receiving strings. The bayeux protocol is based on JSON, so it should be possible to send more structured data.
In the next version, I'll put the capability to manage more structured events. The SSL support has not yet tested even if it has been implemented, this is something to do for the next release.
Regards,
David

> Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-982
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
>             Project: Apache Camel
>          Issue Type: New Feature
>    Affects Versions: 2.0.0
>            Reporter: Charles Moulliard
>         Attachments: camel-cometd.patch
>
>
> Hi,
> May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)
> When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.
> Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.
> My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.
> e.g.
> At the camel side, the idea is to use the routing as usual :
> from(jms:queue)
> to(comet:event)
> When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint

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


[jira] Commented: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Posted by "Hadrian Zbarcea (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=47788#action_47788 ] 

Hadrian Zbarcea commented on CAMEL-982:
---------------------------------------

David sent me this link: http://cometdaily.com/2008/01/07/20000-reasons-that-comet-scales/

Good to know for those interested in using camel-cometd.


> Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-982
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
>             Project: Apache Camel
>          Issue Type: New Feature
>    Affects Versions: 2.0.0
>            Reporter: Charles Moulliard
>         Attachments: camel-cometd.patch
>
>
> Hi,
> May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)
> When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.
> Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.
> My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.
> e.g.
> At the camel side, the idea is to use the routing as usual :
> from(jms:queue)
> to(comet:event)
> When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint

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


[jira] Updated: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Posted by "David Greco (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Greco updated CAMEL-982:
------------------------------

    Attachment: camel-cometd.patch.txt

New patch with the missing directory

> Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-982
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
>             Project: Apache Camel
>          Issue Type: New Feature
>    Affects Versions: 2.0.0
>            Reporter: Charles Moulliard
>            Assignee: Hadrian Zbarcea
>             Fix For: 2.0.0
>
>         Attachments: camel-cometd.patch, camel-cometd.patch, camel-cometd.patch.txt
>
>
> Hi,
> May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)
> When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.
> Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.
> My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.
> e.g.
> At the camel side, the idea is to use the routing as usual :
> from(jms:queue)
> to(comet:event)
> When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint

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


[jira] Assigned: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Posted by "Hadrian Zbarcea (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hadrian Zbarcea reassigned CAMEL-982:
-------------------------------------

    Assignee: Hadrian Zbarcea

> Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-982
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
>             Project: Apache Camel
>          Issue Type: New Feature
>    Affects Versions: 2.0.0
>            Reporter: Charles Moulliard
>            Assignee: Hadrian Zbarcea
>         Attachments: camel-cometd.patch
>
>
> Hi,
> May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)
> When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.
> Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.
> My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.
> e.g.
> At the camel side, the idea is to use the routing as usual :
> from(jms:queue)
> to(comet:event)
> When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint

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


[jira] Resolved: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Posted by "Hadrian Zbarcea (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hadrian Zbarcea resolved CAMEL-982.
-----------------------------------

    Resolution: Fixed

The webapp directory was in the original patch.  Not adding it was my mistake.
localhost.ks was missing though and I added it, the ssl test was failing without it.

Thanks for pointing it out.  It's fixed now.

> Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-982
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
>             Project: Apache Camel
>          Issue Type: New Feature
>    Affects Versions: 2.0.0
>            Reporter: Charles Moulliard
>            Assignee: Hadrian Zbarcea
>             Fix For: 2.0.0
>
>         Attachments: camel-cometd.patch, camel-cometd.patch, camel-cometd.patch.txt
>
>
> Hi,
> May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)
> When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.
> Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.
> My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.
> e.g.
> At the camel side, the idea is to use the routing as usual :
> from(jms:queue)
> to(comet:event)
> When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint

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


[jira] Updated: (CAMEL-982) Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)

Posted by "David Greco (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Greco updated CAMEL-982:
------------------------------

    Attachment: camel-cometd.patch

New version with an SSL test

> Add a new component to work with NIO frameworks & Bayeux protocol as defined by the comed project (http://cometdproject.dojotoolkit.org/)
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-982
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-982
>             Project: Apache Camel
>          Issue Type: New Feature
>    Affects Versions: 2.0.0
>            Reporter: Charles Moulliard
>            Assignee: Hadrian Zbarcea
>         Attachments: camel-cometd.patch, camel-cometd.patch
>
>
> Hi,
> May I suggest to create a new component that will allow Camel to communicate with NIO framework(s)/Bayeux protocol like cometd/grizzly, ... (more information about what you can do with such framework can be found here : http://cometdproject.dojotoolkit.org/, http://www.tutorialized.com/view/tutorial/Create-event-driven-Web-apps-using-Continuous-and-Reverse-Ajax/27495, http://www.ibm.com/developerworks/web/library/j-jettydwr/)
> When you design a reverse ajax application where you want to use the 'push' technology at the serverside, you need to use a servlet modified using java New I/O API (see wiki : http://en.wikipedia.org/wiki/Comet_(programming) for detailed info). Such modified servlet already exist in Tomcat/Jetty/Glassfish/Grizzly servers because they have implemented the comet framework.
> Next, in order for a client to be notified (through push technology) that something happens at the server side, an event listener must be created and link to the comet API. Every time that an action occurs, the event will send back the information to the browser. Such technology already works today in DWR package (Direct Web Remoting), Google/Gears, Flex/BlazeDS and the famous DojoToolkit.
> My proposition is to integrate Camel with Cometd/Bayeux protocol in such a way that we can work with event published. A event available through bayeux protocol could be exposed as an endpoint to allow to use it through the routing.
> e.g.
> At the camel side, the idea is to use the routing as usual :
> from(jms:queue)
> to(comet:event)
> When a message arrives in the queue, we send it to the cometd:event or bayeux:event endpoint

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