GNUJSP 1.0.1 (29 September 2000) --------------------------- Notable changes and new features in this version are: -- support for virtual hosts and mappings under Apache + JServ -- support for Apache-style language negotiation based on extension -- new "keepJava" parameter to save generated .java files -- new "usehostname" parameter to run virtual hosts in one scratchdir -- all Throwables are caught and sent to errorPage, not just Exceptions -- better support for Win32 systems -- you need sax2.jar and openxml-1.2-w3c.jar now -- initial xml parsing support -- no more close on end of page The detailed change log (in reverse chronological order) follows: 29 September Carsten Heyl - added new apache config checker - fixed windows tips in apache install - added note about beans to FAQ - fixed possible file descriptor leak in RequestDispatcherImpl Thanks to Kent Smotherman - Preparing for 1.0.1 release 7 September Carsten Heyl - added sax2.jar - added openxml-1.2-wc3.jar - fixed apache docs for above additions 29 August 2000 Carsten Heyl Runtime: - only use HTTP GET when resolving include/forward if this is activated via usehttpfallback=true - make it an Exception in jsp:forward/jsp:include if url is empty - removed dontusepagebasehack parameter and made it the default (old behaviour can be got by setting usedocroot=true) - fixed file location problems when using virtual hosts and user home directives - added and documented usedocroot parameter - hopefully fixed looping but when using include on non JSDK 2.0 servlet engines Source Generation: - don't close out on exit from jsp page but flush the stream - display Throwables in jsp pages when we caught them (they were silently ignored) - Added short (!) installation guide for installing gnujsp on apache. - added perl skript to check jserv config 24 August 2000 Carsten Heyl Source Generation, Internal: - use resource url for dependancy checking this avoids duplicate and complicated recource calculations 03 August 2000 Carsen Heyl - better error message if java source could not be written 17 May 2000 Carsten Heyl (alph) - check for keepJava and keepjava 30 April 2000 Mark Wielaard - Use toString() and not getMessage() when an exception occurs when trying to use the builtin-javac. Should give a bit more information. 28 April 2000 Mark Wielaard - added final servlet libs from Paul Siegmann (version 20000428) (moved README.servlet to doc directory where all the other docs live) 25 April 2000 Wes Biggs (fix from Kawamichi Ryoji) - changed Emitter/JavaEmitter to use BufferedWriter and newLine() function. 19 April 2000 Carsten Heyl - added jserv special attributes to snoop.jsp 18 April 2000 Mark Wielaard - Work around for bug in the Adaptive ClassLoader from Apache JServ 1.1 that failed to load resources from jar files in the repository. This prevented the JSP localised ResourceBundle to load. Adapted JspConfig.getLocalizedMsg() to fallback to a new JspMsgBundle class that contains the same text as JspMsgRes.properties (the english version). 16 April 2000 Mark Wielaard - Add new versions of servlet jars which contain a fix for HttpUtil.parsePostData() - Thanks to Joachim Achtzehnter - Add a public static final String VERSION = "1.0.1"; that can be referenced from all places that want to know the version (JspServlet and ServletContextWrapper) 14 April 2000 Carsten Heyl - debugging: print compiler command on startup 6 April 2000 Wes Biggs - Happy days, jsp:useBean works again (broken on 5 April). 5 April 2000 Wes Biggs - Fix from Mike Hardy to not use tail recursion in Emitter. 04 April 2000 Noel J. Bergman - Fixed JspServlet.destroy(). It failed to invoke destroy() on page servlets because the page table was improperly iterated. 09 March 2000 Carsten Heyl (alph) - fixed page cache if useHostname is true (thanks to Van Marshall) 02 March 2000 Noel J. Bergman - Fixed defect from merging Eugen Kulshov's code, which cased JspServlet to call each page twice. 28 February 2000 Noel J. Bergman - Merged Eugen Kuleshov's code for language negotiation. EXPERIMENTAL. 25 February 2000 Noel J. Bergman - Fixed path construction in JspParserContext. If file separator is '\', must use '/' or the URL parser will break later. - Fixed JspParser handling of charset encodings. - Added more debug statements to JspParser (used in tracking relative path issues). 12 February 2000 Noel J. Bergman - Modified JspServlet.getResourceImpl() to use "org.apache.jserv.DOCUMENT_ROOT" when running under Apache + JServ. - Modified parameter list for dynamic invoke of getX methods in HttpJspPageUtil.java. 20 January 2000 Noel J. Bergman - Added keepJava initArg (default is false) to preserve intermediate .java files. - Modified JspServlet.java to remove intermediate .java files unless keepJava=true. 17 January 2000 Noel J. Bergman - Changed JavaEmitter so that pages catch Throwable, not Exception, as per JSP 1.1 specification 2.7.1. 15 January 2000 Noel J. Bergman - Added values to JspNode class. - Changed CombinedEnumeration constructor to public, not private. - Changed doc\testsuite\main.jsp to force ISO 8859-1 encoding 12 December 1999 Wes Biggs - Fix parsing of multiple '<' characters in a row (thanks to Miles Chaston). - Correctly pass parameters when forwarding/including under JSDK 2.0. 29 November 1999 Wes Biggs - workaround for Process.waitFor for NT, thanks to Herve' Boutemy. 23 November 1999 Carsten Heyl - try a Lotus Domino Fix 21 Novemver 1999 Carsten Heyl - removed pagebase from INSTALL.apache - check file system case sensitivity in compat mode only 20 November 1999 Wes Biggs - Remove ".." from path in PageContextImpl.findURI (helps Jigsaw) - Upgraded servlet JARs from classpathx-servlet-19991120 - Corrected note on multivalued parameter tests in testsuite; restarted results section. 19 November 1999 Wes Biggs - Fixes to path computation in mapped directories. - Added some more javadoc. - Moved JSDK20 include/forward code to RequestDispatcherImpl. - Added getDebug() and getPathDebug() methods to JspServlet. - Reorganized service/xservice to better accommodate the needs of RequestDispatcherImpl. - Added URL of the JSP being compiled to CompileException 18 November 1999 Noel J. Bergman - JspServlet/JspParserContext. Moved case sensitivity detection code to JspServlet, where we have access to the scratch directory path, and added set/get methods to JspParserContext. 17 November 1999 Noel J. Bergman - JspParserContext. Added logic to detect case insensitive file systems. This supports the work that Carsten has been doing to eliminate PAGEBASE, and fixes the problem that /Mypage.jsp would fail while /mypage.jsp would work. 16 November 1999 Wes Biggs - Changed JspParser to better support static includes in mapped directories. (for example, ~wes == /home/wes/public_html) - Added usehostname parameter to append hostname and port to generated filename. If combined with usepackages, the hostname and port will be a package/directory. - Fixed packaging algorithm to work correctly on Win32, etc. - Changed timestamp detection to use maximum timestamp of dependencies instead of System.currentTimeMillis(). Should be more accurate when used in a multi-server environment where the clock of the servlet engine is not in sync with the clock of the JSP filesystem. - Fixed bug in checkclass code when checking compilerVersion. 14 November 1999 Carsten Heyl - check if scratchdir is writable and provide useful error message 13 November 1999 Carsten Heyl - JspServlet: cleanup of doInclude/doForward path issues - JspParserContext: (hopefully) fixed path matching for windows - HttpServletRequestWrapper: fixed getPathTranslated() for Windows, uses JspParserContext.getRealPath() now - This should remove need for pagebase on jserv! 11 November 1999 Carsten Heyl - undid latest CHANGE from Noel. Breaks Apache JServ 1.0 - take a look at envdb.txt (Noel: can you add OS/2 data) and you would have seen what will break - if you want a fix for a specific engine which does not support what we currently have: detect that engine and just change behaviour for that engine (e.g. hasBrokenXXX or ignoreXXX) 10 November 1999 Noel J. Bergman - JspServlet: Fixed JspServlet.requestToJspURI to call getServletPath() first. 10 November 1999 Carsten Heyl - JspNode: added object type attributes - JspParser: use object type attribute to store list of defined id's for duplicate id detection - JspParser: replaced System.err with log() - my GIF generating example is back (works now without Writer()) - removed need for pagebase on jserv (needs testing on windows!!!) 9 November 1999 Carsten Heyl - fixed latest fixes - use $(MAKE) in Makefiles - fixed INSTALL.apache 8 November 1999 Noel J. Bergman - Fixed defect in JspServlet.process() where the JSP source file might not be closed in the event of an error. 7 November 1999 Wes Biggs - Added support for jsp:param tag within jsp:include, jsp:forward. - Changed doForward() to always wrap request, fixed wrappers and wrapper methods to work with forward/include params. 6 November 1999 Carsten Heyl - tested on vqserver 1.9.23, still enough path bugs ... - removed need for pagebase on vqserver - you MUST remove pagebase from your servlet args! - fixed gnujsp for vqserver - using vqservers authors INSTALL now 4 November 1999 Wes Biggs - Use getPathTranslated() first in getResourceImpl(). Fixes URIs mapped by web server (e.g. ~user) - Fixed jsp_precompile to conform to JSP 1.1PR2 spec. - Detect jsp_precompile via query string, not getParameter. Allows input stream/reader access under certain conditions. 4 November 1999 Carsten Heyl - Added StringQuotesTokenizer from Gavin Porter. Now our friends from the BG-Universe may use pathes like "c:\Apache Files\" ... (sorry for taking so long ...) - Added some notes about Windows installation to INSTALL.apache 1 November 1999 Carsten Heyl - JspServlet/docs: make full environment/request information if pathdebug=true, mention pathdebug in install.html - started env.db containing information about servlet engines/ runtime environments 29 October 1999 Carsten Heyl - JavaEmitter: avoid extra getServletConfig() call in generated code - Testsuite: minor fixes - INSTALL.apache: added notes about wrapper/repository decision (submitted by "Simon Waterhouse (UK)" ) - INSTALL.netware5 added 28 October 1999 Wes Biggs - Add Hendrik Schreiber's change to PageContextImpl.findURI() to support JSDK 2.2-style includes. - Synchronize access to JSPs that implement SingleThreadModel. - Fix handling of jsp:setProperty property="*" with multivalued params. - Use GnuJspPage as an implemented interface on every generated servlet. Fixes the problem of having to extend HttpJspPageImpl to get reloading behavior. HttpJspPageImpl, JspServlet and JavaEmitter were modified to support this. - To test this feature, added test/TestNonHttpJspPageImpl.java and an entry in the testsuite. 27 October 1999 Carsten Heyl - JspConfig: add message number to output if MissingResourceException - JavaEmitter: use JspWriter.NO_BUFFER/JspWriter.DEFAULT_BUFFER in generated code - JspWriterImpl: use JspWriter.NO_BUFFER/JspWriter.DEFAULT_BUFFER - Testsuite: fixed HTML comment tests, new (failing) array tests, working on TODO... (the 2 non "*" array tests work for me on jserv 1.1b3) - JspServlet/JspParser: cleaned up use of usePageBase/pageBase 26 October 1999 Wes Biggs - Fixed NullPointerException in JspServlet.destroy() - Added INSTALL.webapp, thanks to Peter Rossbach 24 October 1999 Wes Biggs - Removed special consideration for HTML comments. - To match JSP 1.1PR2, default imports are now ONLY javax.servlet.*, javax.servlet.jsp.* and javax.servlet.http.*. java.io.IOException is no longer specifically imported (this may break some pages). 21 October 1999 Noel J. Bergman - Fix JspServlet.getResourceImpl() to ensure compatibility with case sensitive URIs. New version is also faster. 20 October 1999 Wes Biggs - Fix to JspServlet.getResourceImpl(), fixes static include dependencies. Please test on other platforms. (vqServer, Mac...) - Simplified some logic in JspServlet by immediately wrapping ServletConfig if needed. ServletConfigWrapper handles creation of ServletContextWrapper. - Minor documentation fixes (GJT URL, classpathx-servlet URL) GNUJSP 1.0.0 (18 October 1999) ------------------------------ 17 October 1999 Wes Biggs - Cleanup for release. 16 October 1999 Wes Biggs - Upgraded servlet JARs to classpathx-servlet-19991015 + fix. - Added COPYING.LIB and info on servlet classes. - Updated some documentation. - Changed jsdk20/*20.java class names to not have duplicate "20". 15 October 1999 Wes Biggs - Update: Really fixed String[] handling. Still doesn't work with JServ. - Fix handling of String[] properties and jsp:setProperty when request has multiple values for parameter. NOTE: JServ 1.0 has a bug so this doesn't work under JServ. Need to check 1.1beta. 14 October 1999 Wes Biggs - Bug fixes from Alex Cruikshank: * Fix problem when final scriptlet of page ends in comment * Better error reporting and handling of name/value pairs 13 October 1999 Carsten Heyl - examples: fixed image.jsp imports, added install notes - doc: cleanup of INSTALL.apache, now uses servlet-2.0-plus.jar instead of servlet.jar 12 October 1999 Carsten Heyl - JspParser: avoid text chunks beyond 32000 bytes - testsuite: minor fixes/support localization GNUJSP - german translation finished 10 October 1999 Carsten Heyl - JavaEmitter: generate "import java.io.IOException" instead of "import java.io.*". Improves speed and reduced probability of conflicts - added support for calling servlets via jsp:include/jsp:forward on jsdk 2.0. - RequestDispatcherImpl: cleanup, removed check for .jsp - Testsuite: fixed bugs found by Danno Ferrin - JspParser: 2.13.2.1 only jsp:useBean can define elements and definition must appear before jsp:setProperty element - Testsuite: fixed bugs found by above check... - JspParser: fixed unitialized JspURL bug if using compiler version info - JspParser: optimization: don't add textchung if string is empty - JspServlet: throw FileNotFoundException when HttpInclude fails - Localization support finished. - German localization + testsuite support next days 9 October 1999 Wes Biggs - Changed _gnujsp*() functions to non-static; use reflection when required to find info. Added check for compiler version. - Added classpathx-servlet jars to lib directory under docs in CVS. One for JSDK2.0 engines, one for JSDK2.1 engines. These are drop-in replacements for Sun's stuff released under the LGPL. Note: We need to add instructions to install file. I tested servlet-2.0-plus.jar with Apache JServ. - ParseException: took out annoying stderr output. - Minor fix to testsuite to handle contentTypes with or without whitespace. - Cosmetic enhancements to install.html. - Cleanup of TODO. 7 October 1999 Wes Biggs - Fixed HTML Comment parsing error with ---> 6 October 1999 Carsten Heyl - JSP10Servlet: removed some System.err.println() - JspConfig: slightly changed - fixed testsuite bean package names - fixed docs (second try) 6 October 1999 Wes Biggs - Changed JSP10Servlet to JspServlet - Changed JSP10ClassLoader to JspClassLoader - Fixed references accordingly. Updated docs. 6 October 1999 Noel J. Bergman - Changed package names to org.gjt.jsp.* in coordination with the CVS reorganization. - Fixed exception handing in JspConfig.getLocalizedMsg() 6 October 1999 Carsten Heyl - new debug option: pathdebug=false/true - PageContextImpl: localized, error message cleanup - Emitter: localized 5 October 1999 Wes Biggs - Added support for XML-style syntax: - Implemented Carsten's suggestion for readNoEOF() method. - General parser cleanup and tuneup. 5 October 1999 Noel J. Bergman - Added support for per session exception reporting, with a user configurable global default. The current default value is set to TRUE, so all exceptions will be reported to the user agent. To change the default setting globally, set showExceptions to "true" or "false" in the zone's initArg for the servlet. To change the value for a given session, set a session attribute with the name "org.gjt.jsp.showExceptions" to Boolean.TRUE or Boolean.FALSE. The session attribute, if present, supercedes the servlet default. The use of an Error Page is not effected by this change. 5 October 1999 Carsten Heyl - JSP10Servlet: added missing close of java source file stream (thanks to "Nick Emery" ) - JSP10Servlet/JSP10ClassLoader: use subdirs/packages for generated java/class files (initaregs: usePackages=true) Due to the 30 character limit this is a must for macs. (Big thanks to "Nick Emery" !) - install.html is changed accordingly - added Pauls Makefile(s) 4 October 1999 Carsten Heyl - HttpJspPageUtil: localization support, parameter check added - some include fixes for vqserver - some minor FIXME's done - checked against jswdk 1.0 4 October 1999 Noel J. Bergman - Changed JavaEmitter to use "Throwable" instead of "Exception" for the exception implicit variable, as per section 2.8 of the JSP 1.0 Specification. - Changed JavaEmitter to initialize the full set of implicit variables defined in section 2.8 of the JSP 1.0 Specification. - Removed the page and application data members from HttpJspPageImpl, as per JSP 1.0 specification. They are now local variables in the generated jspService method. - Hide the config member variable in HttpJspPageImplpage, as per JSP 1.0 specification. A local config variable is in the generated jspService method. - Changed PageContextImpl.initialize() to setup the attributes defined in the JSP 1.0 PageContext.Java interface reference. The JSP 1.1 specification for PageContex.pushBody()/popBody() appears to suggest that these attributes are mandatory, even though nothing else in the written specification defines them (unless you consider the PageContext interface to be a valid part of the written specification). - Changed JSP10Servlet to use the current "file.encoding" when calling the built-in compiler, if there is no encoding specified. This resolves a problem with at least some versions of sun.tools.javac.Main where the -encoding parameter (present, though undocumented) fails to default to the system encoding, resulting in I/O exceptions when it wants to display errors. 3 October 1999 Wes Biggs - Added support for "denyuri" parameter (replaces "checkuri", which wasn't implemented). - Moved all output generation on parse exception to ParseException. - Replaced INSTALL with much-updated install.html. 3 October 1999 Carsten Heyl - error messages while parsing or compiling use line numbers of jsp file now - added position information to lots of exceptions - Emitter/JavaEmitter: introduced emitPrintExprCall/emitScriptlet (using direct w.write() is java specific) - Emitter: added JspNode parameter to most methods - JavaEmitter: use JspNode Parameter for position reporting, use localized messages - JspParser: use localized messages 2 October 1999 Wes Biggs - Simplified JspConfig; default locale is JVM default. - Added getPageAttribute and setPageAttribute to JspNode so page directives can go inside nested useBeans, etc. - Added check for unknown page directive attributes, which showed that we were using "autoflush" instead of "autoFlush" in a couple of the testsuite files (fixed). - Other changes to pass testsuite. Marked a couple of tests UNKNOWN because the spec refers to a nonexistent Character.valueOf(String) function. I think our implementation is correct, but perhaps not strictly I18N compliant. - Added support for precompilation (jsp_precompile) protocol. 29 September 1999 Carsten Heyl - JSP10Servlet: fixed complicated jsp:forward/include dir bug - JSP10Servlet: allow jsp:include for other servlets and HTML-Pages via HTTP-Get - JspParser: normalize URL used for include directive 29 September 1999 Carsten Heyl - close StackedReader after parsing 28 September 1999 Carsten Heyl - Detect Macintosh "Rhapsody" and use pageBase in that case - proposal for Localization 27 September 1999 Carsten Heyl - JavaEmitter: fixed compile time error (JDK 2.0?, Needs a good fix!) - JavaEmitter: catch ClassNotFoundException and throw InstantiationException with better error message - HttpJspPageImpl: moved non object stuff to HttpJspPageUtil (This is needed for page extends directive without extending HttpJspPageImpl.) - JavaEmitter: generate code to use HttpJspPageUtil - JavaEmitter: properly ignore jsp:useBean body if "type" attribute only - jsp:getProperty: throw meaningful exception if bean is null - jsp:setProperty: throw exception if conversion from string is not possible for property - Wes: what about moving these to jspService()? /* Implicit page-scope variables */ protected Object page; protected ServletConfig config; protected ServletContext application; I didn't find in the spec that they should be accessible from methods. I think jswdk 1.0 defines them in jspservice. That would further strip down HttpJspPageImpl. 26 September 1999 Wes Biggs - Only do _gnujspDeps and _gnujspTimestamp stuff if page extends our HttpJspPageImpl - Moved check for escaping request-time attributes to inlineAttribute() in JavaEmitter instead of JspParser. Thanks for pointing this out Carsten. - Only call inlineAttribute for attributes which are allowed to have request-time values (fixing a bug I introduced...) - Allow setProperty on primitives. - Fixes to some tests. 25 September 1999 Wes Biggs - compile time and deps are now part of the generated servlet; if you set the init parameter "checkclass=true", you can avoid recompiling each page each time the JSP engine starts up. Note that this operates independently of "checkdependencies". 23 September 1999 Wes Biggs - added INSTALL.jigsaw 23 September Carsten Heyl - added jar target to Makefile - JspParser: fixed attribute parsing of %> and <% (not complete, please see comment in JspParser!) - fixed buffer tests - JSP10Servlet: use BufferedWriter for Emitter - JavaEmitter: generate code for test if bean could be instantiated - JspParser/JavaEmitter: moved code for type/class decision - JspParser: check for duplicate bean ids added 23 September 1999 Carsten Heyl - synchronized access to attrs in ServletContextWrapper - properly encode HTML if printing exceptions to out - removed code in JavaEmitter setProperty(value!=null) checking for "" - check for value=="" in setProperty(novalue+noparam) - changed code to use one ServletContextWrapper for all pages (=application scope) - check for value=="" in setProperty(property=*) 22 September 1999 Carsten Heyl - more tests, test cleanup (jsp:setProperty/jsp:getProperty, jsp:include, jsp:forward, #: 217) - changed JavaEmitter to use JspWriter.clearBuffer() (see comment) - fixed Makefile for jsdk20 subpackage - updated main.jsp bug count 21 September 1999 Wes Biggs - fixed include directive multiple relative includes (problem was in StackedReader) - moved wrapper classes to jsdk20 subpackage - cleaned up README a little 21 September 1999 Carsten Heyl - added pagebase to INSTALL.apache (Happy, uwe? :-) 20 September 1999 Carsten Heyl - more tests (jsp:useBean, total #: 171), few more bugs - small test fixes (getting closer!) - minor cleanup of CHANGES - maybe we can release a feature complete 1.0 this month? (MINUS taglib, MINUS plugin) - please stay away from non tXXX tests for now, cleaning up ... - proposal: make package org.gjt.jsp10.jsdk20.XXX for compat stuff? 18 September 1999 Wes Biggs - Serge's changes for charset and -encoding switch - Fix to request-time attribute evaluation 17 September 1999 (California Time...) Wes Biggs - Include directive now works on JServ if you set pagebase. - Changed System.err traces to be if (debug) and use log(). - Implemented page directive info to generate getServletInfo(). I have not looked at the disabled test yet... 18 September 1999 Carsten Heyl - more tests (total #: 154), more bugs 17 September 1999 Carsten Heyl - jsp:forward support of jsp pages for jsdk 2.0 added - some changes on exception reporting - some more tests and test fixes 16 September 1999 Carsten Heyl - jsp:include support for jsdk 2.0 added 15 September 1999 Wes Biggs - Rewrote JavaEmitter.inlineAttribute() to properly escape quotes - Fixed to a number of tests, run the suite and see! - Allow %\> as escape sequence in scriptlet or expression - Fixed parsing of HTML comments to only allow expressions - Implemented page extends test. - changed file:// + name to file: + name for Win32 compatibility. 15 September 1999 Carsten Heyl - vqserver changes (not completed yet) - Makefile changed for additional files - throw exception on unexpected null value in include directive that need to be investigated further - testsuite sorts bugs according to severity now - tessuite fixed against jswdk 1.0 now 15 September 1999 Carsten Heyl - changed Makefile for linux use (please check if compatible!) - added INSTALL.apache - added INSTALL.vqserver 14 September 1999 Paul Siegmann - added a set of Makefiles 14 September 1999 Carsten Heyl - cleanup of testsuite (checking against jswdk 1.0 not complete yet) - added some more tests to keep Wes busy :-) 13 September 1999 Wes Biggs - Reintegrated Carsten's changes that were lost. Sorry! Fixed various things the testsuite pointed out. 12 September 1999 Wes Biggs - Change to new AST-style parser. Lots of changes. Broke a few things but parser is much improved. Will work on more tomorrow (checking in at midnight local time). 11 September 1999 Wes Biggs - Rewrote StackedReader to use LineNumberedReader and work more efficiently. - Added a ParseException constructor that takes a StackedReader, from which it deduces the line number and source filename. 10 September 1999 Wes Biggs - Fixed bug in JavaEmitter.inlineAttribute() handling empty strings - Changed use of Sun compiler to be done through reflection, so class needn't be present when compiling. - Added wrapper classes for ServletConfig, ServletContext, HttpServletRequest and RequestDispatcher when using JSDK 2.0. Thanks to Serge Nekoval for much of this code. When a HttpJspPageImpl is initialized, it dynamically creates the wrappers if needed. Note that this means you need the javax.servlet.RequestDispatcher class in the classpath, EVEN IF YOU ARE USING A JSDK 2.0 ENGINE. You can rip it out of the JSWDK 1.0 jar, or the JSDK 2.1 jar, or wait for the public release of Classpath's GPLed version. - Fixed detection of JSDK 2.0 in PageContextImpl. It's now done in a static initializer. 09/09/1999 Noel J. Bergman [All changes apply to PageContextImpl.java] - Added ApplContext adapter class to support Application scope under JSDK 2.0. The adapter class used with JSDK 2.1 should be inlined. Future work can involve setting up an ApplContext object per ServletContext instead of global to the class (and therefore the classloader). - Changed detection of JSDK 2.0 so that it is done ONCE and is available to other PageContextImpl methods. - Added (temporary) exception handing to present stack traces generated in setAttribute/getAttribute to the client. These have been invaluable when tracking down Class Not Found and Method Not Found errors. We should move this code to a more central and generic location so that ALL runtime errors that we can detect in a JSP servlet are eligible to be presented to the client (a servlet initarg can be used to turn this option on or off). 09 September 1999 Carsten Heyl - changes for vqserver 1.9.17 (PathInfo again + flush needed) - added some debug output ig debug is true - added some repository checks - synchronized access to pages in JSPServlet.service() - minor fix to main.jsp 09 September 1999 Carsten Heyl - Syntax error fixed! sorry ! 09 September 1999 Peter Rossbach - changed url generation for relative urls (added by Carsten Heyl) 09 September 1999 Carsten Heyl - some more tests - fixed case of errorPage==null in JavaEmitter - fix code generation bugs for !isThreadSafe in JavaEmitter - added write(String) to JspWriter (can't believe that!) (That should fix some forward bugs. Thanks jo! for Exception!) (Check above before committing!) - 2.13.5 "A jsp:forward effectively terminates the execution of the current page." done. - fixed parsing of buffer size and buffer=none - allow bufferSize==0 in JspWriterImpl - fixed code generation bug for class==null and beanName==null 09 September 1999 Carsten Heyl - much more tests (much more needed ...) 07 September 1999 Carsten Heyl - more testsuite tests - activated getProperty(name=...,property=...) - more parameter checks in JavaEmitter - check for setProperty(value="") - minor additions to TODO - restructured testsuite main.jsp - fixed EOF handling in JSP10Compiler - added Emitter()-methods for Scriptlet (empty in current implementation) (Carsten Heyl) *) Changed Emitter to an abstract class -- work in progress. (Wes Biggs) *) Moved responsibility for standard imports to JavaEmitter. (Wes Biggs) *) Fixed bug in parsing JSP comments. (Wes Biggs) *) Encoding fixes for mime-type and charset. (Serge Nekoval, Wes Biggs) *) Minor parser change: replaced hard coded code generation by call to emitter (Carsten Heyl, test for cvs ...) *) Started a TODO file. (Wes Biggs, Carsten Heyl) *) Added CompileException to denote errors during compilation. Friendlier reporting of compile problems vs. parse problems. (Wes Biggs) *) Much more extensive reporting of parsing problems. (Wes Biggs, Carsten Heyl) *) Changes for compatibility with Servlet API 2.1 specification of javax.servlet.jsp.*, as implemented by the JSWDK1.0 release. Note this means you can't keep using the jsp.jar with the incorrect method signatures. (Wes Biggs) *) Removed obsolete JSPException class, created new ParseException. Changed JSP10Compiler to throw these instead of just IOExceptions. (Wes Biggs) *) Removed obsolete 0.9.x documentation from 1.0 tree. (Wes Biggs) *) Split classes into separate files. (Wes Biggs) *) Renamed Page class to JSP10CompilerPage. (Wes Biggs) *) Added testsuite to doc directory. (Carsten Heyl) GNUJSP 1.0b6 (8 September, 1999) -------------------------------- *) Jigsaw compatibility fix. (Wes Biggs) *) getProperty/setProperty fixes. (Noel Bergman) GNUJSP 1.0b5 (31 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) Argument to getProperty wasn't being properly quoted and the result of the method call wasn't actually printed. *) This morning's release contained another typo - setAttributeWithScope should have been setAttributeInScope. GNUJSP 1.0b4 (31 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) Woops. A typo in code generated for useBean. In any case, remember that you must either use some stuff or ! GNUJSP 1.0b3 (30 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) A bean created through jsp:useBean will now actually be stored in the session propertly. *) The typo in the generated code for jsp:setProperty with property="*" is fixed. Also, the enumeration is over the parameters, as the spec states, not over the bean's properties. *) setProperty on primitive types should work again. GNUJSP 1.0b2 (24 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) Separated out the 0.9 and 1.0 installation instructions into different INSTALL files. *) Renamed lib/gnujsp1.0.jar to lib/gnujsp10.jar and lib/gnujsp0.9.jar to lib/gnujsp09.jar, since Windows users started complaining of the extra dots. *) Fix bug where useBean compiled to garbage if you didn't supply a type attribute. (Thanks to everyone who pointed this out and sent in patches.) *) Delay the call to request.getWriter () until actually needed *) Use pageBase when doing compile-time includes. *) There were some problems with implicit variables: -- Ensure that the session object exists by default, unless turned off through the session attribute of the page directive. (Carsten Heyl) -- Add the implicit application object. (James Cooper) -- Add the implicit ServletConfig config object. (Yaroslav Faybishenko) GNUJSP 1.0b1 (20 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) Peter Rossbach pointed out that scriptlets with no spaces between % and code, such as <%}%>, were not detected as scriptlets. Fixed. *) Heinrich Abele pointed out that unnamed directives caused the parser to enter an infinite loop. Added his fix, since this would be a common mistake for those migrating from 0.92 jsp files to 1.0. *) Heinrich suggested to add a "jserv" servlet configuration property, which would tell JSP10Servlet that it is running in the Apache+JServ environment, so that it can do a jserv-specific bug workaround. So don't forget to set this property to some value if you are using jserv. If not, don't set it. GNUJSP 1.0a4 (19 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) Ugh. Fix the bug in Hendrik's fix. *) Teresa Lam's fix for NullPtrExc during dynamic include tag. *) Teresa's suggestion to not display exceptions during exception handling, but display the original exception. *) On advice of James Walters, make exception variable if isErrorPage=true for the current page. I was expecting the programmer to call pageContext.getException (). GNUJSP 1.0a3 (18 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) Comment tags are now parsed correctly. *) Corrected translation of the errorPage attritube of of the page directive. *) All output statements are generated to contain out.print, rather than out.println. *) Incorporated Hendrik Schreiber's fix for a bug in mapping of jsp servlet's request to actual jsp file. If the name in the request had escaped characters, it was not being decoded. *) Also, on advice of Hendrik, make the scratch directory if it doesn't exist. GNUJSP 1.0a2 (17 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) If you use the <%@ include file="..." %> directive to specify a non-absolute filename, then the JSP compiler will look for it in the same directory as the file currently being compiled. (It used to require absolute filenames.) *) A loose backslash within html code is now properly escaped. *) You can now do , but remember to escape all quotes in expression, just as you would escape everything within a string! Same goes for the jsp:forward tag's page attribute and for jsp:setProperty tag's value attribute. GNUJSP 1.0a1 (16 August, 1999) (Yaroslav Faybishenko) ------------------------------ *) Fixed package name in INSTALL file. It used to say org.gjt.jsp.JSP10Servlet, rather than org.gjt.jsp10.JSP10Servlet. *) Fixed handling of page directive with import attribute containing comma-separated package names. *) Added examples1.0/ subdirectory with date.jsp and snoop.jsp that use the 1.0 syntax. *) Correctly show a 404 if a JSP file was not found. GNUJSP 1.0a (15 August, 1999) (Yaroslav Faybishenko) ----------------------------- *) New compiler for the 1.0 spec