Java-Apache Project Software Changes

Names in parentheses at the top of each revision are the maintainers who
worked in the source repository.  Remember to credit contributors on the
comment lines if you got patches from someone else!
------------------------------------------------------------------------------

JServ 0.9.12 - Jan 18, 1998
(Ed Korthof, James Cooper, the Java-Apache group)
- File structure changed around.  Source now included in .jar files
- Modified distribution to include jar files with tracing compiled on and off
- Change GID to match Apache's group as configured
- Avoid endless spawn/die cycles
- Removal of 'authorization' scheme
- Implemented thread pools (experimental. turned off by default)
- Implemented load balancing/fault tolerance (experimental)
- Changed all calls to JServDebug so that they're compiled out completely if
  JServDebug.TRACING_COMPILED_IN is false
- Changed socket implementation between mod_jserv and VM to send headers in
  a single TCP packet if possible
- Added configurable JServSessionId cookie lifetimes (ie. optional persistant
  cookie)
- Allow cookie expire times larger than 25 days
- Added configurable domain mask for JServSessionId cookie
- Added session expiration (call invalidate() on inactive sessions)
- Replaced the scripts in manual/ with a simplified single file version
- Added some 'how to' documentation in docs/
- Handling initArgs properties w/ spaces
- Provide getResourceAsString for aliases as well
- The Perl module Apache::Servlet has been removed as it is currently not
  supported (due to changes in the protocol)

JServ 0.9.11 - May 10, 1998
(Ian Kluft, Ross Golder, Vincent Partington, Roger Zeng, Jon Stevens, Brian Jonnes, Ed Korthof, Tim Williams, Stefano Mazzocchi)
- Added INSTALL, a simple walkthrough for setting up JServ (EK)
- Moved jserv.autoreload.file, jserv.autoreload.classes, jserv.init.timeout,
  and jserv.destroy.timeout to per-virtual host configuration file (EK)
- Allow turning tracing on or off in the .properties file (for automatic
  apache, this directive is required for this: ServletGeneralProperties) (EK)
- Added ServletManagerHostName, an alias corresponding to the name in
  jserv.hosts list (EK)
- Replaced ServletHost with ServletVMHost -- ServletHost is deprecated (EK)
- Some improvements to start-jserv in the manual directory (EK)
- Changes to JServClassLoader to improve debuging (EK)
- Changes to JServClassLoader to try the system classloader frist (Jim Heintz)
- Added doc/ModeOfOperation file (JS, BJ)
- Added simple timeout parameter to prevent 'hostile servlet' problem. (RG)
- installation instructions in README now differentiate Apache 1.2/1.3 (IK)
- only pass TZ environment variable when it's there (VP)
- expanded notes in README about use of servclasses.zip (IK)
- fix null pointer in JServConnection on empty POST request (RG)
- allow ServletEnvironment directive to make assignments (VP)
- change JServSSI's SGML parser to ignore comments (James Cook)
- major changes to JServSSI: SGML parser, better documentation, etc. (TW)
- fixed bugs with servlet init() and destroy() methods in JServSSI (RZ)
- improvements in Makefile (TW)
- fixed incorrect free() call in mod_jserv.c (Jason Venner)
- prevent NegativeSizeArrayException in JServConnection (RG)
- print error message when Servlet initialization fails (RG)
- avoid annoying and incorrect usage message (RG, VP)

JServ 0.9.10 - February 13, 1998
(Ed Korthof, Ian Kluft, Jon Stevens, Francis J. Lacoste, Hanan Herzog,
 Stefano Mazzocchi)
- updated Apache::Servlet perl module to catch up with protocol tweaks (IK)
- Fixed Makefile to install JavaDoc files for either JDK 1.1 or 1.2 (IK)
- Added properties to control autoreload behavior.
- Added a workaround for SimpleDateFormat bug. (FLJ)
- Added simple timeout on write lock before destroying servlet. (FLJ)
- Fixed depreciated error in JServSSI.java (JSS)
- Fixed some javadoc compilation errors (JSS)
- Closed zip file to prevent leaking file descriptors. (Hanan Herzog).
- implemented session handling and jsdk 1.1 stuff (FLJ)
- bundled Sun's 1.1 jsdk.
- added missing javadoc-generated files to the Makefile (IK)
- added sample EnvDumpServlet (IK)
- getRequestURI() uses REQUEST_URI if available (Vincent Partington)
- GATEWAY_INTERFACE now reports JServ version instead of CGI version (IK)
- Added pseudo-attribute "attribute_names" (IK, Vincent Partington)
- Fixed attribute prefixes to be "org.apache.jserv" to match the classes
  (Vincent Partington)
- Fixed strtok problem in readConfigByStdin()
- Renamed SSIServlet.java to JServSSI.java (JSS)
- Added Apache::Servlet Perl5 module so mod_perl can call Java Servlets (IK)
- Remove newlines in Servlet-Logs lines (logging data) sent to Apache (SM)
- Changed LIFO order to FIFO for logging data (SM)
- Remove newlines from headers in general

JServ 0.9.9 - January 20, 1998
(Francis J Lacoste, Martin Pool, Jon Stevens, Ed Korthof, Ian Kluft)
- Skipped 0.9.8 version because of the number of new changes as well as 
  confusion over 0.9.8 and 0.9.8-dev naming conventions (JSS)
- Added a sample configuration to the README file (IK)
- Modified Makefile to create subdirectories as needed (IK)
- Added javadoc comments to ServletRequest, HttpServletRequest,
  ServletResponse, HttpServletResponse, ServletConfig, and 
  ServletContext
- Tracing of several parts of JServ can be turn on or off using a bitmask
  configured via a system property.
- JServServletManager now has synchronized methods, so synchronization
  doesn't need to be done on the Hashtable in JServContext
- JServServletManager now restarts itself when its property file is changed.
- Correct behavior in a few methods to match specification more closely :
  getIntHeader, getDateHeader, getServlet.
- Add a top-level Makefile that makes and installs code and documentation.
- Put back classes directory and added doc.
- Can escape = and , in init parameters.
- Misc performance improvements
- Remove creation of Integer in readHexLine(). (Adam Messinger)
- Fix some documentation in JServConnection. (Martin Pool) 
- Allow Java VM to reside on a separate machine from the webserver
- Changed restarts to use sockets rather than STDIN for reliability
- Fixed a bug in the automatic mode initialization (FJL)
- Turned tracing off by default in JServClassLoader.java (JSS)
- Changed from DataInputStream.readLine() to BufferedReader.readLine() 
  with a bufsize of 1 in JServHandler.java to avoid depreciated code 
  warning (JSS)
- Added the actual Module line to the README that should be copied into 
  the Apache Configuration file (JSS)
- Fixed small typo on line 397 of mod_jserv.c (changed } to ]) (JSS)
- Fixed a bug in JServConnection.java where getAttribute() had a +1 
  wrongly inserted. Thanks to Svein Omdahl <sveint@link.no>. (JSS)
- Renamed TestClassLoader.java to ClassLoaderTest.java to be more clear (JSS)
- Changed javac path in Makefile to be more generic (JSS)
- Commented out the servlets.properties file examples to prevent possible 
  accidental misconfigurations (JSS)
- Removed duplicate examples where it made sense from the 
  servlets.properties file (JSS)
- Fixed a typo in the servlets.properties file (JSS)
- Fixed a typo in the README file (reault->result) (JSS)
- Removed classes directory (JSS)
- Moved classes from package apache.jserv to org.apache.jserv to comply
  with JLS.
- Fixed free() bug in manual/jserv.c
- Determine whether whether the URL scheme should be 'http' or 'https'
  by looking for the Stronghold environment variable 'SSL'.
- Servlets loaded from ServletAlias directive are loaded via a
  custom ClassLoader. 
- Classes loaded by the ClassLoader are reloaded whenever they are
  modified. 
- Servlets from different virtual host are loaded in different name space
  and cannot see each other.
- ServletProperties is now a virtual host directive.
- Loading of startup servlets is done in a different thread and after binding
  the socket to prevent two simultaneous JServ process to initialize servlets.
- Added a ServletBinaryArgument directive to pass additional command line
  arguments to the Java interpreter.
- Added servlets.default.initArgs property in the servlet properties file 
  that give init arguments available to all servlets in the virtual host.
- Init arguments for servlet invoked by class name are now specified in a 
  file named <servlet_classname>.initArgs.
- Added sample configurations files.
- Manual JServ is now configured by a property file to handle multiple
  virtual host.
- Manual JServ write its pid to a file.
- Added simple shell scripts to start/stop/restart manual JServ.
- Updated doc files to reflect recent changes.
- getDateHeader is now RFC2068 compliant and handles three date format. 
- Added <SERVLET></SERVLET> tag support in SSIServlet.java

JServ 0.9.7 - September 8, 1997
- Fixed some compiler warnings
- Correctly block signals when initializing, instead of ignoring them.
  This should prevent another race condition on startup or restart.

JServ 0.9.6 - August 28, 1997
- javax.servlet.ServletRequest.getAttribute("apache.jserv.<var>") returns
  a String with the contents of CGI environment variable <var>. e.g.
  getAttribute("apache.jserv.SERVER_SOFTWARE")
- Fixed problem with path info when using ServletAlias to point to a
  zip/jar file. (Orjan Reinholdsen)
- Added ServletEnvironment directive to pass arbitrary environment
  variables to Java.
- The jserv manual program now passes all environment variables to
  Java, not just PATH, CLASSPATH and TZ.
- Correctly allow virtual servers to use ServletAlias (Rhys Jones)
- Avoid a race condition in mod_jserv.c when receiving a signal.
- ServletRequest.getRealPath() works correctly.
- manual/jserv can now take -J arguments (after the first argument), which
  it will pass on to java.

JServ 0.9.5 - August 13, 1997
- Added "watcher" process to handle signals and allow graceful restart/
  termination of servlets
- New C program for use with manual mode (see manual/README)
- Moved Java classes and source to the classes directory
- Split Java source into several files instead of one
- Added Makefile to classes/apache/jserv
- Work around bug in the Linux JDK's java.net.Socket class

JServ 0.9.4 - August 7, 1997
- Default properties file changed to conf/servlets.properties
- Support for servlet aliases in servlets.properties
- Can now load servlets on startup (servlets.startup property)
- New ServletErrorLog directive can log System.err output from Java
- Exceptions and Errors caught from servlets will print a stack trace to
  to ServletErrorLog if active (or with -t switch in manual mode)

JServ 0.9.3 - July 31, 1997
- Fixed socket code so it will work with Linux (Jordan Mendelson)
- Added more secure auth string, ServletAuthExport directive (Ian Kluft)
- getServlets() now returns the correct object
- sendError() now closes the connection directly after sending the error

JServ 0.9.2 - July 30, 1997
- Added ServletManual directive and "-m" flag to JServHandler, to allow
  for manual starting/stopping of JServHandler.
- Put additional check into JServHandler to ensure that the request comes
  from the local host (127.0.0.1)
- Properly handle exceptions and errors generated by the servlet

JServ 0.9.1 - July 30, 1997
- Fixed so mod_jserv.c will work with Apache 1.2
- Made sendError(int) work correctly.

JServ 0.9 - July 29, 1997
- Initial version.

