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]