Re: Jasper 2 class files

2002-08-21 Thread Steve Downey

Is jspcache the place that Tomcat is looking for generated classes? If so, 
then the custom JSP classloader is doing its magic.

The java and class files produced by the JspC command line compiler should be 
able to be jared up and placed into the WEB-INF directory, like any other 
servlet.  And the web.xml then maps the jsp URIs to servlets.

Jasper 1 could do this, I provided some of the patches to make it work.

The real test is to take all of the output from JspC and create a WAR file 
from it. Without the base jsp files. This WAR should operate in ANY servlet 
container. 


On Wednesday 21 August 2002 02:22 pm, John Trollinger wrote:
> Greg,
>
> I took this off of the bug tracking because it is not a bug and I
> thought there are people a lot smarter than me in this mailing list that
> could help answer you questions.
>
> I do not know how jasper differentiates between hello.jsp and
> /anydir/hello.jsp when the both compile to a class
> org.jasper.jsp.hello_jsp but it does work...
>
> My hello.jsp in the root dir prints hello Jasper world and my hello.jsp
> in the subdir prints hello john world.  It works without a hitch..
> (notice that I have removed the .java files for the 2 hello world files
> and it did not regenerate them)
>
> Here is my file list
>
> Directory of C:\appserver\Tomcat\jspcache
>
> 08/21/2002  02:19 PM  .
> 08/21/2002  02:19 PM  ..
> 08/21/2002  11:47 AM 3,496 date_jsp.java
> 08/21/2002  11:52 AM 2,975 hello_jsp.class
> 08/21/2002  11:51 AM 2,883 index_jsp.class
> 08/21/2002  11:51 AM 1,863 index_jsp.java
> 08/21/2002  01:27 PM  subdir
>4 File(s) 11,217 bytes
>
>  Directory of C:\appserver\Tomcat\jspcache\subdir
>
> 08/21/2002  01:27 PM  .
> 08/21/2002  01:27 PM  ..
> 08/21/2002  11:47 AM 3,334 date2_jsp.java
> 08/21/2002  11:52 AM 2,970 hello_jsp.class
>
> Here is my jsp.xml
>
> 
>
>   
>   org.apache.jsp.date_jsp
>   org.apache.jsp.date_jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   org.apache.jsp.hello_jsp
>   
>
>   
>   org.apache.jsp.date2_jsp
>   org.apache.jsp.date2_jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   org.apache.jsp.hello_jsp
>   
>
>   
>   org.apache.jsp.date_jsp
>   /date.jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   /hello.jsp
>   
>
>   
>   org.apache.jsp.date2_jsp
>   /subdir/date2.jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   /subdir/hello.jsp
>   
>
> 


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




RE: Jasper 2 class files

2002-08-21 Thread John Trollinger

If you take the generated class files and war them up and just call them
as servlets how does the classloader differentiate
/org.jasper.jsp.hello_jsp from /subdir/org.jasper.jsp.hello_jsp.  I can
see how it does it when a JSP file exists but if you just move the
generated files over I don't see how the classloader could figure this
out?

If this is in your web.xml how does it know one hello_jsp from the other
without the jsp pages there and without going through jasper?


org.apache.jsp.hello_jsp
org.apache.jsp.hello_jsp



org.apache.jsp.hello_jsp
/subdir/hello.jsp


-Original Message-
From: Steve Downey [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, August 21, 2002 2:56 PM
To: Tomcat Developers List
Subject: Re: Jasper 2 class files

Is jspcache the place that Tomcat is looking for generated classes? If
so, 
then the custom JSP classloader is doing its magic.

The java and class files produced by the JspC command line compiler
should be 
able to be jared up and placed into the WEB-INF directory, like any
other 
servlet.  And the web.xml then maps the jsp URIs to servlets.

Jasper 1 could do this, I provided some of the patches to make it work.

The real test is to take all of the output from JspC and create a WAR
file 
from it. Without the base jsp files. This WAR should operate in ANY
servlet 
container. 


On Wednesday 21 August 2002 02:22 pm, John Trollinger wrote:
> Greg,
>
> I took this off of the bug tracking because it is not a bug and I
> thought there are people a lot smarter than me in this mailing list
that
> could help answer you questions.
>
> I do not know how jasper differentiates between hello.jsp and
> /anydir/hello.jsp when the both compile to a class
> org.jasper.jsp.hello_jsp but it does work...
>
> My hello.jsp in the root dir prints hello Jasper world and my
hello.jsp
> in the subdir prints hello john world.  It works without a hitch..
> (notice that I have removed the .java files for the 2 hello world
files
> and it did not regenerate them)
>
> Here is my file list
>
> Directory of C:\appserver\Tomcat\jspcache
>
> 08/21/2002  02:19 PM  .
> 08/21/2002  02:19 PM  ..
> 08/21/2002  11:47 AM 3,496 date_jsp.java
> 08/21/2002  11:52 AM 2,975 hello_jsp.class
> 08/21/2002  11:51 AM 2,883 index_jsp.class
> 08/21/2002  11:51 AM 1,863 index_jsp.java
> 08/21/2002  01:27 PM  subdir
>4 File(s) 11,217 bytes
>
>  Directory of C:\appserver\Tomcat\jspcache\subdir
>
> 08/21/2002  01:27 PM  .
> 08/21/2002  01:27 PM  ..
> 08/21/2002  11:47 AM 3,334 date2_jsp.java
> 08/21/2002  11:52 AM 2,970 hello_jsp.class
>
> Here is my jsp.xml
>
> 
>
>   
>   org.apache.jsp.date_jsp
>   org.apache.jsp.date_jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   org.apache.jsp.hello_jsp
>   
>
>   
>   org.apache.jsp.date2_jsp
>   org.apache.jsp.date2_jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   org.apache.jsp.hello_jsp
>   
>
>   
>   org.apache.jsp.date_jsp
>   /date.jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   /hello.jsp
>   
>
>   
>   org.apache.jsp.date2_jsp
>   /subdir/date2.jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   /subdir/hello.jsp
>   
>
> 


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


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




RE: Jasper 2 class files

2002-08-21 Thread Steve Downey

Bingo! It can't!

{BTW, it shouldn't be org.jasper.x, as that's Paul Jasper's site,
whoever he is}

What should be happening with JspC [and in the JspServlet IMO] is:
/hello.jsp => org.apache.jsp.hello_jsp in {output}/hello_jsp.java
/subdir/hello.jsp => org.apache.jsp.subdir.hello_jsp in
{output}/subdir/hello_jsp.java

with the resultant web.xml fragment:


org.apache.jsp.hello_jsp
org.apache.jsp.hello_jsp


org.apache.jsp.subdir.hello_jsp
org.apache.jsp.subdir.hello_jsp


org.apache.jsp.hello_jsp
/hello.jsp


org.apache.jsp.subdir.hello_jsp
/subdir/hello.jsp


Then they can be compiled by an ordinary  ant task, and warred and
deployed in any servlet container.

Now, why might you want to do this?

The resultant WAR file can be put into a container that doesn't have JSP or
tools.jar support. It's great for embedded applications. Much lower
overhead, and more predictable response. It's also great for QA. You test
exactly the bits that get shipped.


> -Original Message-
> From: John Trollinger [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 21, 2002 3:16 PM
> To: 'Tomcat Developers List'
> Subject: RE: Jasper 2 class files
>
>
> If you take the generated class files and war them up and just call them
> as servlets how does the classloader differentiate
> /org.jasper.jsp.hello_jsp from /subdir/org.jasper.jsp.hello_jsp.  I can
> see how it does it when a JSP file exists but if you just move the
> generated files over I don't see how the classloader could figure this
> out?
>
> If this is in your web.xml how does it know one hello_jsp from the other
> without the jsp pages there and without going through jasper?
>
>   
>   org.apache.jsp.hello_jsp
>   org.apache.jsp.hello_jsp
>   
>
>   
>   org.apache.jsp.hello_jsp
>   /subdir/hello.jsp
>   
>
> -Original Message-
> From: Steve Downey [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 21, 2002 2:56 PM
> To: Tomcat Developers List
> Subject: Re: Jasper 2 class files
>
> Is jspcache the place that Tomcat is looking for generated classes? If
> so,
> then the custom JSP classloader is doing its magic.
>
> The java and class files produced by the JspC command line compiler
> should be
> able to be jared up and placed into the WEB-INF directory, like any
> other
> servlet.  And the web.xml then maps the jsp URIs to servlets.
>
> Jasper 1 could do this, I provided some of the patches to make it work.
>
> The real test is to take all of the output from JspC and create a WAR
> file
> from it. Without the base jsp files. This WAR should operate in ANY
> servlet
> container.
>
>
> On Wednesday 21 August 2002 02:22 pm, John Trollinger wrote:
> > Greg,
> >
> > I took this off of the bug tracking because it is not a bug and I
> > thought there are people a lot smarter than me in this mailing list
> that
> > could help answer you questions.
> >
> > I do not know how jasper differentiates between hello.jsp and
> > /anydir/hello.jsp when the both compile to a class
> > org.jasper.jsp.hello_jsp but it does work...
> >
> > My hello.jsp in the root dir prints hello Jasper world and my
> hello.jsp
> > in the subdir prints hello john world.  It works without a hitch..
> > (notice that I have removed the .java files for the 2 hello world
> files
> > and it did not regenerate them)
> >
> > Here is my file list
> >
> > Directory of C:\appserver\Tomcat\jspcache
> >
> > 08/21/2002  02:19 PM  .
> > 08/21/2002  02:19 PM  ..
> > 08/21/2002  11:47 AM 3,496 date_jsp.java
> > 08/21/2002  11:52 AM 2,975 hello_jsp.class
> > 08/21/2002  11:51 AM 2,883 index_jsp.class
> > 08/21/2002  11:51 AM 1,863 index_jsp.java
> > 08/21/2002  01:27 PM  subdir
> >4 File(s) 11,217 bytes
> >
> >  Directory of C:\appserver\Tomcat\jspcache\subdir
> >
> > 08/21/2002  01:27 PM  .
> > 08/21/2002  01:27 PM  ..
> > 08/21/2002  11:47 AM 3,334 date2_jsp.java
> > 08/21/2002  11:52 AM 2,970 hello_jsp.class
> >
> > Here is my jsp.xml
> >
> > 
> >
> > 
> > org.apache.jsp.date_jsp
> > org.apache.jsp.date_jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > org.apache.jsp.hello_jsp
> > 
> >
> > 
> > org.apache.

Re: Jasper 2 class files

2002-08-21 Thread Glenn Nielsen

Yes, you can have two JSP pages with the same name but in different directories
and everything will work fine even though they have the same package and class name.
This is because a custom URLClassLoader is created for each individual JSP page.
That class loader only loads the one java class for that one JSP page.

For example:

/myapp/this/hello.jsp
/muapp/that/hello.jsp

The class files will end up in:

$CATALINA_BASE/work/Standalone/localhost/myapp/this/hello.class
$CATALINA_BASE/work/Standalone/localhost/myapp/that/hello.class

Since two different URLClassLoaders are used Jasper can
load each of the above two classes even though they have
the same package and class name.

The old methods Jasper used for loading java classes generated for JSP
pages was very inefficient.  The above change simplified Jasper and
improved its performance by 25%.

Regards,

Glenn

John Trollinger wrote:
> Greg, 
> 
> I took this off of the bug tracking because it is not a bug and I
> thought there are people a lot smarter than me in this mailing list that
> could help answer you questions.  
> 
> I do not know how jasper differentiates between hello.jsp and
> /anydir/hello.jsp when the both compile to a class
> org.jasper.jsp.hello_jsp but it does work...
> 
> My hello.jsp in the root dir prints hello Jasper world and my hello.jsp
> in the subdir prints hello john world.  It works without a hitch..
> (notice that I have removed the .java files for the 2 hello world files
> and it did not regenerate them)
> 
> Here is my file list
> 
> Directory of C:\appserver\Tomcat\jspcache
> 
> 08/21/2002  02:19 PM  .
> 08/21/2002  02:19 PM  ..
> 08/21/2002  11:47 AM 3,496 date_jsp.java
> 08/21/2002  11:52 AM 2,975 hello_jsp.class
> 08/21/2002  11:51 AM 2,883 index_jsp.class
> 08/21/2002  11:51 AM 1,863 index_jsp.java
> 08/21/2002  01:27 PM  subdir
>4 File(s) 11,217 bytes
> 
>  Directory of C:\appserver\Tomcat\jspcache\subdir
> 
> 08/21/2002  01:27 PM  .
> 08/21/2002  01:27 PM  ..
> 08/21/2002  11:47 AM 3,334 date2_jsp.java
> 08/21/2002  11:52 AM 2,970 hello_jsp.class
> 
> Here is my jsp.xml
> 
> 
> 
>   
>   org.apache.jsp.date_jsp
>   org.apache.jsp.date_jsp
>   
> 
>   
>   org.apache.jsp.hello_jsp
>   org.apache.jsp.hello_jsp
>   
> 
>   
>   org.apache.jsp.date2_jsp
>   org.apache.jsp.date2_jsp
>   
> 
>   
>   org.apache.jsp.hello_jsp
>   org.apache.jsp.hello_jsp
>   
> 
>   
>   org.apache.jsp.date_jsp
>   /date.jsp
>   
> 
>   
>   org.apache.jsp.hello_jsp
>   /hello.jsp
>   
> 
>   
>   org.apache.jsp.date2_jsp
>   /subdir/date2.jsp
>   
> 
>   
>   org.apache.jsp.hello_jsp
>   /subdir/hello.jsp
>   
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:   
> For additional commands, e-mail: 




--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




RE: Jasper 2 class files

2002-08-21 Thread Steve Downey

However, in the context of JspC, it's a problem to map them to the same
package and class name. The custom URLClassLoader works within the JSP
engine, but the general servlet class loader doesn't know about those rules.
So when it sees those entries in web.xml, it will map all hello.jsp files,
no matter where they reside, to org.apache.jsp.hello_jsp.



> -Original Message-
> From: Glenn Nielsen [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 21, 2002 7:54 PM
> To: Tomcat Developers List
> Subject: Re: Jasper 2 class files
>
>
> Yes, you can have two JSP pages with the same name but in
> different directories
> and everything will work fine even though they have the same
> package and class name.
> This is because a custom URLClassLoader is created for each
> individual JSP page.
> That class loader only loads the one java class for that one JSP page.
>
> For example:
>
> /myapp/this/hello.jsp
> /muapp/that/hello.jsp
>
> The class files will end up in:
>
> $CATALINA_BASE/work/Standalone/localhost/myapp/this/hello.class
> $CATALINA_BASE/work/Standalone/localhost/myapp/that/hello.class
>
> Since two different URLClassLoaders are used Jasper can
> load each of the above two classes even though they have
> the same package and class name.
>
> The old methods Jasper used for loading java classes generated for JSP
> pages was very inefficient.  The above change simplified Jasper and
> improved its performance by 25%.
>
> Regards,
>
> Glenn
>
> John Trollinger wrote:
> > Greg,
> >
> > I took this off of the bug tracking because it is not a bug and I
> > thought there are people a lot smarter than me in this mailing list that
> > could help answer you questions.
> >
> > I do not know how jasper differentiates between hello.jsp and
> > /anydir/hello.jsp when the both compile to a class
> > org.jasper.jsp.hello_jsp but it does work...
> >
> > My hello.jsp in the root dir prints hello Jasper world and my hello.jsp
> > in the subdir prints hello john world.  It works without a hitch..
> > (notice that I have removed the .java files for the 2 hello world files
> > and it did not regenerate them)
> >
> > Here is my file list
> >
> > Directory of C:\appserver\Tomcat\jspcache
> >
> > 08/21/2002  02:19 PM  .
> > 08/21/2002  02:19 PM  ..
> > 08/21/2002  11:47 AM 3,496 date_jsp.java
> > 08/21/2002  11:52 AM 2,975 hello_jsp.class
> > 08/21/2002  11:51 AM 2,883 index_jsp.class
> > 08/21/2002  11:51 AM 1,863 index_jsp.java
> > 08/21/2002  01:27 PM  subdir
> >4 File(s) 11,217 bytes
> >
> >  Directory of C:\appserver\Tomcat\jspcache\subdir
> >
> > 08/21/2002  01:27 PM  .
> > 08/21/2002  01:27 PM  ..
> > 08/21/2002  11:47 AM 3,334 date2_jsp.java
> > 08/21/2002  11:52 AM 2,970 hello_jsp.class
> >
> > Here is my jsp.xml
> >
> > 
> >
> > 
> > org.apache.jsp.date_jsp
> > org.apache.jsp.date_jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > org.apache.jsp.hello_jsp
> > 
> >
> > 
> > org.apache.jsp.date2_jsp
> > org.apache.jsp.date2_jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > org.apache.jsp.hello_jsp
> > 
> >
> > 
> > org.apache.jsp.date_jsp
> > /date.jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > /hello.jsp
> > 
> >
> > 
> > org.apache.jsp.date2_jsp
> > /subdir/date2.jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > /subdir/hello.jsp
> > 
> >
> > 
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
>
>
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
>
>


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




RE: Jasper 2 class files

2002-08-22 Thread John Trollinger

This would be an easy change to JspC so that you could have a flag that
would generate package names instead of using the standard package name.

If there is any interest in this let me know..

 

-Original Message-
From: Steve Downey [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, August 21, 2002 8:00 PM
To: Tomcat Developers List
Subject: RE: Jasper 2 class files

However, in the context of JspC, it's a problem to map them to the same
package and class name. The custom URLClassLoader works within the JSP
engine, but the general servlet class loader doesn't know about those
rules.
So when it sees those entries in web.xml, it will map all hello.jsp
files,
no matter where they reside, to org.apache.jsp.hello_jsp.



> -Original Message-
> From: Glenn Nielsen [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 21, 2002 7:54 PM
> To: Tomcat Developers List
> Subject: Re: Jasper 2 class files
>
>
> Yes, you can have two JSP pages with the same name but in
> different directories
> and everything will work fine even though they have the same
> package and class name.
> This is because a custom URLClassLoader is created for each
> individual JSP page.
> That class loader only loads the one java class for that one JSP page.
>
> For example:
>
> /myapp/this/hello.jsp
> /muapp/that/hello.jsp
>
> The class files will end up in:
>
> $CATALINA_BASE/work/Standalone/localhost/myapp/this/hello.class
> $CATALINA_BASE/work/Standalone/localhost/myapp/that/hello.class
>
> Since two different URLClassLoaders are used Jasper can
> load each of the above two classes even though they have
> the same package and class name.
>
> The old methods Jasper used for loading java classes generated for JSP
> pages was very inefficient.  The above change simplified Jasper and
> improved its performance by 25%.
>
> Regards,
>
> Glenn
>
> John Trollinger wrote:
> > Greg,
> >
> > I took this off of the bug tracking because it is not a bug and I
> > thought there are people a lot smarter than me in this mailing list
that
> > could help answer you questions.
> >
> > I do not know how jasper differentiates between hello.jsp and
> > /anydir/hello.jsp when the both compile to a class
> > org.jasper.jsp.hello_jsp but it does work...
> >
> > My hello.jsp in the root dir prints hello Jasper world and my
hello.jsp
> > in the subdir prints hello john world.  It works without a hitch..
> > (notice that I have removed the .java files for the 2 hello world
files
> > and it did not regenerate them)
> >
> > Here is my file list
> >
> > Directory of C:\appserver\Tomcat\jspcache
> >
> > 08/21/2002  02:19 PM  .
> > 08/21/2002  02:19 PM  ..
> > 08/21/2002  11:47 AM 3,496 date_jsp.java
> > 08/21/2002  11:52 AM 2,975 hello_jsp.class
> > 08/21/2002  11:51 AM 2,883 index_jsp.class
> > 08/21/2002  11:51 AM 1,863 index_jsp.java
> > 08/21/2002  01:27 PM  subdir
> >4 File(s) 11,217 bytes
> >
> >  Directory of C:\appserver\Tomcat\jspcache\subdir
> >
> > 08/21/2002  01:27 PM  .
> > 08/21/2002  01:27 PM  ..
> > 08/21/2002  11:47 AM 3,334 date2_jsp.java
> > 08/21/2002  11:52 AM 2,970 hello_jsp.class
> >
> > Here is my jsp.xml
> >
> > 
> >
> > 
> > org.apache.jsp.date_jsp
> > org.apache.jsp.date_jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > org.apache.jsp.hello_jsp
> > 
> >
> > 
> > org.apache.jsp.date2_jsp
> > org.apache.jsp.date2_jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > org.apache.jsp.hello_jsp
> > 
> >
> > 
> > org.apache.jsp.date_jsp
> > /date.jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > /hello.jsp
> > 
> >
> > 
> > org.apache.jsp.date2_jsp
> > /subdir/date2.jsp
> > 
> >
> > 
> > org.apache.jsp.hello_jsp
> > /subdir/hello.jsp
> > 
> >
> > 
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
>
>
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
>
>


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


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