Hello, You can define the scope of each service...you can set that particular service to be tied to only one session.
See http://tapestry.apache.org/tapestry5/tapestry-ioc/service.html, and search for "perthread". Thanks, Andy On Tue, 29 Apr 2008 18:02:52 +0200, "János Jarecsni" <[EMAIL PROTECTED]> wrote: > Hi there, > > the service approach (as I expected) is session-agnostic (and is > page-independent so concurrent users would interfere badly), therefore is > not ok. > > I will now try the Environment approach... if that is session-aware :) > > thx again > janos > > 2008/4/29 János Jarecsni <[EMAIL PROTECTED]>: > >> Hi Chris, >> >> even so you could help :) I want this kind of generic way of passing >> around information (component to component communication :)) so I'll > look >> for the solutions Kristian and you outlined. >> >> thanks! >> >> cheers, >> janos >> >> 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: >> >> > Janos, >> > >> > Without code or a description of your actual goal, I'm finding your >> > situation too hypothetical to really digest. The one thing I can point >> > out is what you said about wanting a component to set a property in > the >> > page. If you want to do that, then you have to know the class of the >> > page and so injecting a page would make sense. Of course that means >> > tightly coupling a component to a page, which to me doesn't make > sense. >> > If you simply need a generic way of passing data between pages and >> > components, consider using a service that provides an untyped list or >> > putting something in the environment as Kristian suggested. I'm sorry > I >> > can't be more helpful but as I said I'm not clear on what you're > really >> > trying to do. >> > >> > good luck >> > chris >> > >> > János Jarecsni wrote: >> > > Hi Chris, >> > > >> > > I thought of pages as "contexts" for the components embedded within >> > them. >> > > So, in one event handler of a component I would like to set some >> > property or >> > > another (in the page object), and the other components in the page, >> > which >> > > are also able to access this property may change their appearance >> > (say, the >> > > .TML would test the property). Maybe I'm on a wrong track, please > let >> > me >> > > know :) >> > > >> > > thx >> > > Cheers, >> > > janos >> > > >> > > 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: >> > > >> > > >> > >> Janos, >> > >> >> > >> I'm having a hard time understanding a case that a component should >> > know >> > >> in which page it is embedded, so my suggestion probably wasn't a > good >> > >> one. Activation contexts aren't meant for components but for pages > - >> > you >> > >> should be using component parameters to configure them, and if it's > a >> > >> more sophisticated component, probably a service. >> > >> >> > >> chris >> > >> >> > >> János Jarecsni wrote: >> > >> >> > >>> and how a component can get to know the page in which it is >> > included? I >> > >>> mean, I can't @InjectPage, as the component will be included in > many >> > >>> >> > >> kinds >> > >> >> > >>> of pages. >> > >>> >> > >>> @Kristian: thx for the many ways :) I'll try these, hope that the >> > >>> @Environmental stuff is scalable (I'm trying to bypass session >> > creation >> > >>> >> > >> as >> > >> >> > >>> much as possible) >> > >>> >> > >>> Is there a doc on the various annotations available? >> > >>> >> > >>> @Michael: >> > >>> Could you include a tiny bit of example? THX! >> > >>> >> > >>> Thx to you all >> > >>> cheers >> > >>> janos >> > >>> >> > >>> 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: >> > >>> >> > >>> >> > >>> >> > >>>> 5) @InjectPage the page and call the getter >> > >>>> >> > >>>> Kristian Marinkovic wrote: >> > >>>> >> > >>>> >> > >>>>> hi janos, >> > >>>>> >> > >>>>> there are several possibilities: >> > >>>>> >> > >>>>> 1) declare a component parameter and pass in the variable >> > >>>>> >> > >>>>> 2) put it in a ASO and inject the ASO in all your components >> > (using >> > >>>>> @ApplicationState) >> > >>>>> the drawback is that any other page or component will be able to >> > >>>>> >> > >> access >> > >> >> > >>>>> the ASO >> > >>>>> >> > >>>>> 3) put it into the Environment and read it whereever you need it >> > in >> > >>>>> >> > >> your >> > >> >> > >>>>> nested components. >> > >>>>> be careful when you put your object in your environment. if you >> > put it >> > >>>>> >> > >>>>> >> > >>>> in >> > >>>> >> > >>>> >> > >>>>> during the action >> > >>>>> request it will not be able in the render request (because of > the >> > page >> > >>>>> redirect). >> > >>>>> >> > >>>>> page: >> > >>>>> >> > >>>>> @Inject Environment env; >> > >>>>> >> > >>>>> @Persist("flash") whateverclass w; >> > >>>>> >> > >>>>> onActivate(w) { this.w= w } >> > >>>>> >> > >>>>> setupRender() { env.push(whateverclass.class,w);} >> > >>>>> >> > >>>>> components: >> > >>>>> >> > >>>>> @Environmental Whateverclass var; >> > >>>>> >> > >>>>> 4) define a service that can take this variable (and saves it >> > >>>>> >> > >>>>> >> > >>>> appropriatly >> > >>>> >> > >>>> >> > >>>>> so it is not >> > >>>>> lost on a redirect:)) and inject your service in the components >> > where >> > >>>>> needed >> > >>>>> to retrieve the value. >> > >>>>> >> > >>>>> maybe there are some more possibilities :) >> > >>>>> >> > >>>>> g, >> > >>>>> kris >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> "János Jarecsni" <[EMAIL PROTECTED]> >> > >>>>> 29.04.2008 08:15 >> > >>>>> Bitte antworten an >> > >>>>> "Tapestry users" <users@tapestry.apache.org> >> > >>>>> >> > >>>>> >> > >>>>> An >> > >>>>> "Tapestry users" <users@tapestry.apache.org> >> > >>>>> Kopie >> > >>>>> >> > >>>>> Thema >> > >>>>> page activation + components >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> Hi there, >> > >>>>> >> > >>>>> I have an activatable page, in its onActivate(String param) > method >> > I >> > >>>>> >> > >>>>> >> > >>>> save >> > >>>> >> > >>>> >> > >>>>> the param to a normal instance variable of the page class (no >> > >>>>> persistence!). >> > >>>>> How can any component embedded within this page access this >> > variable? >> > >>>>> >> > >>>>> the page class: >> > >>>>> >> > >>>>> //... >> > >>>>> private String param; >> > >>>>> >> > >>>>> public void onActivate(String param) { >> > >>>>> this.param = param; >> > >>>>> } >> > >>>>> >> > >>>>> >> > >>>>> public String getParam() {...} >> > >>>>> >> > >>>>> >> > >>>>> Thx in advance! >> > >>>>> Janos >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>> -- >> > >>>> http://thegodcode.net >> > >>>> >> > >>>> >> > >>>> >> > --------------------------------------------------------------------- >> > >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >> > >>>> For additional commands, e-mail: [EMAIL PROTECTED] >> > >>>> >> > >>>> >> > >>>> >> > >>>> >> > >> -- >> > >> http://thegodcode.net >> > >> >> > >> >> > >> > --------------------------------------------------------------------- >> > >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> > >> For additional commands, e-mail: [EMAIL PROTECTED] >> > >> >> > >> >> > >> >> > >> > -- >> > http://thegodcode.net >> > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: [EMAIL PROTECTED] >> > >> > >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]