That did it. Sorry to keep hitting this nail but, I stumbled across another
one. As described above, the push targets will "prepend" a block on every
update. Inside this bock, I have eventLinks that are rendered correctly
after I put in the configuration. These eventLinks are supposed to be ajax.
The eventLink rendered with the last block correctly calls the page via
ajax, however all other eventLinks in blocks already displayed no longer
make ajax calls. It looks as if they get deregistered somehow from the
Tapestry "onClick" handler that makes ajax calls.

Thanks.


On Mon, Jun 16, 2014 at 3:40 AM, Lance Java <lance.j...@googlemail.com>
wrote:

> See the "configuration" section here
> https://github.com/uklance/tapestry-offline
> On 16 Jun 2014 05:44, "Bogdan Ivascu" <ivascu.bogdan...@gmail.com> wrote:
>
> > Makes sense, thanks for the reply.
> >
> > Another thing that is odd. I seem to have trouble while rendering
> > eventLinks inside a block that is a delagate of a pushTarget.
> >
> > in tml:
> > <atmos:pushTarget ...>
> >     <t:delegate to="tokenPlayHistoryBlock"/>
> > </atmos:pushTarget>
> >
> > <t:block t:id="tokenPlayedByUser">
> >     a bunch of html markup
> > </t:block>
> >
> > in the java class
> > public Block getTokenPlayHistoryBlock(){
> >    switch based on conditions
> >   retun blockXXX;
> > }
> >
> > Above works great until I try to add an eventLink in block:
> >
> > <t:block t:id="tokenPlayedByUser">
> >        a bunch of html markup
> >     <a t:id="sentTokenPreviewLink">THIS BREAKS IT</a>
> > </t:block>
> >
> > Error:
> > 2014-Jun-16 00:29:09 ioc.internal.RecursiveServiceCreationCheckWrapper
> > org.apache.tapestry5.ioc.internal.OperationException: *Symbol
> > 'tapestry-offline.serverName' is not defined.*
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:45)
> >     at $MasterObjectProvider_23570e7547da.provide(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:871)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
> >     at $OfflineRequestGlobals_23570e7549e2.delegate(Unknown Source)
> >     at $OfflineRequestGlobals_23570e7549e2.getContextPath(Unknown Source)
> >     at
> >
> >
> org.lazan.t5.offline.internal.OfflineRequest.getContextPath(OfflineRequest.java:28)
> >     at $Request_23570e75482d.getContextPath(Unknown Source)
> >     at $Request_23570e7547ee.getContextPath(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.createComponentEventLink(ComponentEventLinkEncoderImpl.java:161)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.linktransform.LinkTransformerInterceptor.createComponentEventLink(LinkTransformerInterceptor.java:44)
> >     at
> > $ComponentEventLinkEncoder_23570e754816.createComponentEventLink(Unknown
> > Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.LinkSourceImpl.createComponentEventLink(LinkSourceImpl.java:89)
> >     at $LinkSource_23570e754873.createComponentEventLink(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.createComponentEventLink(ComponentPageElementResourcesImpl.java:105)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.createEventLink(ComponentPageElementImpl.java:1251)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.createEventLink(InternalComponentResourcesImpl.java:206)
> >     at
> >
> >
> org.apache.tapestry5.corelib.components.EventLink.createLink(EventLink.java:58)
> >     at
> >
> >
> org.apache.tapestry5.corelib.base.AbstractComponentEventLink.beginRender(AbstractComponentEventLink.java:57)
> >     at
> >
> >
> org.apache.tapestry5.corelib.base.AbstractComponentEventLink.beginRender(AbstractComponentEventLink.java)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.invokeComponent(ComponentPageElementImpl.java:202)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:133)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.render(ComponentPageElementImpl.java:209)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.PageRenderQueueImpl$1.renderMarkup(PageRenderQueueImpl.java:142)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.RenderCommandComponentEventResultProcessor.renderMarkup(RenderCommandComponentEventResultProcessor.java:78)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.PageRenderQueueImpl.renderPartial(PageRenderQueueImpl.java:159)
> >     at $PageRenderQueue_23570e7548b7.renderPartial(Unknown Source)
> >     at $PageRenderQueue_23570e7548b6.renderPartial(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.PartialMarkupRendererTerminator.renderMarkup(PartialMarkupRendererTerminator.java:45)
> >     at
> >
> >
> org.apache.tapestry5.services.TapestryModule$37.renderMarkup(TapestryModule.java:2141)
> >     at $PartialMarkupRenderer_23570e7549a3.renderMarkup(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.services.TapestryModule$36.renderMarkup(TapestryModule.java:2125)
> >     at $PartialMarkupRenderer_23570e7549a3.renderMarkup(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.services.TapestryModule$35.renderMarkup(TapestryModule.java:2107)
> >     at $PartialMarkupRenderer_23570e7549a3.renderMarkup(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.services.TapestryModule$34.renderMarkup(TapestryModule.java:2091)
> >     at $PartialMarkupRenderer_23570e7549a3.renderMarkup(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.services.TapestryModule$33.renderMarkup(TapestryModule.java:2073)
> >     at $PartialMarkupRenderer_23570e7549a3.renderMarkup(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.services.TapestryModule$32.renderMarkup(TapestryModule.java:2048)
> >     at $PartialMarkupRenderer_23570e7549a3.renderMarkup(Unknown Source)
> >     at $PartialMarkupRenderer_23570e7549a2.renderMarkup(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl.renderPartialPageMarkup(AjaxPartialResponseRendererImpl.java:89)
> >     at
> > $AjaxPartialResponseRenderer_23570e7549a0.renderPartialPageMarkup(Unknown
> > Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.RenderCommandComponentEventResultProcessor.processResultValue(RenderCommandComponentEventResultProcessor.java:58)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.RenderCommandComponentEventResultProcessor.processResultValue(RenderCommandComponentEventResultProcessor.java:34)
> >     at
> > $ComponentEventResultProcessor_23570e7549e4.processResultValue(Unknown
> > Source)
> >     at
> > $ComponentEventResultProcessor_23570e75499f.processResultValue(Unknown
> > Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler$1.processResultValue(AjaxComponentEventRequestHandler.java:80)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:47)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$6.handleResult(ComponentPageElementImpl.java:1084)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:89)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:86)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:84)
> >     at
> >
> >
> com.ar.pages.member.playground.PlaygroundApplication.dispatchComponentEvent(PlaygroundApplication.java)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:927)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1112)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:61)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1057)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1054)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
> >     at
> >
> >
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1053)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:110)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
> >     at $ComponentEventRequestHandler_23570e7549a1.handle(Unknown Source)
> >     at $ComponentEventRequestHandler_23570e754924.handle(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
> >     at $ComponentEventRequestHandler_23570e754926.handle(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
> >     at $ComponentEventRequestHandler_23570e754926.handle(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.services.TapestryModule$41.handle(TapestryModule.java:2476)
> >     at $ComponentEventRequestHandler_23570e754926.handle(Unknown Source)
> >     at $ComponentEventRequestHandler_23570e75484c.handle(Unknown Source)
> >     at
> >
> >
> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
> >     at
> >
> >
> org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
> >     at $ComponentRequestHandler_23570e75484e.handleComponentEvent(Unknown
> > Source)
> >     at
> >
> >
> com.ar.model.security.AdminProtectionFilter.handleComponentEvent(AdminProtectionFilter.java:42)
> >     at $ComponentRequestFilter_23570e75484a.handleComponentEvent(Unknown
> > Source)
> >     at $ComponentRequestHandler_23570e75484e.handleComponentEvent(Unknown
> > Source)
> >     at
> >
> >
> com.ar.model.security.PageProtectionFilter.handleComponentEvent(PageProtectionFilter.java:42)
> >     at $ComponentRequestFilter_23570e754849.handleComponentEvent(Unknown
> > Source)
> >     at $ComponentRequestHandler_23570e75484e.handleComponentEvent(Unknown
> > Source)
> >     at
> >
> >
> org.lazan.t5.atmosphere.services.internal.PageGlobalsComponentRequestFilter.handleComponentEvent(PageGlobalsComponentRequestFilter.java:22)
> >     at $ComponentRequestHandler_23570e75484e.handleComponentEvent(Unknown
> > Source)
> >     at $ComponentRequestHandler_23570e754814.handleComponentEvent(Unknown
> > Source)
> >     at
> >
> >
> org.lazan.t5.offline.services.internal.OfflineComponentRendererImpl$1.invoke(OfflineComponentRendererImpl.java:112)
> >     at
> >
> >
> org.lazan.t5.offline.services.internal.OfflineComponentRendererImpl$1.invoke(OfflineComponentRendererImpl.java:100)
> >     at
> >
> >
> org.apache.tapestry5.ioc.internal.services.ParallelExecutorImpl$1.call(ParallelExecutorImpl.java:58)
> >     at java.util.concurrent.FutureTask.run(Unknown Source)
> >     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> >     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> >     at java.lang.Thread.run(Unknown Source)
> >
> >  What is it with this "Symbol 'tapestry-offline.serverName'"? Not event
> > sure it is related to the atmosphere library, but seems to work in all
> > other places, except when I put it into a pushTarget. I event tried to
> > create the link in a separate method and return the URL. Same thing, as
> > soon as I go componenResources.createEventLink, the error pops up.
> >
> > Thanks very much,
> > Bogdan.
> >
> >
> >
> > On Sun, Jun 15, 2014 at 3:30 PM, Lance Java <lance.j...@googlemail.com>
> > wrote:
> >
> > > The disconnect event is fired by atmosphere under the hood
> > > (AtmosphereResourceEventListener.onDisconnect). Further reading here:
> > >
> > > https://github.com/Atmosphere/atmosphere/wiki/onDisconnect-tricks
> > >
> > >
> > >
> >
> http://atmosphere.github.io/atmosphere/apidocs/org/atmosphere/cpr/AtmosphereResourceEventListener.html
> > >
> > > If you'll notice in the chat demo, I use a HttpSessionListener to
> cleanup
> > > any chat users that might not have disconnected
> > >
> > >
> > >
> >
> https://github.com/uklance/tapestry-atmosphere/blob/master/tapestry-atmosphere-demo/src/main/webapp/WEB-INF/web.xml
> > >
> > >
> > >
> >
> https://github.com/uklance/tapestry-atmosphere/blob/master/tapestry-atmosphere-demo/src/main/java/org/lazan/t5/atmosphere/demo/services/ChatHttpSessionListener.java
> > >  On 15 Jun 2014 02:41, "Bogdan Ivascu" <ivascu.bogdan...@gmail.com>
> > wrote:
> > >
> > > > Sorry, not that I read it, I should have been more specific. I do see
> > the
> > > > contribution of the ChatTopicListener in AppModule and the
> "onConnect"
> > > > method gets called as expected when any push target creates a new
> > > > AtmosphereResource. The one that I don't see called is the
> > "onDisconnect"
> > > > method.
> > > >
> > > >
> > > > On Sat, Jun 14, 2014 at 8:42 PM, Bogdan Ivascu <
> > > ivascu.bogdan...@gmail.com
> > > > >
> > > > wrote:
> > > >
> > > > > Hi Lance,
> > > > >   What is the way to listen for someone connecting and
> disconnecting
> > > from
> > > > > a topic? I see that you have "TopicListenerImpl" and
> > > > > "ChatTopicListenerImpl" having methods that listen for this type of
> > > > thing.
> > > > > I don't see how they are used though.
> > > > >
> > > > > Thanks,
> > > > > Bogdan.
> > > > >
> > > > >
> > > > > On Wed, May 21, 2014 at 3:33 AM, Lance Java <
> > lance.j...@googlemail.com
> > > >
> > > > > wrote:
> > > > >
> > > > >> I've implemented this feature in tapestry-cometd but it's not been
> > > > >> implemented in tapestry-atmosphere yet. I think it's only a couple
> > of
> > > > >> lines
> > > > >> of javascript.
> > > > >>
> > > > >> I have just updated the outstanding issue with a possible solution
> > > here:
> > > > >> https://github.com/uklance/tapestry-atmosphere/issues/5
> > > > >>
> > > > >> Pull requests welcomed!!
> > > > >> On 21 May 2014 04:21, "Bogdan Ivascu" <ivascu.bogdan...@gmail.com
> >
> > > > wrote:
> > > > >>
> > > > >> > I ended up using your atmosphere implementation and it works
> like
> > a
> > > > >> charm,
> > > > >> > so many thanks for that. I have an additional questions though.
> > When
> > > > >> > returning the block to the client, basically your ChatDemo class
> > > > >> > (
> > > > >> >
> > > > >> >
> > > > >>
> > > >
> > >
> >
> https://github.com/uklance/tapestry-atmosphere/blob/master/tapestry-atmosphere-demo/src/main/java/org/lazan/t5/atmosphere/demo/pages/ChatDemo.java#L65
> > > > >> > )
> > > > >> > ->onChatMessage  method, I want to be able to execute some
> client
> > > > >> > javascript
> > > > >> > that will parse a Long number and make it into a date using
> > > momentjs.
> > > > >> Where
> > > > >> > can I patch in this piece of code? I tried changing the return
> > type
> > > of
> > > > >> the
> > > > >> > method to void and using AjaxRespRenderer to display the block
> and
> > > > then
> > > > >> > call the javascript without much success. What would be a good
> > > > solution
> > > > >> > here, listen on the client side for some event to be triggered
> or
> > > > >> somehow
> > > > >> > make an ajax addScript() call from the server.
> > > > >> >
> > > > >> > Thanks,
> > > > >> > Bogdan.
> > > > >> >
> > > > >> >
> > > > >> > On Tue, May 13, 2014 at 12:15 PM, Bogdan Ivascu
> > > > >> > <ivascu.bogdan...@gmail.com>wrote:
> > > > >> >
> > > > >> > > Hi Lance,
> > > > >> > >   I did see numerous discussions around your implementation.
> My
> > > goal
> > > > >> here
> > > > >> > > is to try and get a better understanding of where and how this
> > > > >> framework
> > > > >> > > can be extended. I am however pressed for time and if I cannot
> > get
> > > > it
> > > > >> to
> > > > >> > > work, I will most likely end up using your implementation.
> > > > >> > >
> > > > >> > > Thanks,
> > > > >> > > Bogdan.
> > > > >> > >
> > > > >> > >
> > > > >> > > On Tue, May 13, 2014 at 3:34 AM, Lance Java <
> > > > >> lance.j...@googlemail.com
> > > > >> > >wrote:
> > > > >> > >
> > > > >> > >> Take a look at tapestry-atmosphere [1] and tapestry-cometd
> [2]
> > > > >> > >>
> > > > >> > >> [1] https://github.com/uklance/tapestry-atmosphere
> > > > >> > >> [2] https://github.com/uklance/tapestry-cometd
> > > > >> > >> On 13 May 2014 02:10, "Bogdan Ivascu" <
> > > ivascu.bogdan...@gmail.com>
> > > > >> > wrote:
> > > > >> > >>
> > > > >> > >> > Hi everyone,
> > > > >> > >> >   I want to add webSocket support for my tapestry project
> and
> > > > need
> > > > >> a
> > > > >> > few
> > > > >> > >> > pointers. What I have is a dead simple Servlet,
> implementing
> > > the
> > > > >> java
> > > > >> > >> > WebSocket api. I would like to bring this servlet into my
> > > > tapestry
> > > > >> > >> project
> > > > >> > >> > and have it managed by tapestry itself. To be more clear, I
> > > don't
> > > > >> want
> > > > >> > >> to
> > > > >> > >> > use the ignore path functionality to expose it, but rather
> > have
> > > > >> > >> tapestry's
> > > > >> > >> > filter control the access to this servlet.
> > > > >> > >> >
> > > > >> > >> > The biggest problem that I have right now is that I don't
> > have
> > > a
> > > > >> clear
> > > > >> > >> > understanding of what I need to do to make this happen.
> Will
> > > this
> > > > >> > >> servlet
> > > > >> > >> > be a service or a page with no tml, where would it sit, how
> > do
> > > I
> > > > >> > >> configure
> > > > >> > >> > tapestry so that it knows to create a new instance for each
> > > > >> request.
> > > > >> > >> >
> > > > >> > >> > A nudge of where I could document myself regarding this
> type
> > of
> > > > >> > >> integration
> > > > >> > >> > would be most welcome.
> > > > >> > >> >
> > > > >> > >> > Thank you,
> > > > >> > >> > Bogdan.
> > > > >> > >> >
> > > > >> > >>
> > > > >> > >
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to