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]