Nope, you're exactly right.

-Filip

Blower, Andy skrev:
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to