Ok, here is a good response from Costin. He does point out a good point
which is that what we are doing is quite slow. Tomcat 3.2 (to be released
quite soon) is going to be nearly production quality now and will have
pretty much the same functionality as JServ. I haven't used JServ in months
now for development and Tomcat has been just fine for me. Should we consider
dropping JSDK 2.0 support now?

Sean, can you also check to see if making that Tomcat facade class public
will fix things? Costin +1'd making it public, but I want to make sure it is
the solution before checking in a change. A diff would also be appreciated.
I'm swamped.

We could also do the implementation of the request interface ourselves, but
that is a pain (complicates things) and I would rather not do that.

Please note that long term, we need to drop JSDK 2.0 support at some point.
We should also drop JDK 1.1 to, but I think that will have to wait a bit
longer until a good 1.2 JVM is on FreeBSD that I can run. Ug.

-jon

----------
From: <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
Date: Thu, 15 Jun 2000 13:34:54 -0700 (PDT)
To: tomcat-dev <[EMAIL PROTECTED]>
Subject: Re: getContextPath reflection tricks are broken

> I guess that the new facade stuff has broken a part of Turbine where we were
> using a reflection hack to get around JSDK 2.0/2.2 issues. With the recent
> facade stuff checked into Tomcat CVS, we cannot use this trick any longer
> because the methods are not visible to us any longer.
> 
> Is there some way that this can be fixed in Tomcat to allow us to do the
> trick? See below for more details about the problem.

Hi Jon,

The Facade's purpose is to prevent downcasting - an application shouldn't
rely on any tomcat internals and shouldn't be able to access anything but
request methods.

A normal web application can't ( or shouldn't ) be able to access tomcat
objects unless "isTrusted" attribute is set.

There is no particular reason to have the Facade class non-public ( except
paranoia ). You can make HttpServletRequestFacade public if that'll fix
your code - it seems to be enough for reflection to work.
 
Everything is fine as long as the class is final ( can't be extended ) and
have no public constructors and no public methods except the ones in the
interface.

IMHO you should try to replace the reflection hack - this kind of code is
_very_ slow compared with direct invocation. You could use a facade too -
i.e. your own Request object, with a 2.2 and a 2.0 implementation.

Costin 

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




------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?:           [EMAIL PROTECTED]

Reply via email to