Unfortunately, the bug in tapestry-cometd means that context.getCount()
will always be 0. I will need to fix this bug.

This is executing your redirect logic in the push event which is then
failing.

I'll try to get you a fix over the weekend. I've detailed the bug fix quite
thoroughly in the issue.
On 23 Apr 2013 10:36, "Tom Nys" <runesmac...@hotmail.com> wrote:

> the activate is somthing like:
>
> Object onActivate(context)
> {
>    if(context.count()>0)
>        do somthing
>    else
>        redirect to other page
> }
>
> my onchat method is unchanged from your demo project.
>
>
> I'm now trying to add an eventlink to the list of users to make 1v1 chat
> possible by changing the topic.
>
> Try adding an eventlink in the loop of users in your demo project.
>
> <t:block id="chatUsersBlock">
>    <ul>
>        <t:loop source="chatUsers" value="currentUser">
>            <li><t:eventlink event="user" context="${currentUser}">${**
> currentUser}</eventlink></li>
>        </t:loop>
>    </ul>
> </t:block>
>
> and in java
>
> void onUser(String user){
>    system.out.println(user)
> }
>
> this also gives the encodeURL error. (is this the same error as what you
> said?)
>
> any other idea on how to do this?
>
> -----Oorspronkelijk bericht----- From: Lance Java
> Sent: Tuesday, April 23, 2013 10:24 AM
> To: Tapestry users
> Subject: Re: Live support solution
>
> Do you do any redirecting in your onActivate? (eg do you return another
> page under some conditions).
>
> Can you show me the (simplified) code that's firing for your push?
>
> I think I might have spotted a bug, tapestry-cometd will always pass
> EMPTY_EVENT_CONTEXT as the page activation context for push events. Perhaps
> this is causing your issue?
>
> https://github.com/uklance/**tapestry-cometd/blob/master/**
> src/main/java/org/lazan/t5/**cometd/services/internal/**
> PushManagerImpl.java#L60<https://github.com/uklance/tapestry-cometd/blob/master/src/main/java/org/lazan/t5/cometd/services/internal/PushManagerImpl.java#L60>
> On 23 Apr 2013 08:15, "Tom Nys" <runesmac...@hotmail.com> wrote:
>
>  I found that the problem accurs in the onActivate() function.
>>
>> Our pages give information between eachotter trought the
>> activationcontext.
>> Since it's a fake request it doesn't have this context, and or pages are
>> made that they redirect when the context is empty.
>> removing this check is not realy an option. I guess that putting the chat
>> in the sidebar is just impossible becous of this?
>>
>> -----Oorspronkelijk bericht----- From: Lance Java
>> Sent: Monday, April 22, 2013 6:14 PM
>> To: Tapestry users
>> Subject: Re: Live support solution
>>
>> Also, do you have a security framework that might be getting in the way?
>> Perhaps this framework is returning a login page Link because it can't
>> find
>> the session on the Fake request.
>> On 22 Apr 2013 16:56, "Lance Java" <lance.j...@googlemail.com> wrote:
>>
>>  I get the feeling that your push action is returning a Link (or a page or
>>
>>> something) when it should return a Block. I'm not sure why else tapestry
>>> would try and call response.encodeRedirectURL(...****)
>>>
>>> Take another look at the demo, there are two topics defined in
>>> ChatService:
>>>
>>> /chatservice/users - the java.util.Collection of users is broadcast on
>>> this topic whenever
>>> a user enters or leaves the chatroom
>>>
>>> /chatservice/chat - All chat messages are broadcast to this topic.
>>>
>>> Then there is a page with two PushTargets (one for each topic)
>>>
>>> https://github.com/uklance/****tapestry-cometd-demo/blob/**<https://github.com/uklance/**tapestry-cometd-demo/blob/**>
>>> master/src/main/resources/org/****lazan/t5/cometddemo/pages/****
>>> Chat.tml<https://github.com/**uklance/tapestry-cometd-demo/**
>>> blob/master/src/main/**resources/org/lazan/t5/**
>>> cometddemo/pages/Chat.tml<https://github.com/uklance/tapestry-cometd-demo/blob/master/src/main/resources/org/lazan/t5/cometddemo/pages/Chat.tml>
>>> >
>>>
>>> The main guts of the demo is in these two classes:
>>>
>>> https://github.com/uklance/****tapestry-cometd-demo/blob/**<https://github.com/uklance/**tapestry-cometd-demo/blob/**>
>>> master/src/main/java/org/****lazan/t5/cometddemo/services/****
>>> internal/ChatServiceImpl.java<**https://github.com/uklance/**
>>> tapestry-cometd-demo/blob/**master/src/main/java/org/**
>>> lazan/t5/cometddemo/services/**internal/ChatServiceImpl.java<https://github.com/uklance/tapestry-cometd-demo/blob/master/src/main/java/org/lazan/t5/cometddemo/services/internal/ChatServiceImpl.java>
>>> >
>>>
>>>
>>> https://github.com/uklance/****tapestry-cometd-demo/blob/**<https://github.com/uklance/**tapestry-cometd-demo/blob/**>
>>> master/src/main/java/org/****lazan/t5/cometddemo/services/***
>>> *internal/**
>>> ChatSubscriptionListener.java<**https://github.com/uklance/**
>>> tapestry-cometd-demo/blob/**master/src/main/java/org/**
>>> lazan/t5/cometddemo/services/**internal/**ChatSubscriptionListener.java<https://github.com/uklance/tapestry-cometd-demo/blob/master/src/main/java/org/lazan/t5/cometddemo/services/internal/ChatSubscriptionListener.java>
>>> >
>>>  On 22 Apr 2013 15:58, "Tom Nys" <runesmac...@hotmail.com> wrote:
>>>
>>>  Well i'm trying to put the chatmessages into a div thats in my sidebar
>>>
>>>> (admin side of my application).
>>>>
>>>> I have the error on all the pages that have an OnPassivate() method.
>>>>
>>>> I tryed the demo application but i didn't understand everything that's
>>>> happening so i'm tryng to start from scratch (looking at the wiki pages
>>>> you
>>>> posted)
>>>> I also think one of the problems is that we use an ssl connection (no
>>>> real proof here) and the chat also needs to be encrypted. i don't know
>>>> if
>>>> this chat is.
>>>>
>>>> What i need the application to eventually do:
>>>>
>>>> a client can log onto the site and open a chat with an admin.
>>>> the admin gets a notice and clicks on the name of that client to open
>>>> the
>>>> chat with him.
>>>> they start chatting and the admin eventually closes that chat. he can
>>>> then choos anothcer client that opened the chat.
>>>>
>>>> The side of the admin needs to be in the sidebar component wich appears
>>>> on every page of our application so he can go to the details of that
>>>> user
>>>> and don't lose the chat.
>>>>
>>>> The client side is just a page for the moment (so no specials there,
>>>> just
>>>> a simple chat reciever-sender like on your wiki).
>>>>
>>>> Greets
>>>> Runesmacher
>>>> -----Oorspronkelijk bericht----- From: Lance Java
>>>> Sent: Monday, April 22, 2013 4:17 PM
>>>> To: Tapestry users
>>>> Subject: Re: Live support solution
>>>>
>>>> Hi, sorry for the late response, I've  been on holiday. I'm the author
>>>> of
>>>> tapestry-cometd.
>>>>
>>>> Tapestry-cometd has to fool tapestry into thinking there is a "real"
>>>> request /response when a push is initiated. It does this via a
>>>> FakeHttpServletRequest (and Response). Note that not all methods are
>>>> implemented in the fake objects (eg encodeRedirectURL)
>>>>
>>>> It looks like your push action is trying to do a redirect. Can you tell
>>>> me
>>>> a bit more about what you're trying to do in your push?
>>>>
>>>> The main use case for tapestry-cometd is to render a template and return
>>>> a
>>>> Block which is used to append, prepend or replace the content in a
>>>> PushTarget.
>>>>
>>>> I have not done a release yet but if you take a look at trunk for
>>>> tapestry-cometd and tapestry-cometd-demo, you will see a much better
>>>> chat
>>>> example.
>>>>
>>>> Cheers,
>>>> Lance.
>>>> On 22 Apr 2013 09:13, "Tom Nys" <runesmac...@hotmail.com> wrote:
>>>>
>>>>  I've looked into tapestry-cometd again. hoping to find a solution.
>>>>
>>>>
>>>>> but i get the folowing error when trying to implement it in my sidebar
>>>>> component.
>>>>>
>>>>>    java.lang.********UnsupportedOperationException
>>>>>    encodeRedirectURL
>>>>>
>>>>>    Filter stack frames Stack trace
>>>>>            org.lazan.t5.cometd.services.********internal.**
>>>>> FakeHttpServletResponse.********encodeRedirectURL(**
>>>>> FakeHttpServletResponse.java:********109)
>>>>>            org.apache.tapestry5.internal.**
>>>>> ******services.ResponseImpl.**
>>>>> encodeRedirectURL(********ResponseImpl.java:67)
>>>>>            org.apache.tapestry5.internal.********services.LinkImpl.**
>>>>> toRedirectURI(LinkImpl.java:********138)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> AjaxLinkComponentEventResultPr********ocessor.****
>>>>> processResultValue(****
>>>>> AjaxLinkComponentEventResultPr********ocessor.java:41)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> AjaxLinkComponentEventResultPr********ocessor.****
>>>>> processResultValue(****
>>>>> AjaxLinkComponentEventResultPr********ocessor.java:27)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> AjaxPageNameComponentEventResu********ltProcessor.******
>>>>> processResultValue(**
>>>>> AjaxPageNameComponentEventResu********ltProcessor.java:55)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> AjaxPageNameComponentEventResu********ltProcessor.******
>>>>> processResultValue(**
>>>>> AjaxPageNameComponentEventResu********ltProcessor.java:29)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> AjaxComponentInstanceEventResu********ltProcessor.******
>>>>> processResultValue(**
>>>>> AjaxComponentInstanceEventResu********ltProcessor.java:56)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> AjaxComponentInstanceEventResu********ltProcessor.******
>>>>> processResultValue(**
>>>>> AjaxComponentInstanceEventResu********ltProcessor.java:30)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> AjaxComponentEventRequestHandl********er$1.processResultValue(****
>>>>> AjaxComponentEventRequestHandl********er.java:80)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> ComponentResultProcessorWrappe********r.handleResult(**
>>>>> ComponentResultProcessorWrappe********r.java:47)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementImpl$6.********handleResult(****
>>>>> ComponentPageElementImpl.java:
>>>>> **1084)
>>>>>            org.apache.tapestry5.internal.******
>>>>> **services.EventImpl$1.invoke(********
>>>>> EventImpl.java:89)
>>>>>            org.apache.tapestry5.internal.******
>>>>> **services.EventImpl$1.invoke(********
>>>>> EventImpl.java:86)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementResourcesI********mpl.invoke(**
>>>>> ComponentPageElementResourcesI********mpl.java:146)
>>>>>            org.apache.tapestry5.internal.********services.EventImpl.**
>>>>> storeResult(EventImpl.java:84)
>>>>>            be.mysite.pages.Dashboard.********dispatchComponentEvent(**
>>>>> Dashboard.java)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementImpl.********dispatchEvent(****
>>>>> ComponentPageElementImpl.java:*******
>>>>> *927)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementImpl.********processEventTriggering(**
>>>>> ComponentPageElementImpl.java:********1112)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementImpl.********access$3100(****
>>>>> ComponentPageElementImpl.java:********
>>>>> 61)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementImpl$5.********invoke(******
>>>>> ComponentPageElementImpl.java:
>>>>> ****
>>>>> 1057)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementImpl$5.********invoke(******
>>>>> ComponentPageElementImpl.java:
>>>>> ****
>>>>> 1054)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementResourcesI********mpl.invoke(**
>>>>> ComponentPageElementResourcesI********mpl.java:146)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> ComponentPageElementImpl.********triggerContextEvent(**
>>>>> ComponentPageElementImpl.java:********1053)
>>>>>            org.apache.tapestry5.internal.********structure.**
>>>>> InternalComponentResourcesImpl********.triggerContextEvent(**
>>>>> InternalComponentResourcesImpl********.java:302)
>>>>>            org.apache.tapestry5.internal.******
>>>>> **services.PageActivatorImpl.********
>>>>> activatePage(********PageActivatorImpl.java:34)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> AjaxComponentEventRequestHandl********er.handle(****
>>>>> AjaxComponentEventRequestHandl
>>>>> **er.java:89)
>>>>>            org.apache.tapestry5.internal.********services.ajax.**
>>>>> AjaxFormUpdateFilter.handle(********AjaxFormUpdateFilter.java:****56)
>>>>>            org.apache.tapestry5.internal.******
>>>>> **services.AjaxFilter.handle(********
>>>>> AjaxFilter.java:42)
>>>>>            org.apache.tapestry5.upload.********internal.services.**
>>>>> UploadExceptionFilter.handle(********UploadExceptionFilter.**
>>>>> java:****75)
>>>>>            org.apache.tapestry5.services.****
>>>>> ****TapestryModule$41.handle(******
>>>>> TapestryModule.java:2476)
>>>>>            org.apache.tapestry5.internal.********services.**
>>>>> ComponentRequestHandlerTermina********tor.**handleComponentEvent(****
>>>>> ComponentRequestHandlerTermina********tor.java:43)
>>>>>            org.apache.tapestry5.services.****
>>>>> ****InitializeActivePageName.******
>>>>> handleComponentEvent(********InitializeActivePageName.java:********39)
>>>>>            org.lazan.t5.cometd.services.********internal.**
>>>>> ComponentJSONRendererImpl$1.********invoke(******
>>>>> ComponentJSONRendererImpl.**
>>>>> java:83)
>>>>>            org.apache.tapestry5.ioc.********internal.services.**
>>>>> ParallelExecutorImpl$1.call(********ParallelExecutorImpl.java:****58)
>>>>>            java.util.concurrent.********FutureTask$Sync.innerRun(**
>>>>> FutureTask.java:334)
>>>>>            java.util.concurrent.********FutureTask.run(FutureTask.****
>>>>> java:166)
>>>>>            java.util.concurrent.********ThreadPoolExecutor.runWorker(*
>>>>> ****
>>>>> ***
>>>>> ThreadPoolExecutor.java:1145)
>>>>>            java.util.concurrent.********ThreadPoolExecutor$Worker.run(
>>>>> ****
>>>>> ****
>>>>> ThreadPoolExecutor.java:615)
>>>>>            java.lang.Thread.run(Thread.********java:722)
>>>>>
>>>>> Tapestry Framework
>>>>>
>>>>> Any ideas on how to fix this?
>>>>> I think it is becous of the onPassivate inside the page i want to embed
>>>>> it
>>>>> in.
>>>>>
>>>>> Greets
>>>>>
>>>>> -----Oorspronkelijk bericht----- From: Taha Siddiqi
>>>>> Sent: Thursday, April 4, 2013 4:37 PM
>>>>> To: Tapestry users
>>>>> Subject: Re: Live support solution
>>>>>
>>>>> I recently worked on a tapestry + cometd project. I didn't use the
>>>>> module.
>>>>> Just created a simple integration and then used standard cometd library
>>>>> documentation to create a full chat app. It was easy and I am more than
>>>>> satisfied with the result.
>>>>>
>>>>> For integration you can have a look at
>>>>>
>>>>> http://tawus.wordpress.com/********2011/06/13/tapestry-magic-**
>>>>> 15-******<http://tawus.wordpress.com/******2011/06/13/tapestry-magic-15-******>
>>>>> <http://tawus.**wordpress.com/****2011/06/13/**tapestry-magic-15-****<http://tawus.wordpress.com/****2011/06/13/tapestry-magic-15-****>
>>>>> >
>>>>> <http://tawus.wordpress.**com/****2011/06/13/tapestry-**magic-**15-**<
>>>>> http://tawus.wordpress.**com/**2011/06/13/tapestry-**magic-15-**<http://tawus.wordpress.com/**2011/06/13/tapestry-magic-15-**>
>>>>> >
>>>>> >
>>>>> integration-with-cometd/<http:******//tawus.wordpress.com/**
>>>>> 2011/**06/** <http://tawus.wordpress.com/2011/**06/**><http://tawus.**
>>>>> wordpress.com/2011/06/** <http://tawus.wordpress.com/2011/06/**>>
>>>>> 13/tapestry-magic-15-******integration-with-cometd/<http:****
>>>>> //tawus.wordpress.com/2011/06/****13/tapestry-magic-15-**<http://tawus.wordpress.com/2011/06/**13/tapestry-magic-15-**>
>>>>> integration-with-cometd/<http:**//tawus.wordpress.com/2011/06/**
>>>>> 13/tapestry-magic-15-**integration-with-cometd/<http://tawus.wordpress.com/2011/06/13/tapestry-magic-15-integration-with-cometd/>
>>>>> >
>>>>> >
>>>>> >
>>>>>
>>>>> regards
>>>>> Taha
>>>>>
>>>>> On Apr 4, 2013, at 6:08 PM, Tom Nys wrote:
>>>>>
>>>>>  First of all, i need 1 on 1 chat between a client and a person from my
>>>>>
>>>>>  helpdesk.
>>>>>
>>>>>>
>>>>>> A lot of our system works on session variables and giving info trough
>>>>>> via
>>>>>> the url.
>>>>>> I found out that when tapestry-cometD is working in my sidebar (a
>>>>>> component) it triggers the OnPassivate function of the page it is on.
>>>>>>
>>>>>> I've had an error on encodeUrl when trying to use eventlinks in the
>>>>>> sidebar. (fixed this by bypassing the encodeUrl function in the
>>>>>> fakehtmlrequest of cometD) but this isn't a nice solution since it
>>>>>> might
>>>>>> have broken some other stuff.
>>>>>>
>>>>>>
>>>>>> -----Oorspronkelijk bericht----- From: Thiago H de Paula Figueiredo
>>>>>> Sent: Thursday, April 4, 2013 2:17 PM
>>>>>> To: Tapestry users
>>>>>> Subject: Re: Live support solution
>>>>>>
>>>>>> On Thu, 04 Apr 2013 05:20:52 -0300, Tom Nys <runesmac...@hotmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>  Hi there,
>>>>>>
>>>>>>
>>>>>>
>>>>>>>  Hi!
>>>>>>>
>>>>>>
>>>>>>  I’m developing a website in tapestry and trying to implement live
>>>>>>
>>>>>>  support (1 on 1).
>>>>>>
>>>>>>>
>>>>>>> I tryed implementing tapestry-cometD but it doesn’t support some of
>>>>>>> the
>>>>>>> functions already implemented on my pages.
>>>>>>>
>>>>>>>
>>>>>>>  Your question is too vague for us to give a good answer. What
>>>>>>>
>>>>>> features
>>>>>> do
>>>>>> you need? Which one of them are not implemented by tapestry-cometd?
>>>>>>
>>>>>> --
>>>>>> Thiago H. de Paula Figueiredo
>>>>>>
>>>>>> ------------------------------********------------------------**
>>>>>> --**--**
>>>>>> --**---------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.******a**pache.org
>>>>>> <
>>>>>> http://apache.org**>
>>>>>> <users-unsubscribe@**tapestry.****apache.org<http://tapestry.**
>>>>>> apache.org <http://tapestry.apache.org>>
>>>>>> <users-unsubscribe@**tapestry.**apache.org<http://tapestry.apache.org>
>>>>>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org>
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>>
>>>>>>
>>>>>> ------------------------------********------------------------**
>>>>>> --**--**
>>>>>> --**---------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.******a**pache.org
>>>>>> <
>>>>>> http://apache.org**>
>>>>>> <users-unsubscribe@**tapestry.****apache.org<http://tapestry.**
>>>>>> apache.org <http://tapestry.apache.org>>
>>>>>> <users-unsubscribe@**tapestry.**apache.org<http://tapestry.apache.org>
>>>>>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org>
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>  ------------------------------********------------------------**
>>>>>> --**--**
>>>>>>
>>>>> --**---------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.******a**pache.org<
>>>>> http://apache.org**>
>>>>> <users-unsubscribe@**tapestry.****apache.org <
>>>>> http://tapestry.apache.org>
>>>>> <users-unsubscribe@**tapestry.**apache.org<http://tapestry.apache.org>
>>>>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org>
>>>>> >
>>>>> >
>>>>> >
>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  ------------------------------******--------------------------**--**
>>>> --**---------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.****a**pache.org<
>>>> http://apache.org**>
>>>> <users-unsubscribe@**tapestry.**apache.org <http://tapestry.apache.org>
>>>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org>
>>>> >
>>>> >
>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>
>>>>
>>>>
>>>>
>> ------------------------------****----------------------------**
>> --**---------
>> To unsubscribe, e-mail: 
>> users-unsubscribe@tapestry.**a**pache.org<http://apache.org>
>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org>
>> >
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: 
> users-unsubscribe@tapestry.**apache.org<users-unsubscr...@tapestry.apache.org>
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to