
History of Changes
Changes are chronologically ordered from top (most recent) to bottom
(least recent)
Please read the document 
upgrading from 1.0 to 1.1
Apache JServ 1.1 - 14 January 2000
(Stefano "Tabs" Mazzocchi, Vadim Tkachenko, Jon "Plonk" Stevens, Henner Zeller, 
Michal Mosiewicz, Craig McClanahan, Jean-Luc Rochat, Ed Korthof, Pierpaolo "CVS" Fumagalli,
Sean Dowd, Stephane Carrie, Damian Fauth)
  - Fixed issues with JServSTMStore thanks to 
    Radu Greab. (JSS)
- Fixed Bug Id: mod_jserv/5126 Thanks
    to mdusseault@home.com. (JSS)
- Fixed Bug Id: mod_jserv/5266 Thanks
    to Peter Bryant. (JSS)
- Lots of fixes in the JServInputStream thanks to 
    Jon Smirl. This should fix issues with 
    POST data as well as file uploads.
- Fixed Bug Id: mod_jserv/5825 Thanks
    to Jon Smirl. (JSS)
- Fixed Bug Id: mod_jserv/5498 Thanks
    to Jon Smirl. (JSS)
- FEATURE: Since jserv assumes that resources could only reside in 
          directories, my servlets can't load files or images from jar files. With 
          the following patch (against jserv-1.0, but should apply cleanly against 
          1.1b1 except for some line number fuzz), the AdaptiveClassLoader looks 
          jar files, too.
          Hakan Tandogan
   
- FEATURE:
         I have made a modification to the Apache JServ source and I have added my
         own class "org.apache.java.io.SimpleFileFilter"
        
         What my modifications do is allow using wildcards when specifying
         repositories for a servlet zone.
         
         Example:
 repositories=/usr/local/servletzone1/*.jar,/usr/local/servletzone1
 
         adds all of the files with a .jar extension in the /usr/local/servletzone1 
         directory as well as the /usr/local/servletzone1 directory to the given 
         repository.
         
         This way, if a given user using a particular servlet zone has a complex 
         enough servlet, they can simply package their servlet up into a .jar file. 
         If the same user updates their servlet, they can create another .jar file 
         and upload it without having to restart the servlet engine.
         
         Mike Jennings 
   
- FEATURE: A little patch to allow for using "jserv-servlet" handler with
        apache's SetHandler command. So, now you can use following:
        
        ApJServMount * whatever
        #This sets a default engine configuration that is used
        by jserv-servlet handler, when it is called as a result
        of SetHandler
         
        
        SetHandler jserv-servlet
        
         
        I would call it a quick hack only, but hopefully some will find it
        very practicall. You are now free to decide what URL's are passed to
        servlet engine, and what are kept served by apache.
         
        Note that you may configure your tomcat to share a default context with
        apache, so apache will serve static files, while tomcat will do more
        inteligent jobs. (MM) 
- Fixed Bug Id: mod_jserv/5569 Thanks
    to josh larios. (JSS)
- removed confusing watchdog messages for people not usinng load-balaciing.
    was : [16/10/1999 22:01:42:011] (EMERGENCY) jserv_mmap: cant open (null) errno=14
    (Jean-Luc)
- jserv_utils.c: avoid memory leak by making sure not to create a pool and then
    fail to free it.  if logging is off, the pool won't be created at all,
    which is preferable.(EK)
- 
  
- Finally correct problems with requestURI. 
    It seems like the meaning of r->uri, r->unparsed_uri and things like 
    ap_unparse_uri_components is different in different versions of apache. 
    (MM)
- Fixed Bug Id: mod_jserv/5270 Thanks
    to Jonathan.Budar-Danoff. (JSS)
- Fixed Bug Id: mod_jserv/5534 Thanks
    to john chandy. (JSS)
- Fixed Bug Id: mod_jserv/5577 Thanks
    to jan koktan. (JSS)
- Fixed lots of issues with gcc -Wall turned on. (JSS)
- Fixed Bug Id: mod_jserv/5268 Thanks
    to Steve Drach. (JSS)
- Better HPUX support in the Makefiles for DSO. (JSS)
- Better FreeBSD support in the Makefiles for DSO. Thanks to 
    Ryan Morgan (JSS)
- Fixed Bug Id: mod_jserv/5295 Thanks
    to Dave Peterson. (JSS)
- Relative paths to the Apache src directory should now work properly. (JSS)
- Fixed Bug Id: mod_jserv/5320 Thanks
    to ypsilon@mindless.com. (JSS)
- Fixed Bug Id: mod_jserv/5436 Thanks
    to Jon Christiansen. (JSS)
- Fixed Bug Id: mod_jserv/5197 Thanks
    to erick rudeyak. (JSS)
- Added ability to specify -DEAPI in the configure script. This is needed for compiling 
    Apache JServ with servers that are using EAPI, such as SSL servers. (JSS)
- We require Apache 1.3.9 or higher (JSS)
- add security.allowedAddresses=DISABLED option. (use with care: allows all Apache 
    (not only yours) servers to connect to this JServ). (DF)
- Allow signal() to bind to the same IP @ than JServ. (SD)
- added 2 new fields in the ajpv12 protocol.: SSL_CLIENT_DN and SSL_CLIENT_IDN. 
    These changes are not compatible with previous versions of JServ. Thes fields are here 
    for ajpv11 compatibility, and may be not used in future versions. (JLR)
- Set ApJServMountCopy to "on" by default as described in the doc.(JLR)
- Fixed SEGV (load-balancing & Virtualhost). Thanks to S.Carrie.(JLR)
- Fixed Bug Id: mod_jserv/5216 
    added (back) the bindaddress=* option : allows JServ to listen to all IP addresses, still allowing it
    to listen to only one. The default is still to bind to "localhost". Thanks to Skip Carter. (JLR)
- Fixed Bug Id: mod_jserv/5267 
  Thanks to Steve Drach (JLR)
 
Apache JServ 1.1b3 - 25 October 1999
(Stefano "Tabs" Mazzocchi, Vadim Tkachenko, Jon "Plonk" Stevens, Henner Zeller, 
Michal Mosiewicz, Craig McClanahan, Jean-Luc Rochat, Bernie Bernstein, 
Ed Korthof, Pierpaolo "CVS" Fumagalli)
    - Added new make/install scripts for the Win32 distributions (PF)
- Fixed some bugs with make install not creating the directories 
    for the documentation properly (JSS)
- Added javadoc generation to the top level make file. You can re-build 
    the javadoc by typing "make javadoc" (JSS)
- Eliminated the need to have test(1) -nt(newer than)
    option supported by the default shell. Instead,find(1)now
    has to support the-neweroption, which seems to be there
    for all the platforms. (VT)
- Load balancing code cleanup. (JLR)
- Fixes for Win32 compiler errors. Thanks to 
    Ian Holsman for the help.
     (JLR) (PF) (JSS)
- Added JServInputStream.available() because JDK 1.2 InputStream 
    says that we should implement it ourselves. This should also be fixed in 
    ServletInputStream in the JSDK someday. Thanks to 
    mdusseault@home.com. (JSS)
- Really fixed the issue with requestUri behaviour. It should now work as  
    it did in 1.0. (MM)
- Fixed issue with the AdaptiveClassLoader and file URL's (SM)
- Fixed a bug where save-install.sh was not executable. (JSS)
- Fixed issue with ./conf/save-install.sh failing because it moved
    files instead of copying files. (JSS)
 
Apache JServ 1.1b2 - 8 October 1999
(Stefano "Duke" Mazzocchi, Vadim Tkachenko, Jon S. Stevens, Henner Zeller, 
Michal Mosiewicz, Craig McClanahan, Jean-Luc Rochat, Bernie Bernstein, 
Ed Korthof, Pierpaolo "Flux" Fumagalli)
  - Added new feature to the builtin status screens that allows you to view and modify the 
    the state of the shared memory file when using load balancing. (JLR)
- Fixed Bug Id: mod_jserv/5113 Thanks
    to Kazuhiro Kazama for the find and 
    fix. (SM)
- Fixed Bug Id: mod_jserv/5093 Thanks
    to Aart de Vries for the find and 
    fix. (JSS)
- Fixed Bug Id: mod_jserv/5092 Thanks
    to Aart de Vries for the find and 
    fix. (JSS)
- Added checks to make GNU make a required tool for installation. (JSS)
- Changes to make it easier for people to do RPM's (HZ)
- Updated load balancing documentation for 1.1 (JLR)
- Bug fixes for Win32 compilation. (PF) (MM)
- requestUri behaviour as in 1.0, i.e. returns req->unparsedUri. This should 
    fix issues with some servlets like Cocoon that depend on old behavior. (MM)
- Fixed Bug Id: mod_jserv/5098 Thanks
    to Lars Pedersen for the find and 
    fix. (JSS)
- Finally closed the issue with the classloader and zones. See below
     for more information. Now, ANY objects in your session that are 
     serializable are restored after the class loader is re-instantiated due to 
     class reloading. Many many thanks to stuart d. gathman
- fix a bug which may lead to lost sessions when switching off cookie 
    usage for sessions but the browser still sends the old cookie: it is read, 
    isRequestedSessionIdFromCookie() is true and encodeUrl() does not rewrite 
    URLs - bad.So do not read cookies in the first place if session-cookie 
    support is switched off. (HZ)
- Misc configuration and documentation file changes to help make things easier for 
    new users.(JSS)
 
Apache JServ 1.1b1 - 29 September 1999 
(Stefano "Camelot" Mazzocchi, Vadim Tkachenko, Jon S. Stevens, Henner Zeller, 
Michal Mosiewicz, Craig McClanahan, Jean-Luc Rochat, Bernie Bernstein, 
Ed Korthof, Pierpaolo "Quartz" Fumagalli)
  - Apache 1.2.x support removed. Please see the 
  upgrade document for more details. (JSS)
- Fixed potential DoS bug when load balancing is used. Thanks to Cott Lang 
    for helping troubleshoot the issue. (JLR)
- Fixed potential file descriptor leaks bug when load balancing is used. (BB)
- Fixed Bug Id: mod_jserv/4601 Thanks
    to ronald@trustpoint.com for the find and 
    fix. (JSS)
- Added thread pool code and recycle technology The pool behavior is off by
    default since it needs more testing, but I consider it finished. (SM)
- Explicitly check if the "class" to be loaded ends with initArgs and load 
    it as a standard file in.
    Dr. Andreas Wittek (JSS)
- Fixed Bug Id: mod_jserv/4652 Thanks
    to Cott Lang for the find and fix. (JSS)
- Replaced the ifdefs _POSIX_MAPPED_FILES by ifdef HAVE_MMAP Apache 
    standard value. Now freeBSD can use shared memory. This functionnality 
    was only working on linux & solaris. (JLR)
- Removed bug: ExtendedProperties required to have a space before the
    line-continuation backslash (HZ)
- Real limit on maxConnections (previous setting renamed to 
    security.backlog) (MM)
- Modified the encodeCookie() method of org.apache.jserv.JServUtils.java 
    to use new Date(1000) instead of new Date(0) when expiring the cookie. 
    This fixes a bug with some browsers where it would not expire the cookie 
    properly given a new Date(0). Thanks to 
    Damian Fauth for tracking 
    this one down. (JSS)
- Create ApJServVMTimeout : this controls the time given to the VM to 
    start up and shut down. (EK)
- Put support for ApJServRetryAttempts into AJP version 1.2. (EK)
- Make IsItWorking a bit more dynamic to show that the servlet is   indeed
    executed (and not cached). Generate a local timestamp. (HZ)
- C code: fix some bogus sleeps
    which I'd put in -- thanks to Michal for pointing these out.  also,
    fix the wait in jserv_shutdown_core to use the configurable
    timeout, and implement the SIGTERM / SIGKILL signals so that we
    check each second (for up to three seconds), rather than waiting
    three seconds (all the time) before checking.(EK)
- C code: better if-modified-since
    handling; still needs work on the java side.  also, better comments
    re: return codes for handlers. (EK)
- By default, the system comes with two zones configured in jserv.conf, 
    /servlets and /servlet. This should help newbies avoid confusion. (JSS)
- Fixed Bug Id: mod_jserv/4828 Thanks
    to Ian Holsman for the find and fix. (JSS)
- Fixed Bug Id: mod_jserv/4790 Thanks
    to Ben Kelly for the find and fix. (JSS)
- Fixed Bug Id: mod_jserv/4382 Thanks
    to Justin Ashworth for the find and fix. (JSS)
- Corrected a bug of mine on win32 only : the load-balancing algo was always 
    sending requests to the first JServ.  Thanks to Justin Call for pointing this 
    out, and validating my patch before putting it in CVS. (JLR)
- Removed the decoding of the name/value of the cookies. the spec doesn't say
    anything about this being needed and a user complained about it decoding his 
    data improperly. (JSS)
- Fixed typo in function name...only shows up if JSERV_DEBUG is compiled on. 
    thanks to Oliphant, Erich
- The status page now takes care of load-balancing configurations.(JLR)
- Support for 1 sessionId/zone in the load-balancing (C side) + adding a 
    new parameter (JSERV_ROUTE) in ajpv12 for session handling in case of 
    load-balancing.  NB: as the ajpv12 protocol was changed, you need a synch 
    version of both C & java side.  This is maybe not the way to go, but at 
    least a quick bug fix.(JLR)(BB)
- Make the session string much shorter - it shrinked to 10 character. 
    This is very helpful for pages which contain many links which are URL-rewritten.
    It doesn't contain the full time and the session count anymor, just the 
    number of bits making it unique enough. Plus a random part with 2.1 G-possibities
    to make it immune to attacks. Usses Long.toString(long number, int radix) to 
    do the base 36 encoding. (HZ)
- Allow for setting whether or not the system uses cookies or not for 
    handling session state. Default is to use cookies if they can be 
    used. This is set via the zone.properties:session.useCookies value.
    Thanks to Antonio Cotroneo for
    initial patch and idea. (JSS)
- Fixed Bug Id: mod_jserv/4901 Thanks
    to zingelman@fnal.gov for the find and fix. (JSS)
- Fixed a condition in the case that when 
    HttpSessionBindingEvent.valueUnbound() is called, the reference to the 
    session has already been removed and thus, the (this) reference is kinda 
    useless since the session doesn't exist anymore so, this fix makes it so 
    that the reference to (this) actually contains the sessiondata and the 
    sessiondata is then removed at the end of the removeValue() call. (JSS)
- Fixed Bug Id: mod_jserv/4964 Thanks
    to Brian Slesinsky for the find and fix. (CM)
- When the instance of the AdaptiveClassLoader is dumped because classes 
    are reloaded, we used to also dump the sessions that servlets had stored 
    in memory without care. Now, we attempt to keep those sessions and their data. 
    Note that only objects which can be found in the system or bootstrap classpath will 
    be kept. Also, make sure that all of your objects which implement 
    HttpSessionBindingListener that are stored in the session do not also 
    implement Serializable or you will have problems. Custom objects (which are only 
    accessable via repositories= that implement HSBL will now have valueUnbound called 
    when they are removed after the reload of the ACL.(JSS)
- New protocol version: ajpv12 thanks to (MM). If you are upgrading, make sure to 
    change the ApJServDefaultProtocol in jserv.conf to ajpv12 and also change wrapper.protocol
    in jserv.properties to ajpv12. This new protocol has many speed improvements.
- Fixed: if the session was invalidated the isNew() will throw an InvalidStateException 
    and the thread will terminate. thx to diego besprosvan
    for the fix.
- Fixed Bug Id: mod_jserv/3604 Thanks
    to jlilly@ptc.com for the comments. (JSS)
- Logging by severity. Not by the place. (MM)
- If the zone.properties file cannot be read, catch the potential NPE
    thanks to florian.kieling@fh-stralsund.de
    for catching this. (JSS)
- If log.file cannot be written to, Apache JServ keeps running instead of failing. 
    In the JServ servlet, a big red notice is shown if logging has been disabled for this 
    reason (HZ)
- ApacheJServ.spec RPM installer has been updated and works properly now (HZ)
- New Feature: added bindaddress property to jserv.properties. This allows
    one to bind Apache JServ to a specific IP address. By default, it is 127.0.0.1.
    This feature allows one to have multiple copies of Apache JServ running on the 
    same machine and same port, but different IP addresses. (JSS)
- Updated the INSTALL document to reflect configure changes (JSS)
- Tons of changes and bug fixes to configure scripts, including updating to use libtool 1.3.3. 
    Please read the document upgrading from 1.0 to 1.0.1 for 
    more details on changes with the configure scripts.(VT)(JSS)(HZ)
- Documented jserv.properties: log.channel=[true][false] (VT)
 
Apache JServ 1.0 - 14 June 1999
(Everybody!!!) 
  - Thanks to everybody who helped make Apache JServ 1.0 a reality! 
 
Apache JServ 1.0fc1 - 10 June 1999
(Ed Korthof, Bernie Bernstein, Jon S. Stevens, Henner Zeller) 
  - Fixed bug reported by Paul Gibson <paul@virtualvin.com> regarding
    JServConnection.getSession() not checking whether or not the session that it is returning
    is valid or not. It will now only return valid sessions. (JSS)
- Fixed Bug Id: mod_jserv/4599 Thanks
    to <andreas@ljunggren.net> for the fix and patch. (JSS)
- Fixed Bug Id: mod_jserv/4473 Thanks
    to <bakgerman@checkfree.com> for the fix. (JSS)
- Fixed bug in the jserv_watchdog: Set PID in child process rather than parent since there
    is no synchronization. (BB)
- Re-wrote JServServletManager.encodeUrl() to handle # in the URI's as well as fix a bug
    regarding & usage instead of &. (HZ)
- jserv_wrapper_unix.c: fix use of autoincrement in function argument list -- order of
    evaluation is undefined, and the results may not be as intended. reported by Sebastian
    Bazley <Sebastian.Bazley@sema.co.uk> (EK)
 
Apache JServ 1.0b5 - 17 May 1999
(Ed Korthof, Jean-Luc Rochat, Jon S. Stevens) 
  - Empty lines in configuration files like 'wrapper.classpath=', which the configure
    scripts can sometimes produce, are now just ignored. (EK)
- Fixed .initArgs file handling to work with aliased servlets. (EK)
- Fixed lots of issues with the Unix build system. It should now be more robust, report
    more information to be more friendly to the users and actually work now. (JSS)
- Fixed win32 port w/o watchdog + small bugfix in ApJServMountCopy with load-balancing.
    Thanks to Stephane Carrie <scarrie@maginfo.fr> for finding this bug and giving a fix
    at the same time. (JLR)
- Fixed function prototype (for when there is no mmap support) (EK)
 
Apache JServ 1.0b4 - 30 April 1999
(Jon S. Stevens, Vadim Tkachenko, Stefano Mazzocchi, Craig McClanahan, Jean-Luc Rochat) 
  - Added Load Balancing documentation and various load balancing bug fixes (JLR)
- Fixed the badly broken GET/POST parsing to be implemented according to the rules defined
    in the Servlet API 2.1 spec. (CM)
- Added ApJServLogLevel directive to provide configurable log levels within the C portion
    of Apache JServ. Thanks to Philip Guenther <guenther@gac.edu> for the code and
    patch. (JSS)
- Fixed Bug Id: mod_jserv/3674 Thanks
    to Pawel Pesz <Pawel.Pesz@insert.com.pl> for the fix and patch. (JSS)
- Fixed Bug Id: mod_jserv/4298 Thanks
    to Philip Guenther <guenther@gac.edu> for the fix and patch. (JSS)
- Moved JServConnection creation before connection is accepted and cleaned up
    initialization parameters. Thanks to Michal Mosiewicz for the suggestion. (SM)
- Added TURBO and PROFILE mode. Turbo mode performance-tuned compilation and profile mode
    turns on the method tracing capabilities of instrumented JVM (such as IBM JInsight) in the
    JServConnection.run() method. (SM)
- Added better command line interface for standalone mode operation. Now you can shutdown
    and restart your servlet engine using the exact same class that is already running. Thanks
    to Donald Ball for the idea. (SM)
- Fixed Bug Id: mod_jserv/4169 Thanks
    to <erik@adaptations.com> for the fix and patch. (JSS)
- Fixed Bug Id: mod_jserv/4073 Thanks
    to Cott Lang <cott@internetstaff.com> for the fix and patch. (JSS)
- Fixed Bug Id: mod_jserv/4104 Thanks
    to <akuchlin@cnri.reston.va.us> for the fix. (JSS)
- Changed .jar name again. It is now ApacheJServ.jar. This is a consistency change
    so that Win32 and Unix have the same name for this file. (VT)
- Fixed Bug Id: mod_jserv/3976 Thanks
    to <eb@softstar.it> for patch. (JSS)
- Fixed Apache 1.2.6 compatibility issue and made it so that future distributions will
    include jserv_compat.c which is missing from 1.0b3. Thanks to Matt Feiszli
    <matt@weborder.com> for tracking this down. (JSS)
 
Apache JServ 1.0b3 - 19 Feb 1999
(Ed Korthof, Stefano Mazzocchi, Vadim Tkachenko, Craig McClanahan, Bernie Bernstein,
Jean-Luc Rochat, Jon S. Stevens) 
  - Fixed bugs in the c/Makefile.am that prevented all of the .c files from being included
    in the distribution. (JSS)
- Added ApJServRetryAttempts. Setting this to a positive integer (say between 2 and 5)
    means that mod_jserv will attempt to connect to the JVM up to that many times before
    returning a server error. It does a 1 second wait between each attempt. This allows you to
    avoid server errors during a restart. (EK)
- JServUtils.parseCookieHeader(): If cookie is send just as: foo; instead of foo=; add
    cookie with empty string "". Previously, the cookie name was not being added.
    (JSS)
- JServSession.putValue(): make call to removeValue(). (CM)
- Fixed bug where sessions would not get expired after finding the first expired one and
    also fixed potential sync issues. Thanks to tom@go2net.com for final fix. (JSS)
- Fixed bug where the Apache JServ configuration files would not get auto reloaded. Patch
    thanks to dfauth@access.fairfax.com.au (EK)
- JServConnection.java: Workaround known bug in SimpleDateFormat. Thanks to
    simonb@defacto.peace.co.nz (JSS)
- The official distribution now has the Apache-JServ.jar file compiled with -O instead of
    -g. (JSS)
- Fixed potential core dump in jserv_mkimg.c. Patch thanks to akuchlin@cnri.reston.va.us.
    (JSS)
- Added very nice Load Balancing code. Sorry, no included documentation yet. Please see
    mailing list archives for now.(BB) (JLR)
- Changed trace.* to log.* (CM)
- Removed references to security.remote.administration. It is now security.selfservlet.
    (CM)
- Fixed the Apache JServ bug report HTML page. (JSS)
- Added some new properties in the properties file with regards to logging. (ie:
    log.queue.maxage, log.queue.maxsize) Changed the thread priority of the logging thread.
    This should help fix JVM OutOfMemory errors. (VT)
- Renamed sbin to bin because of changes in Apache 1.3.4. This fixes DSO installation
    issues. (EK)
- Added a configure-options file which stores your configure options (VT)
 
Apache JServ 1.0b2 - 11 Jan 1999
(Stefano Mazzocchi, Jon S. Stevens, Tommy Reilly, Markus Mayer) 
  - Fixed month off by one logging bug in jserv_utils.c. Thanks to Markus Mayer
    <mmayer@iname.com>. (JSS)
- Fixed some small bugs due to an internal bug of Windows VISE installer. (SM)
- Use apxs to find include dirs. (TR)
 
Apache JServ 1.0b1 - 25 Dec 1998
(Stefano Mazzocchi, Vincent Partington, PierPaolo Fumagalli, Radu Greab (1), Hendrik
Schreiber, Ed Korthof, Ross Golder (2), Tim Williams, Paul Phillips, James Cooper, Hans
Bergsten, Jon S. Stevens, Vadim Tkachenko, Tommy Reilly, Hasan Bramwell) 
  - Fixed a bug in configuration.in as pointed out by Hasan Bramwell <hasan@pi.pro.ec>
    (JSS) 
- Fixed a compliance bug in ServletRequest.getQueryString() returning "" instead
    of null. Thanks to Dan Morrill <morrildl@nycap.rr.com> (SM)
- Changed annoying INFO stuff in DEBUG as suggested by Michael Bayne
    <mdb@go2net.com> (SM) 
- Fixed a bug in HttpServletRequest.getRequestURI() that returned the query string. Thanks
    to Dennis Doubleday <dday@fore.com> (SM) 
- linux port: DSO and compiling statically into source work (TR) 
- JDK tool finding improved per discussions with Vadim (TR)
- JAR added to the above (TR) 
- new options --with-apache-src and --with-apache-install replace --with-apache-dir. (TR) 
- --enable-apache-conf is real nice about not squashing your apache configuration (TR)
- links are used instead of copying files for static build (TR) 
- if DSO support isn't compiled in when doing --with-apache-install it bombs during
    configure instead of make. (TR) 
- if no apache dirs are specified and we find a candidate in /usr/local/apache the user is
    queried to see if they want to use that, the reason I did this is because if you configure
    with no options then you may just be interested in the jserv standalone. (TR)
- added scripts and jdepds.jar to src/java to others can use --enable-maintainer-build to
    rebuild .deps when adding new files. NOTE: JDeps screws up on one rule, it puts
    JServSSI.java twice on a compile line which makes JAVAC bomb out, you have to remove one
    of them manually. (TR) 
- Mads Volsted Pedersen, mpedersen@247media.com: We found a small bug in the code that
    sets the expiration date in cookies (in JServUtils.java search for 1000). The problem is
    that by multiplying the age by 1000 as integers you only allow for values smaller than (2
    ^ 31) / 1000 (roughly 24 days). The can easily be remidied by casting the age to long
    before multiplying by 1000. (JSS)
- fixed the jserv-status bug that caused an Apache child to die (EK) 
- added magic to configure so that is the JSDK is specified in your CLASSPATH then you
    don't have to specify it as a configure argument. Now if we don't find the jsdk.jar
    configure will stop with an error message. (TR) 
- added some stuff to the CLEANFILES so that a make clean does its job (TR) 
- added src/c/.deps to DISTCLEAN as per some guys recommendation on the list (TR) 
- replaced Hello.java with Hello.java.in because it now picks up a configure variable so
    it can include a link to the manual. (TR) 
- Changed texinfo manual name to more appropriate ApacheJServ (TR) 
- added texi2html to tree so we can start hacking it to our liking. (TR)
- included html in distro (result of make dist) (TR) 
- --with-compressed-jar -> --enable-compressed-jar (TR) 
- put apache related stuff in acinclude.m4 in configure.in, now acinclude.m4 has only
    macros that are explicity related to our project (how it should be). (TR) 
- removed config.h stuff, we weren't using it (TR) 
- using jdeps to build, invoke configure with --enable-maintainer-build to build. (TR) 
- simplified build process. see manual for how (TR) 
- --with-jsdk-dir = tells configure where to find the JSDK classes. (TR) 
- removed configure and all .in files (TR) 
- added docs/manual start of JServ manual (TR) 
- added example servlet should work off the bat (requires specification of jsdk-dir). (TR)
  
- Fixed a bug in jserv_wrapper_win.c that did not passed correctly the environment
    settings (SM)
- Filtered direct calls to JServ as servlet since this could bypass web server security on
    JServ-status and be a _huge_ security problem on sites where self-servlet execution of
    JServ was left enabled (SM)
- Changed mistaken session timeout log in JServServletManager. Thanks to Jean-luc Rochat
    (SM)
- Changed "exceptionTracking" to "exceptionTracing" as noted by Stuart
    Ballard <sballard@netreach.net> (SM)
- Changed default mod_jserv log name from "jserv.log" to a more explaining
    "mod_jserv.log", now "jserv.log" is generated by the servlet engine
    (SM)
- Changed version in formation in the whole package to match updated Apache Group version
    (SM)
- Added a few FAQ questions that keep on coming up on jserv-users (SM)
- Disabled authentication in sample configuration files for easier setup but allowed only
    localhost to connect as suggested by Ed (SM)
- Changed jserv.properties directive "trace.*" to "log.*" for better
    definition (SM)
- Removed frames from jserv-status for use in old and simple HTML browsers and updated
    graphic style to match docs (SM)
- Replaced the string constant channel identifiers & keywords with the interface
    members (org.apache.jserv.JServLogChannels,org.apache.java.io.LogWriter);
    fixed theNullPointerExceptionwhen the log was enabled, but the file not
    specified; made nicer the interruption handling for the background logger thread (now it
    flushes if interrupted). (VT)
- Updated docs, cleaned up distribution directory, added win32 bat scripts, fixed javadoc
    bugs and few other things preparing for release (SM)
- If the servlet was called as alias, the alias name gets logged along with a class name
    (provided by javax.servlet.GenericServlet#log). (VT)
- Log messages don't go through AJP any more, ending up in whatever log file specified as trace.fileinjserv.properties. Logger records the channel identifier in the trace file
    (you can switch it off, too). Possible improvement because of eliminated synchronized
    access point on the critical path. FixedNullPointerExceptionon shutdown
    with the log turned off, thanks to Miranda Robson. (VT)
- Misc improvements to the wrapper (better handling of parameters, avoiding endless
    spawn/die cycles, reliable operation under Unix, etc.). (EK) Thanks to Dave Galloway ()
    and John Kelly () for help with this. 
- Fixed trace file creation bug: JServ failed to start if the trace file didn't exist.
    (VT) 
- Added logging of session creation, using 'servletManager' log channel. (RG2) 
- Introduced the background logging. Now the log processing can be made arbitrarily
    expensive, because happens in a separate thread with minimum priority. (VT) 
- Added 'session.checkFrequency' parameter. Corrected a problem where multiple
    initArgs/startup servlets were causing ClassCastExceptions. Added some debugging of the
    parsing of the zone configuration file. Fixed a few minor typos. (RG2) 
- Improved an error condition handling for the case of a bad port specified in jserv.properties:
    now both wrapper and JServ will complain in the log about the bad value and it will be
    correctly reset to default port. Also, eliminated the asynchronous handling: on the
    wrapper side, instead of resetting the bad value the fatal error condition was raised.
    (VT)
- Fixed the configuration bug and changed the default behavior. Now configurecan properly resolve thejavabinary location (there was apparently an old
    leftover bug). If--with-jdk-homeoption was specified, it overrides the
    value ofJAVA_HOMEvariable (used to be the other way around) (VT).
- Fixed bug where JServ was not setting its group ID before running the Java VM. (EK) Bug Id: mod_jserv/3021 
- Changed ApJServErrorLog to ApJServLogFile in jserv_utils.c. Thanks to Eric
    <eric@dev.unibiz.com>) (JS) 
- Fixed bug where PATH_INFO was being used as part of the servlet name. Thanks to Trung
    Tran-Duc . (RG2) 
- Applied patch suggested by Alan Sparks that formats the HTML table produced by
    jserv_status.c (JS) 
- Applied patch suggested by Per Landberg <Per.Landberg@lule.frontec.se> which
    corrected a problem parsing initArgs where a value contained an equals character. (RG2) 
- Fixed problem in request input handling that wasn't counting for unfinished read().
    Thanks to Trung Tran-Duc <trung.tranduc@prague.ixos.cz> and Simon Levitt
    <Simon.Levitt@uk.worldpay.com> for pointing out and writing a solution (SM) 
- Fixed problem with Sessions, where cookies were not being parsed correctly. (RG2) Bug Id: mod_jserv/3035 
- Fixed error parsing initArgs when whitespaces are present. Thanks to Carlos Amengual
    <webmaster@healthnet-sl.es> (RG2) Bug
    Id: mod_jserv/2963 
- Fixed bug in Configurations where parameters spanning multiple lines (split with
    backslash) were not parsed correctly. Thanks to Carlos Amengual
    <webmaster@healthnet-sl.es> (RG2) Bug
    Id: mod_jserv/2962 
- Fixed illegal access to private members from inner classes of JServConnection. Thanks to
    Ari Halberstadt <ari@shore.net> (RG2) Bug Id: mod_jserv/2855 
- Change printing of IP address to avoid big-/little- endian assumptions, and to always
    print correctly for the current architecture (using inet_ntoa). (EK, JSS) 
- If file was zero length, jserv_readfile() (C code) would try to print error message with
    filesize instead of filename. We already know it is zero, so the error was a bit strange.
    (JSS) 
- Added a small README file to src/java, cleaned up and fixed bugs in the Makefile and
    Makefile.java.bat in src/java. (JSS) 
- Added IfModule directive around example Apache 1.2.x configuration in httpd.conf. (JSS) 
- Fixed small compile bug in jserv_compat.c to make it compile with Apache 1.2.x. (JSS) 
- Added documentation for Apache 1.3.x and Apache 1.2.x in the src/c/README file. (JSS) 
- Fixed a bug that prevented mod_jserv to automatically start JServ under win95. Pointed
    out by SM (PF) 
- Added error control on file availability in JServSSI to prevent internal server errors
    when SSI file was not readable or not accessible or not existing (SM) 
- Fixed bug reported by Brian Millett, bpm@ec-group.com where the last env[] was not being
    set to null in jserv_wrapper_unix.c. (JSS) 
- Fixed bug that prevented the use of JServ without a secret key when authentication was
    disabled. Thanks to Remy Amouroux to point it out (SM) 
- Forced JServSSI to close its output stream. (HB) Bug Id: mod_jserv/2594 
- Fixed invalid domain in session cookie bug. (HB) Bug Id: mod_jserv/2593 
- Fixed  parameters enclosed in single quotes that didn't work bug. (HB) Bug Id: mod_jserv/2592 
- Fixed cookie getMaxAge() overflow bug. Thanks to Ari Halberstadt <ari@shore.net>
    (RG2) Bug Id: mod_jserv/2800 
- Fixed session id generation. Security flaw: access could have be gained by guessing a
    user's cookie. Design flaw: it could have been possible for more than one user to be given
    the same cookie. Thanks to Geoff Smith <gsmith@webventures.com.au> (RG2) Bug Id: mod_jserv/2794 
- Removed HTML fanciness from JServ servlet as mod_jserv/jserv_status will encapsulate
    those dynamic data in a coherent manner with Apache side (SM)
- Added JServ directive security.remote.administration for control of servlet behavior
    (default is disabled for security reasons) (SM)
- Fixed a NullPointerException throwing in JServConnection.sendError() where log was
    disabled (SM)
- Upgraded JServ servlet behavior and made it the starting point for future work on remote
    control (SM)
- Moved SGMLTag from org.apache.java.sgml into org.apache.java.util for better adhesion to
    Java classpath (SM)
- Moved JServClassLoader into org.apache.java.lang.AdaptiveClassLoader and removed tracing
    methods after careful profiling (SM)
- Upgraded documentation and changed "JServ" to "Apache JServ" for
    legal reasons.
- Made JServ extend HttpServlet and unified servlet testing and jserv status in a single
    servlet (SM)
- Added JServStatus location to mod_jserv to inspect the JServ configurations on the
    Apache side (PF)
- Totally rewritten mod_jserv for easier Unix/win32 porting and added support for multiple
    protocol, multiple jservs. Protocol pluggability is introduced to reduce the overhead of
    future changes and permitting the coexistence of different JServ versions on a single
    environment (PF)
- Changed host.properties to zone.properties (SM)
- Changed starting behavior of both JServServletManager and JServSTMStore to match servlet
    zone behavior. (SM)
- Changed JServ behavior from a per-virtual host to a per-servlet zone basis. Many virtual
    hosts may now share a common servlet zone. (also needed for future security enhancements)
    (SM)
- Removed the need for standard in/out/err streams. JServ does its own log/trace/error
    management while sending servlet logs and receiving signals on the authenticated socket.
    (SM)
- Changed authentication method (using the one proposed for AJPv2.1) and changed the
    protocol name to AJPv1.1 to match this change (SM)
- Added a bunch of MIME types to avoid need of callback in ServletContext.getMimeType()
    method (SM)
- Added test servlet to give installation feedback to users (SM)
- Added comments on jserv.properties and host.properties file placed under ./conf (SM)
- Totally rewritten JServ.java to make it more static and used JServ thread as signal
    handler after removing JServSignal (SM)
- Fixed a bug that caused not to comply with the cookie spec since it was causing cookie
    to never be set for certain domain names. (JC)
- Changed Makefile (RG2)
- Added code to the log the JVM's pid to a file before exec-ing the JVM. (PP)
- Changes for SGMLTag (Removed unnecessary recursion in comment-parsing code addition of
    SGMLTag, Further restored original efficiency by no longer duplicating entire page each
    time a new comment was encountered, Improved case-in/sensitive handling of parameter
    values to allow for both case-insensitive applications (SGML) and case sensitivity (as in
    SERVLET tag initialization parameters). Further protected integrity of parameter values by
    only returning enumeration, not raw data structures (hashtable) (TW)
- Fixed a bug where the 'req.getSession(true)' statement returns null, causing a
    subsequent NullPointerException (RG2)
- Allow buffering to be turned off, by setting the header "Servlet-Buffer: off".
    With this, when the output is flushed it's sent to the client (EK)
- Changed token separating string from ":" to
    System.getProperty("path.separator") to avoid "c:" problem under Win32
    systems and created a property envelope named org.apache.java.util.Configurations(SM)
- Modified JServInputStream to return EOF at the end of the header (RG1)
- Modified JServClassLoader to check if a file from ServletAlias repository is really a
    zip/jar archive (RG1)
- Added a small fix to JServClassLoader to reload classes if they are modified (it worked
    only for new versions) (RG1)
- Added HTTP Session timeouts (can be set in per-virtual host config with
    jserv.session.timeout, defaults to 1800000 (30 minutes)) (VP)
- Changed JServ.invalidate() to send HttpSessionBindingEvent to all values that want it
    (VP)
- Updated servclasses.zip to jsdk.jar, according to newer JSDK conventions and placed it
    under ./lib. (SM)
- Fixed a bug where request.getSession(true) would return null (RG2)
- Very minor documentation fixes (RG2)
- Allow buffering to be turned off, by setting the header "Servlet-Buffer: off".
    With this, when the output is flushed it's sent to the client (EK)
- Added "disable authentication" as default in standalone mode (EK)
- Added MODULE_MAGIC_NUMBER to mod_jserv around compat.h (EK)
- Fixed some problems into JServLock (HS, RG1)
- Added SingleThreadModel support (RG1)
- Added Win32 support for mod_jserv (PF)
- Added Known Bugs and Wanted feature list in the docs (SM) (suggested by RG2)
- Fixed JServ.c (standalone) to be compatible with name changes (VP)
- Added init timeout property in JServServletManager (jserv.init.timeout) (SM)
- Changed timeout properties in JServServletManager from jserv.timeout to
    jserv.destroy.timeout (SM)
- Added timeout on servlet init() to avoid possible stall (SM)
- Changed mod_jserv.c to start org.apache.jserv.JServ class (SM)
- Changed name of main method container from JServHandler.java to more reasonable
    JServ.java (SM)
- Changed license to state JServ is a product of the Java Apache Project (SM)
- Changed manual mode to standalone mode and renamed its directory (SM)
- Created a new package org.java.jserv.servlets and moved EnvDumpServlet and JServSSI into
    it (SM)
- Moved SGMLTag into org.apache.java.sgml (SM)
- Created packages under org.apache.java.* to extend java.* apis (SM)
- Changed the tracing capability by removing JServDebug and unifying them with LogWriter
    (SM)
- Updated protocol to version 1.1 to match new behavior(SM)
- Changed command line parameters and configuration behavior (now needs a configuration
    file) (SM)
- Changed mod_jserv to allow parameters to be passed to JServ executable (not only to Java
    interpreter) (SM)
- Unified documentation: merged every document into a coherent HTML structure (SM)
- Changed directory structure (SM)
 
Apache JServ 0.9.11a - May 19, 1998 
(Ian Kluft, Ross Golder, Vincent Partington, Roger Zeng, Jon Stevens, Brian Jonnes, Ed
Korthof) 
  - 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 now deprecated) (EK)
- 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)
- Fixed bugs with servlet init() and destroy() methods in JServSSI (RZ)
 
Apache JServ 0.9.10a - February 13, 1998 
(Ed Korthof, Ian Kluft, Jon Stevens, Francis J. Lacoste, Hanan Herzog, Stefano Mazzocchi,
Vincent Partington) 
  - 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 (HH)
- Implemented session handling and jsdk 1.1 stuff (FLJ)
- Bundled JavaSoft Servlet API's 1.1
- 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, VP)
- Fixed attribute prefixes to be "org.apache.jserv" to match the classes (VP)
- 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
 
Apache JServ 0.9.9a - January 20, 1998 
(Francis J. Lacoste, Martin Pool, Jon Stevens, Ed Korthof, Ian Kluft, Adam Messinger) 
  - 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(). (AM)
- Fix some documentation in JServConnection. (MP)
- 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 deprecated 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
 
Apache JServ 0.9.7a - September 8, 1997 
(Alexei Kosut) 
  - Fixed some compiler warnings (AK)
- Correctly block signals when initializing, instead of ignoring them. This should prevent
    another race condition on startup or restart (AK)
 
Apache JServ 0.9.6a - August 28, 1997 
(Alexei Kosut, Orjan Reinholdsen, Rhys Jones) 
  - 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") (AK)
- Fixed problem with path info when using ServletAlias to point to a zip/jar file (OR)
- Added ServletEnvironment directive to pass arbitrary environment variables to Java (AK)
- The jserv manual program now passes all environment variables to Java, not just PATH,
    CLASSPATH and TZ (AK)
- Correctly allow virtual servers to use ServletAlias() (RJ)
- Avoid a race condition in mod_jserv.c when receiving a signal. (AK)
- ServletRequest.getRealPath() works correctly (AK)
- manual/jserv can now take -J arguments (after the first argument), which it will pass on
    to Java (AK)
 
Apache JServ 0.9.5a - August 13, 1997 
(Alexei Kosut) 
  - Added "watcher" process to handle signals and allow graceful
    restart/termination of servlets (AK)
- New C program for use with manual mode (see manual/README) (AK)
- Moved Java classes and source to the classes directory (AK)
- Split Java source into several files instead of one (AK)
- Added Makefile to classes/apache/jserv (AK)
- Work around bug in the Linux JDK's java.net.Socket class (AK)
 
Apache JServ 0.9.4a - August 7, 1997 
(Alexei Kosut) 
  - Default properties file changed to conf/servlets.properties (AK)
- Support for servlet aliases in servlets.properties (AK)
- Can now load servlets on startup (servlets.startup property) (AK)
- New ServletErrorLog directive can log System.err output from Java (AK)
- Exceptions and Errors caught from servlets will print a stack trace to ServletErrorLog
    if active (or with -t switch in manual mode)
 
Apache JServ 0.9.3a - July 31, 1997 
(Alexei Kosut, Jordan Mendelson, Ian Kluft) 
  - Fixed socket code so it will work with Linux (JM)
- Added more secure auth string, ServletAuthExport directive (IK)
- getServlets() now returns the correct object (AK)
- sendError() now closes the connection directly after sending the error (AK)
 
Apache JServ 0.9.2a - July 30, 1997 
(Alexei Kosut) 
  - Added ServletManual directive and "-m" flag to JServHandler, to allow for
    manual starting/stopping of JServHandler (AK)
- Put additional check into JServHandler to ensure that the request comes from the local
    host (127.0.0.1) (AK)
- Properly handle exceptions and errors generated by the servlet (AK)
 
Apache JServ 0.9.1a - July 30, 1997 
(Alexei Kosut) 
  - Fixed so mod_jserv.c will work with Apache 1.2 (AK)
- Made sendError(int) work correctly (AK)
 
Apache JServ 0.9a - July 29, 1997 
(Alexei Kosut) 
Copyright (c) 1997-99 The
Java Apache Project.
$Id: changes.html,v 1.92 2000/01/15 00:56:40 jonbolt Exp $
All rights reserved.