Thanks!
-----Original Message----- From: Patrick Casey [mailto:[EMAIL PROTECTED] Sent: Tue 9/27/2005 11:32 AM To: 'Tapestry users' Subject: RE: Better way to statically get ahold of the visit object? I dunno, I've never worked with Jetty. If you want to do it in a more Tapestryesque way you could set up the same threadlocal in your application engine (just subclass BaseEngine and do: Private static fina ThreadLocal fCurrentSession = new ThreadLocal(); Protected void setupForRequest(RequestContext context) { fCurrentSession.set(context.getSession()); } Then just set the egine-class attribute in your .application file to point to your new engine class and you're in business, without having to override the servlet. --- Pat > -----Original Message----- > From: Mark Stang [mailto:[EMAIL PROTECTED] > Sent: Tuesday, September 27, 2005 10:24 AM > To: Tapestry users; Tapestry users > Subject: RE: Better way to statically get ahold of the visit object? > > Pat, > OK, how do I override the application servlet (Jetty)? Is this available > from within Tapestry? > > thanks, > > Mark > > > -----Original Message----- > From: Patrick Casey [mailto:[EMAIL PROTECTED] > Sent: Tue 9/27/2005 11:22 AM > To: 'Tapestry users' > Subject: RE: Better way to statically get ahold of the visit object? > > > Override application servlet and do this: > > private static final ThreadLocal fCurrentSession = new > ThreadLocal(); > > protected void doService(HttpServletRequest request, > HttpServletResponse response) throws IOException, > ServletException { > Clock c = new Clock(); > HttpSession s = request.getSession(); > fCurrentSession.set(s); > synchronized (s) { > super.doService(request, response); > } > String temp = "Total Render time = " + c; > } > > public static HttpSession getCurrentSession() { > if (fCurrentSession == null) > return null; > return (HttpSession) fCurrentSession.get(); > } > > > -----Original Message----- > > From: Mark Stang [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, September 27, 2005 9:57 AM > > To: Tapestry users; Tapestry users > > Subject: RE: Better way to statically get ahold of the visit object? > > > > Where are you getting the session? Are you using 4.x? > > > > regards, > > > > Mark > > > > > > -----Original Message----- > > From: Muralidhar Y. [mailto:[EMAIL PROTECTED] > > Sent: Mon 9/26/2005 9:57 PM > > To: 'Tapestry users' > > Subject: RE: Better way to statically get ahold of the visit object? > > > > Sorry a small correction :- > > > > Public class Visit{ > > > > // constructor. > > public Visit(){ > > HttpSession s = (HttpSession) fCurrentSession.get(); > > s.setAttribute("visit", this) ; > > } > > // other methods and code goes here. > > }//end of the Visit class. > > > > > > public static Visit getVisit() { > > HttpSession s = (HttpSession) fCurrentSession.get(); > > Object visit=s.getAttribute("visit"); > > return (Visit) e.getVisit(); > > } > > > > > > Muralidhar Y > > Software Engineer, > > Adastrum technologies-Nikai groups, > > EmiratesGroup-I.T Division, > > Dubai, UAE. > > Mobile : 00971-50-2256149. > > http://www.adastrumtech.com > > http://www.mercator.aero > > (Keep Smiling. Be happy All The Time.) > > > > -----Original Message----- > > From: Muralidhar Y. [mailto:[EMAIL PROTECTED] > > Sent: 27 September 2005 07:35 > > To: 'Tapestry users' > > Subject: RE: Better way to statically get ahold of the visit object? > > > > Look at the following code. It might give you idea and better way of > > doing. > > > > Public class Visit{ > > > > // constructor. > > public Visit(){ > > HttpSession s = (HttpSession) fCurrentSession.get(); > > s.setAttribute("visit", this) ; > > } > > // other methods and code goes here. > > }//end of the Visit class. > > > > > > public static Visit getVisit() { > > HttpSession s = (HttpSession) fCurrentSession.get(); > > s.getAttribute("visit"); > > if(s != null) > > return (Visit) e.getVisit(); > > return null; > > } > > > > > > > > > > Muralidhar Y > > Software Engineer, > > Adastrum technologies-Nikai groups, > > EmiratesGroup-I.T Division, > > Dubai, UAE. > > Mobile : 00971-50-2256149. > > http://www.adastrumtech.com > > http://www.mercator.aero > > (Keep Smiling. Be happy All The Time.) > > > > -----Original Message----- > > From: Patrick Casey [mailto:[EMAIL PROTECTED] > > Sent: 27 September 2005 00:33 > > To: 'Tapestry users' > > Subject: Better way to statically get ahold of the visit object? > > > > > > > > Is there a better way to get ahold of the visit object > > statically (e.g. without access to the cycle or page objects?). Right > now > > I'm using: > > > > > > > > public static Visit getVisit() { > > > > HttpSession s = (HttpSession) > > fCurrentSession.get(); > > > > Enumeration en = s.getAttributeNames(); > > > > while (en.hasMoreElements()) { > > > > String attrib = (String) > > en.nextElement(); > > > > Log.info(attrib); > > > > if > (attrib.startsWith(ENGINE_PREFIX)) > > { > > > > AbstractEngine e = > > (AbstractEngine) s.getAttribute(attrib); > > > > return (Visit) > > e.getVisit(); > > > > } > > > > } > > > > return null; > > > > } > > > > > > > > Which is sort of messy because it requires iterating every > > attribute in the session and doing string compares to find the right > one. > > Is > > there a better approach (or one that doesn't involve doing an end run > > around > > the Tapestry Engine)? > > > > > > > > --- Pat > > > > > > > --------------------------------------------------------------------- > 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]
