No, I think then I misunderstood you :) The essential thing, is I'd like to have something similar to request scoped variables... something that would be available to all components and the page itself in the same request. Intention is to avoid creating a session as far as possible.
thx! cheers janos 2008/4/30 Blower, Andy <[EMAIL PROTECTED]>: > This is not what I understood 'perthread' scope to be. I thought that it > meant that each thread using a service gets its own instance of the service > to use, even though that instance may not be the same as any previous > instance it used. In other words, nothing to do with user sessions, it's > just for services that are not thread safe and cannot be singletons. > > Have I got the wrong end of the stick here? > > > -----Original Message----- > > From: Andy Huhn [mailto:[EMAIL PROTECTED] > > Sent: 29 April 2008 17:34 > > To: Tapestry users > > Subject: Re: page activation + components > > > > > > 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: users- > > [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] > >