You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2001/06/02 20:44:45 UTC
cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler JspReader.java Parser.java ParserController.java
remm 01/06/02 11:44:45
Modified: jasper/src/share/org/apache/jasper/compiler JspReader.java
Parser.java ParserController.java
Log:
- When testing with unpackWARs=false, I found areas in Jasper code
which still used File object, and were broken when Jasper is ran under
Windows. This patch simplifies the code a bit, and replaces the File objects
with String objects (the File object was only used to hold the filename).
- Tested with tester and various JSP examples.
Revision Changes Path
1.6 +3 -7 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspReader.java
Index: JspReader.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspReader.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- JspReader.java 2001/03/21 00:08:51 1.5
+++ JspReader.java 2001/06/02 18:44:45 1.6
@@ -240,16 +240,12 @@
}
*/
- private void pushFile2(File file, String encoding,
+ private void pushFile2(String file, String encoding,
InputStreamReader reader)
throws ParseException, FileNotFoundException
{
// Register the file
- String longName = (context == null)
- ? file.getAbsolutePath()
- : context.getRealPath(file.toString());
- if (longName == null)
- longName = file.toString();
+ String longName = file;
int fileid = registerSourceFile(longName);
@@ -312,7 +308,7 @@
}
protected JspReader(JspCompilationContext ctx,
- File file,
+ String file,
String encoding, InputStreamReader reader)
throws ParseException, FileNotFoundException
{
1.11 +1 -1 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Parser.java
Index: Parser.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Parser.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Parser.java 2001/04/27 01:32:47 1.10
+++ Parser.java 2001/06/02 18:44:45 1.11
@@ -129,7 +129,7 @@
}
// new constructor for JSP1.2
- public Parser(JspCompilationContext ctxt, File file,
+ public Parser(JspCompilationContext ctxt, String file,
String encoding, InputStreamReader inReader,
final ParseEventListener lnr)
throws ParseException, java.io.FileNotFoundException
1.15 +16 -31 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParserController.java
Index: ParserController.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParserController.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ParserController.java 2001/04/09 23:38:12 1.14
+++ ParserController.java 2001/06/02 18:44:45 1.15
@@ -183,22 +183,16 @@
throws FileNotFoundException, JasperException
{
//p("parse(" + inFileName + ")");
+
String absFileName = resolveFileName(inFileName);
- File file = new File(absFileName);
- String filePath = (ctxt == null)
- ? file.getAbsolutePath()
- : ctxt.getRealPath(file.toString());
- if (filePath == null) {
- filePath = file.toString();
- }
//p("filePath: " + filePath);
String encoding = topFileEncoding;
InputStreamReader reader = null;
try {
// Figure out what type of JSP document we are dealing with
- reader = getReader(file, encoding, absFileName);
- figureOutJspDocument(file, encoding, reader);
+ reader = getReader(absFileName, encoding);
+ figureOutJspDocument(absFileName, encoding, reader);
//p("isXml = " + isXml + " hasTaglib = " + hasTaglib);
encoding = (newEncoding!=null) ? newEncoding : encoding;
if (isTopFile) {
@@ -213,11 +207,11 @@
// dispatch to the proper parser
- reader = getReader(file, encoding, absFileName);
+ reader = getReader(absFileName, encoding);
if (isXml) {
- (new ParserXJspSax(filePath, reader, jspHandler)).parse();
+ (new ParserXJspSax(absFileName, reader, jspHandler)).parse();
} else {
- (new Parser(ctxt, file, encoding, reader, jspHandler)).parse();
+ (new Parser(ctxt, absFileName, encoding, reader, jspHandler)).parse();
}
baseDirStack.pop();
} finally {
@@ -232,7 +226,7 @@
//*********************************************************************
// Figure out input Document
- private void figureOutJspDocument(File file,
+ private void figureOutJspDocument(String file,
String encoding,
InputStreamReader reader)
throws JasperException
@@ -420,37 +414,28 @@
* baseDirStack.
*/
private String resolveFileName(String inFileName) {
- File file = new File(inFileName);
- boolean isAbsolute = file.getPath().startsWith(File.separator);
+ boolean isAbsolute = inFileName.startsWith("/");
String fileName =
isAbsolute ?
- inFileName : (String)baseDirStack.peek() + inFileName;
+ inFileName : (String) baseDirStack.peek() + inFileName;
String baseDir =
- inFileName.substring(0, file.getPath().lastIndexOf(File.separator) + 1);
+ inFileName.substring(0, inFileName.lastIndexOf("/") + 1);
baseDirStack.push(baseDir);
return fileName;
}
- private InputStreamReader getReader(File file, String encoding,
- String absFileName)
+ private InputStreamReader getReader(String file, String encoding)
throws FileNotFoundException, JasperException
{
InputStream in;
InputStreamReader reader;
try {
- if (ctxt == null) {
- in = new FileInputStream(file);
- reader = new InputStreamReader(in, encoding);
- } else {
- //String fileName = ctxt.getRealPath(file.toString());
- in = ctxt.getResourceAsStream(file.toString());
- if (in == null) {
- throw new FileNotFoundException(absFileName);
- }
- reader = new InputStreamReader(in, encoding);
- }
- return reader;
+ in = ctxt.getResourceAsStream(file);
+ if (in == null) {
+ throw new FileNotFoundException(file);
+ }
+ return new InputStreamReader(in, encoding);
} catch (UnsupportedEncodingException ex) {
throw new JasperException(
Constants.getString("jsp.error.unsupported.encoding",