Re: [Wicket-user] Serveur pushing implementation
Johan Compagner a écrit : first what is so special about that code? The second implementation uses cometd which is a dojo fundation project fully integrated in jetty 6 and using Bayeux protocol (based on json to make server/clients communications). What is the protocol you are talking about I haven't really looked at it yet at this time but i will. It is Bayeux as I said. which run in a différent servlet as the wicket one (or filter) on server side and an hidden iframe on the client side receives events trigerring javascript function. The communication between servlet and iframe is done via JSON. How i see it if possible is just an open channel and over it flows the wicket ajax stuff (so the xml that wicket ajax can parse) I think it is possible but need much more work that could be interresting. But with différents implementation for each server : tomcat != jetty != blueFish etc... So it needs a différent implmentation for each server : jettyCometServlet, tomcatJettyServlet, etc... and hopefully using the same client-side api. this way if something is triggered on the server the server can push component rerender changes to the clients who are displaying those components. If we writte ourself the *CometServlet we can image to write a client side wicket-comet.js allowing to wrap *CometServlet response in existing wicket-ajax. I think it could be fine ;) -- Vincent johan On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Johan Compagner a écrit : yes i want to have it simple and build in in wicket-ajax.js if possible (at least support for it it could be and extra small js: wicket-cometd.js) well, I understand what you mean, but comted ( www.cometd.com http://www.cometd.com) is a dojo fundation subproject. So if we want to write our own client-side library. first we have to duplicate Dojo cometd code( http://archive.dojotoolkit.org/nightly/src/io/cometd.js ) which can be done with some difficulties because it depends on a lot of other dojo libs. But the worst problem comes form the protocol. It is a dojo fundation subproject so if protocol change we need to maintain our cometd client-side implementation. It seems to be an heavy work to do! On the other hand I well understand you prefer keeping control of code you integrate in Wicket (and pushing is an interresting stuff for wicket). So maybe we need to thinking more about that and on impact on the future. WDYT? -- Vincent johan On 3/20/07, * Igor Vaynberg* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: this is a great start. my idea vision of this implementation is something that doesnt depend on dojo and something that has a very similar requesttarget to ajaxrequesttarget that can transfer value pairs _or_ markup. but this is definetely a great start. -igor On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668) * The second one using cometd( www.cometd.org http://www.cometd.org http://www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new
[Wicket-user] Serveur pushing implementation
Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668) * The second one using cometd(www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
is the second one really push? or push by polling? I am currently checking out the NIO support of tomcat 6. I hope in the coming weeks to have an impl that is really push (so there is really a nio socket connection from server to client all the time) johan On 3/20/07, Vincent Demay [EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 ) * The second one using cometd(www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
Korbinian Bachl a écrit : Hi, i find it great that you put it to wicket-stuff! However im sorry that i havent understood what this is good for - can you please give me some usage example? I mean what is the usecase of a bus-simulation? Regards, Korbinian Hi I will try to found out simple examples : Imagine you make a instant messanging application with wicket. When somebody will connect to the application, you want to be notified in client side. Pushing can send an event to the client side to update the list of connecting people. Another exemple. In a shared crud application if you (person1) are working on an item (client side), you want to be notified if somebody else (person2) has modified the same item as you. So when person2 save his item, person1 will be notified that the item has changed and can propose a merge between what person1 is doing and what person2 has saved Hope what I said help you to understand ;) -- Vincent Demay http://www.demay-fr.net/blog -Ursprüngliche Nachricht- Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Vincent Demay Gesendet: Dienstag, 20. März 2007 10:13 An: wicket-user@lists.sourceforge.net Betreff: [Wicket-user] Serveur pushing implementation Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28ak a-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicke t--tf3354017.html#a9327668) * The second one using cometd(www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/ branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/ branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog -- --- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforge CID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
tomcat uses this: http://tomcat.apache.org/tomcat-6.0-doc/aio.html so for tomcat to work i need to create a special filter (or servlet) that maps a push connection How does jetty work? When does jetty know that this is a nio/cometd connection? johan On 3/20/07, Vincent Demay [EMAIL PROTECTED] wrote: Johan Compagner a écrit : is the second one really push? or push by polling? The first one is pushing simulated by polling ;) (and timer) The second one is real pushing with cometd (using jetty6 continuation : no locked thread on serveur side and keep open http connection). I am currently checking out the NIO support of tomcat 6. I've never test with tomcat for the moment, but I saw some articles about that... need to check -- Vincent Demay http://www.demay-fr.net/blog I hope in the coming weeks to have an impl that is really push (so there is really a nio socket connection from server to client all the time) johan On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 ) * The second one using cometd(www.cometd.org http://www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net
Re: [Wicket-user] Serveur pushing implementation
Johan Compagner a écrit : tomcat uses this: http://tomcat.apache.org/tomcat-6.0-doc/aio.html so for tomcat to work i need to create a special filter (or servlet) that maps a push connection How does jetty work? When does jetty know that this is a nio/cometd connection? It is exactly the same think in jetty, you have to define a servlet used by push connection : servlet servlet-namecometd/servlet-name servlet-classorg.mortbay.cometd.CometdServlet/servlet-class init-param param-nametimeout/param-name param-value15000/param-value /init-param init-param param-namemulti-timeout/param-name param-value1500/param-value /init-param init-param param-nameverbose/param-name param-valuefalse/param-value /init-param load-on-startup1/load-on-startup /servlet I just gave a quick look on http://tomcat.apache.org/tomcat-6.0-doc/aio.html but it seems to be the same way to do -- Vincent johan On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Johan Compagner a écrit : is the second one really push? or push by polling? The first one is pushing simulated by polling ;) (and timer) The second one is real pushing with cometd (using jetty6 continuation : no locked thread on serveur side and keep open http connection). I am currently checking out the NIO support of tomcat 6. I've never test with tomcat for the moment, but I saw some articles about that... need to check -- Vincent Demay http://www.demay-fr.net/blog I hope in the coming weeks to have an impl that is really push (so there is really a nio socket connection from server to client all the time) johan On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668) * The second one using cometd( www.cometd.org http://www.cometd.org http://www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples
Re: [Wicket-user] Serveur pushing implementation
WDYT?, Any comments, feelings? This looks like really exciting work. I can't wait to try it out. I took a look at the code and you've done a really nice job. One question, is it possible to push rendered components instead of pinging those components on the client side to call back? - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
Can't the Tomcat support be merged into the same project? Eelco On 3/20/07, Johan Compagner [EMAIL PROTECTED] wrote: tomcat uses this: http://tomcat.apache.org/tomcat-6.0-doc/aio.html so for tomcat to work i need to create a special filter (or servlet) that maps a push connection How does jetty work? When does jetty know that this is a nio/cometd connection? johan On 3/20/07, Vincent Demay [EMAIL PROTECTED] wrote: Johan Compagner a écrit : is the second one really push? or push by polling? The first one is pushing simulated by polling ;) (and timer) The second one is real pushing with cometd (using jetty6 continuation : no locked thread on serveur side and keep open http connection). I am currently checking out the NIO support of tomcat 6. I've never test with tomcat for the moment, but I saw some articles about that... need to check -- Vincent Demay http://www.demay-fr.net/blog I hope in the coming weeks to have an impl that is really push (so there is really a nio socket connection from server to client all the time) johan On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668) * The second one using cometd( www.cometd.org http://www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join
Re: [Wicket-user] Serveur pushing implementation
Eelco Hillenius a écrit : Can't the Tomcat support be merged into the same project? I need to check for that and check tomcat behavior is the same as jetty but I think it should -- Vincent Eelco On 3/20/07, Johan Compagner [EMAIL PROTECTED] wrote: tomcat uses this: http://tomcat.apache.org/tomcat-6.0-doc/aio.html so for tomcat to work i need to create a special filter (or servlet) that maps a push connection How does jetty work? When does jetty know that this is a nio/cometd connection? johan On 3/20/07, Vincent Demay [EMAIL PROTECTED] wrote: Johan Compagner a écrit : is the second one really push? or push by polling? The first one is pushing simulated by polling ;) (and timer) The second one is real pushing with cometd (using jetty6 continuation : no locked thread on serveur side and keep open http connection). I am currently checking out the NIO support of tomcat 6. I've never test with tomcat for the moment, but I saw some articles about that... need to check -- Vincent Demay http://www.demay-fr.net/blog I hope in the coming weeks to have an impl that is really push (so there is really a nio socket connection from server to client all the time) johan On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668) * The second one using cometd( www.cometd.org http://www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list
Re: [Wicket-user] Serveur pushing implementation
James McLaughlin a écrit : WDYT?, Any comments, feelings? This looks like really exciting work. I can't wait to try it out. I took a look at the code and you've done a really nice job. One question, is it possible to push rendered components instead of pinging those components on the client side to call back? The problem comes from cometd bus which is design to transport json and not xml. I was thinking of something which is able to serialize a component rendered as String and put all in a json object in order to avoid this second useless callback. but it need some additionnal work ;) -- Vincent - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
On 3/20/07, Vincent Demay [EMAIL PROTECTED] wrote: Eelco Hillenius a écrit : Can't the Tomcat support be merged into the same project? I need to check for that and check tomcat behavior is the same as jetty but I think it should Cool. My note was more directed to Johan actually :) But you two might take a look at what the common abstractions for such support would be. Eelco - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
This might be of some help and it might not. I use bi-directional json (but not cometd) in one of the portal apps I wrote (unfortunately not in Wicket). On the server side, I use json-lib http://json-lib.sourceforge.net/ and on the client side I use jsonStringify.js, http://www.thomasfrank.se/json_stringify_revisited.html and jQuery, http://jquery.com. The json-lib can actually jsonify a java object quite nicely, just watch out for extensive object graphs as they can bring the app to a screeching halt. Regards, -scott -Original Message- From: [EMAIL PROTECTED] [mailto:wicket-user- [EMAIL PROTECTED] On Behalf Of Vincent Demay Sent: Tuesday, March 20, 2007 11:54 AM To: wicket-user@lists.sourceforge.net Subject: Re: [Wicket-user] Serveur pushing implementation James McLaughlin a écrit : WDYT?, Any comments, feelings? This looks like really exciting work. I can't wait to try it out. I took a look at the code and you've done a really nice job. One question, is it possible to push rendered components instead of pinging those components on the client side to call back? The problem comes from cometd bus which is design to transport json and not xml. I was thinking of something which is able to serialize a component rendered as String and put all in a json object in order to avoid this second useless callback. but it need some additionnal work ;) -- Vincent - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
this is a great start. my idea vision of this implementation is something that doesnt depend on dojo and something that has a very similar requesttarget to ajaxrequesttarget that can transfer value pairs _or_ markup. but this is definetely a great start. -igor On 3/20/07, Vincent Demay [EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 ) * The second one using cometd(www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
The problem comes from cometd bus which is design to transport json and not xml. I was thinking of something which is able to serialize a component rendered as String and put all in a json object in order to avoid this second useless callback. but it need some additionnal work ;) -- Vincent I knew you had a good reason for it. Good stuff! I'm not sure if it is enough to just serialize a component as a string. Components are a mix of markup and javascript, and wicket-ajax has a lot of infrastructure for parsing this out and then rendering them in order. Pinging is the best solution for now. - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
yes i want to have it simple and build in in wicket-ajax.js if possible (at least support for it it could be and extra small js: wicket-cometd.js) johan On 3/20/07, Igor Vaynberg [EMAIL PROTECTED] wrote: this is a great start. my idea vision of this implementation is something that doesnt depend on dojo and something that has a very similar requesttarget to ajaxrequesttarget that can transfer value pairs _or_ markup. but this is definetely a great start. -igor On 3/20/07, Vincent Demay [EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 ) * The second one using cometd( www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Serveur pushing implementation
Johan Compagner a écrit : yes i want to have it simple and build in in wicket-ajax.js if possible (at least support for it it could be and extra small js: wicket-cometd.js) well, I understand what you mean, but comted (www.cometd.com) is a dojo fundation subproject. So if we want to write our own client-side library. first we have to duplicate Dojo cometd code( http://archive.dojotoolkit.org/nightly/src/io/cometd.js ) which can be done with some difficulties because it depends on a lot of other dojo libs. But the worst problem comes form the protocol. It is a dojo fundation subproject so if protocol change we need to maintain our cometd client-side implementation. It seems to be an heavy work to do! On the other hand I well understand you prefer keeping control of code you integrate in Wicket (and pushing is an interresting stuff for wicket). So maybe we need to thinking more about that and on impact on the future. WDYT? -- Vincent johan On 3/20/07, * Igor Vaynberg* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: this is a great start. my idea vision of this implementation is something that doesnt depend on dojo and something that has a very similar requesttarget to ajaxrequesttarget that can transfer value pairs _or_ markup. but this is definetely a great start. -igor On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668) * The second one using cometd( www.cometd.org http://www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash
Re: [Wicket-user] Serveur pushing implementation
first what is so special about that code? What is the protocol you are talking about I haven't really looked at it yet at this time but i will. How i see it if possible is just an open channel and over it flows the wicket ajax stuff (so the xml that wicket ajax can parse) this way if something is triggered on the server the server can push component rerender changes to the clients who are displaying those components. johan On 3/20/07, Vincent Demay [EMAIL PROTECTED] wrote: Johan Compagner a écrit : yes i want to have it simple and build in in wicket-ajax.js if possible (at least support for it it could be and extra small js: wicket-cometd.js) well, I understand what you mean, but comted (www.cometd.com) is a dojo fundation subproject. So if we want to write our own client-side library. first we have to duplicate Dojo cometd code( http://archive.dojotoolkit.org/nightly/src/io/cometd.js ) which can be done with some difficulties because it depends on a lot of other dojo libs. But the worst problem comes form the protocol. It is a dojo fundation subproject so if protocol change we need to maintain our cometd client-side implementation. It seems to be an heavy work to do! On the other hand I well understand you prefer keeping control of code you integrate in Wicket (and pushing is an interresting stuff for wicket). So maybe we need to thinking more about that and on impact on the future. WDYT? -- Vincent johan On 3/20/07, * Igor Vaynberg* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: this is a great start. my idea vision of this implementation is something that doesnt depend on dojo and something that has a very similar requesttarget to ajaxrequesttarget that can transfer value pairs _or_ markup. but this is definetely a great start. -igor On 3/20/07, *Vincent Demay* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Hi all, I made a new project in wicket-stuff(sourceforge) called wicket-contrib-push. This project allows pushing of events on server side in a simulated bus between server and all client. This pushing has 2 implementations : * The first based on Xavier Hanin work which is based on timerBehavior and simulates a bus with an EventStore (see http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 http://www.nabble.com/server-side-triggered-page-refresh-%28aka-push%29-tf3321420.html#a9234009 and http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 http://www.nabble.com/Pushing-data-to-the-Ajax-client-in-wicket--tf3354017.html#a9327668 ) * The second one using cometd( www.cometd.org http://www.cometd.org) and dependant of wicket-contrib-dojo The way to publish and listen to events is the following (with cometd and timer implementation): //Somewhere I publish a new event. It can be for example in on click of a ajax link or elsewhere : IPushPublisher publisher = new IPushPublisher(aBusChannel); IPushEvent event = new IPushEvent() event.add(akey, myvalue); publisher.publish(event); //My page can be aware of event in aBusChannel : IPushBehavior behavior = new IPushBehavior(aBusChannel){ public abstract void onEvent(String channel, MapString, String datas, IPushTarget target){ //Triggered when event is publish by publisher //IPushTarget has the sapme prototype as AjaxRequestTarget } } WDYT?, Any comments, feelings? PS : sources are available on svn : https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/branches/wicket-1.3/wicket-contrib-push-examples -- Vincent Demay http://www.demay-fr.net/blog - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net