oh sorry. the code snippet is wrong. I was using @Persist("session") and it
didn't reflect in the StateObjectManager.
But once i switched to @InjectState , everything worked as expected. I think
the difference is that
@Persist pushes the object to session. But that object is not being managed
by hivemind unlike the ones you explicitly declare in hivemodule.xml -

   <contribution configuration-id="tapestry.state.ApplicationObjects">

        <state-object name="user" scope="session">
            <create-instance class="com.xyz.web.common.User"/>
        </state-object>
 </contribution>


Hence the StateObjectManager is probably not aware of the objects pushed
into session through @Persist("session")

That is my understanding..but i may be wrong :)
Btw, thank you all for guiding me through tapestry workers


On 12/28/06, Raul Raja Martinez <[EMAIL PROTECTED]> wrote:

@Persist("client") ?

wouldn´t that use cookies?

karthik G wrote:
> thanks Robert!
>
> This is what I have in my code -
>
> public boolean isSecureAccess(){
>
> StateObjectManager userManager = soReg.get("user");
> if(userManager != null){
>        System.out.println("\n\n\n+++++++LoginStatusDeterminer  --> "
>                    + userManager.exists());
>           //this returns false
>           return userManager.exists();
>  }else{
>          return false;
>   }
>
> }
>
> and this is the entry in hivemodule.xml
>
>    <contribution configuration-id="tapestry.state.ApplicationObjects">
>        <state-object name="user" scope="session">
>            <create-instance class="com.xyz.web.common.User"/>
>        </state-object>
>    </contribution>
>
> In the Home page i persisted the user to the session
>
> @Persist("client")
> abstract void setUser(User user);
>
> After that when isSecureAccess is called by the PageValdiationListener
of
> the next page,
> userManager.exists();       returns false! even though the User object
was
> set in the session in the Home page form submit listener.
>
> Any idea why StateObjectManager is not returning 'true' ?
>
> thanks,
> Karthik
>
>
>
> On 12/27/06, Robert Binna <[EMAIL PROTECTED]> wrote:
>>
>> You could use the
>>
>> StateObjectManagerRegistry
>>
>> inject it into your service and can then call:
>>
>> StateObjectManager manager = (StateObjectManager) registry.get
>> (<yourstate>);
>>
>> on the manager you can obtain your State Object by
>>    manager.get()
>>
>> I think this should work
>>
>> Kind regards,
>>              Robert
>>
>> karthik G schrieb:
>>
>> > WoW!, i downloaded tapestry-acegi code. Used some ideas from there
for
>> > implementing my stuff..and it works like a charm.
>> >
>> > But can someone tell me how can I programmatically look up hivemind
and
>> > query if a bean by the name"user" has been instantiated in the
>> specified
>> > scope?
>> >
>> >    <contribution configuration-id="tapestry.state.ApplicationObjects
">
>> >        <state-object name="user" scope="session">
>> >            <create-instance class="com.xyz.web.common.User"/>
>> >        </state-object>
>> >    </contribution>
>> >
>> > thanks,
>> > Karthik
>> >
>> >
>> >
>> > On 12/27/06, karthik G <[EMAIL PROTECTED]> wrote:
>> >
>> >>
>> >> Thanks james/ron,
>> >>
>> >> I finally gathered some courage to look at the source code :)
>> >> Ok I just want to check for the presence of the User object in the
>> >> session
>> >> in my ClassAnnotationEnhancementWorker. I basically need a
>> >> InjectStateFlag kind of functionality in my Worker (not the page)
>> >> where i
>> >> can check  if the 'user' object is already present in the session.
>> >> Then i want to throw PageRedirect to Login page...usual stuff.
>> >> Am not actually *enhancing* the Page as in ..am not doing any nifty
>> byte
>> >> code generation stuff.
>> >>
>> >> Since I cannot use @InjectState within my Worker? , I need to
>> figure it
>> >> out myself by querying hivemind.xml?  - so basically my Worker needs
>> >> to be
>> >> aware of say the "user" configured in hivemodule.xml
>> >>
>> >> How can I query the hivemind and ask if the hivemind container
>> >> contains an
>> >> instance of "user" in "session" scope already. I dont want it to
>> >> instantiate
>> >> "user" though.
>> >>
>> >> Or the only way to throw a PageRedirect is to dynamically enhance
the
>> >> Page
>> >> by making it implement PageValidateListener?
>> >>
>> >> Sorry for such basic questions.
>> >>
>> >> thanks
>> >> Karthik
>> >>
>> >>
>> >>
>> >>
>> >> On 12/23/06, James Carman <[EMAIL PROTECTED]> wrote:
>> >> >
>> >> > The tapestry-acegi library does exactly this.  When it sees an
Acegi
>> >> > @Secured annotation on a class/method, it uses a worker to enhance
>> the
>> >> > class.  So, you can either use what I've already created or refer
to
>> >> > the source to see how to do what you want.  If you have any
>> questions
>> >> > about the code, don't hesitate to ask.  Hope that helps.
>> >> >
>> >> > On 12/22/06, RonPiterman < [EMAIL PROTECTED] > wrote:
>> >> > > yes, workers are part of 4.0.2 - and the code is very clear, and
>> one
>> >> > can
>> >> > > learn alot from it - howard has a *very* nice programming
>> style, so
>> >> > its
>> >> > > worth taking a look.
>> >> > >
>> >> > > I would look at the wiki, but I don't know if there are any
>> >> > > tutorials/docu around for this. It is quite advanced staff, but
>> its
>> >> > not
>> >> > > that hard.
>> >> > >
>> >> > > Cheers,
>> >> > > Ron
>> >> > >
>> >> > >
>> >> > >
>> >> > > karthik G wrote:
>> >> > > > thanks Ron. Currently am with going the way (subclassing a
>> >> > securedpage) as
>> >> > > > suggested by Dennis. Its simple and works.
>> >> > > > But am interested in the workers that you mention. Is looking
>> >> at the
>> >> > source
>> >> > > > code the only option at this point to write some workers?. Are
>> >> there
>> >> > any
>> >> > > > docs somewhere?
>> >> > > > Btw are workers part of 4.0.2
>> >> > > >
>> >> > > > thanks,
>> >> > > > Karthik
>> >> > > >
>> >> > > >
>> >> > > > On 12/21/06, Ron Piterman < [EMAIL PROTECTED]> wrote:
>> >> > > >>
>> >> > > >> yes, there is a configurable annotation workers, so you can
>> >> > > >> create/extend/override page methods when tapestry is
preparing
>> >> the
>> >> > > >> page/component class.
>> >> > > >>
>> >> > > >> You can create your own class worker which will add the
needed
>> >> > logic to
>> >> > > >> the mentioned attach event.
>> >> > > >>
>> >> > > >> Take a look at the annotations module code and hivemind
>> >> > configuration.
>> >> > > >>
>> >> > > >> Cheers,
>> >> > > >> Ron
>> >> > > >>
>> >> > > >>
>> >> > > >>
>> >> > > >> karthik G wrote:
>> >> > > >> > I just want to add an annotation on the page and then take
>> some
>> >> > action
>> >> > > >> when
>> >> > > >> > the page is being bound to a request from the page pool.
>> >> > > >> >
>> >> > > >> > @SecuredPage
>> >> > > >> > abstract class MyPage extends BasePage{
>> >> > > >> >
>> >> > > >> > }
>> >> > > >> >
>> >> > > >> > Is there anyways i can hook into T4's page creation process
>> and
>> >> > then
>> >> > > >> > depending upon the annotation take some action? For e.g in
>> the
>> >> > above
>> >> > > >> > case, I
>> >> > > >> > just want to be able to check for a user object in the
>> session
>> >> > and
>> >> > > >> redirect
>> >> > > >> > to login page.
>> >> > > >> >
>> >> > > >> > I looked at PageAttachListener and it looks nice. But I
dont
>> >> want
>> >> > to
>> >> > > >> > implement that in my page but would like to attach a
>> >> listener to
>> >> > T4
>> >> > > >> itself.
>> >> > > >> >
>> >> > > >> > thanks,
>> >> > > >> > Karthik
>> >> > > >> >
>> >> > > >>
>> >> > > >>
>> >> > > >>
>> >> >
>> ---------------------------------------------------------------------
>> >> > > >> 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]
>> >> >
>> >> >
>> >>
>> >
>>
>>
>> ---------------------------------------------------------------------
>> 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