Jigsaw release notes
Following the normal W3C conventions, they are two different kind of releases
of Jigsaw. Member release are provided to W3C members, a month
in advance of the Public Release. Depending on their status the member
release may get a different release number then the public release. On this
page, you will find the release notes for the different versions of
Jigsaw (which don't necessarily coincide with member release).
Currently released versions:
-
2.0 beta1
-
A public release, made on April the 8th.
-
2.0 alpha1
-
A public release, made on January the 31th.
-
1.0 beta2
-
A public release, made on January the 31th.
-
1.0 beta1
-
A public release, made on September the 1st.
-
1.0 beta
-
A member specific release, made on August the 1st.
-
1.0alpha5
-
A public release made on February the 13th.
-
1.0alpha4
-
A member specific release, made on January the 13th.
-
1.0alpha3
-
A public release, made on October 7th, 1996.
-
1.0alpha2
-
A member specific release, made on September 7th, 1996.
-
1.0alpha1
-
The first member and public release, made on May, 1st 1996 and June 1st 1996
(resp.)
Jigsaw 2.0beta1
This is the first complete release of the new Jigsaw, with the
new internal design.
Bug Fixes
There was almost no bug fix in the new resource model of Jigsaw, but there
was some modification of the HTTP stack, mainly about the handling of the
PUT method.
New Features
All the resources of the 1.0beta2 has been ported to the new 2.0 version.
This includes:
The new documentation is also more complete.
Incompatible changes
To avoid the name length limit on the Mac, the resource files used by
JigAdmin are now stored in a zip, the old version of JigAdmin
will not work with this new version, you then need to upgrade both the server
and the client to do administration.
Jigsaw 2.0alpha1
This 2.0 release is the first release of the new
internal design of Jigsaw.
Bug Fixes
This version as all the bug fixes of the 1.0beta2 about protocol issues.
Other bug fixes have no meaning here as the internals of Jigsaw have been
reworked.
Incompatibles changes
-
The name of the classes are now org.w3c... instead of
w3c...
-
The resources are no longer linked with the protocol, protocole frames are
added to the raw resources
-
The resources are limited, DirectoryResource, FileResource, PassDirectory,
FramedResource, ContainerResource and ExternalContainer.
-
The new frames are:
-
The filters are no longer placed on the resource, but on the protocol frame.
-
The admin server has been reworked to support framed frames.
-
Support for active Resources through listeners. (bean-like event model).
-
Modification of the JigAdmin configuration tool to support protocol
frames and framed frames.
-
The root store of the distribution is no longer needed to start a new server,
it creates its own store if none are present.
-
The ResourceStoreManager has been completely modified, so the old configurations
for the 1.0beta serie will no longer work. You will have to reconfigure your
server entirely!
-
The form-based configuration is invalid now and has been removed. You MUST
use the administration server to configure Jigsaw
New Features
-
True reindexing now exists (This is real reindexing rather than deleting
the resource).
-
Jigsaw will create the root store if not present.
-
Installation program that modifies the property files of the servers according
to your configuration.
-
Partial draft of the new documentation, the next release
will have a completely new documentation.
Jigsaw 1.0beta2
This is a bug fix release of the previous beta release. The purpose of the
"beta track" is to improve the stability of Jigsaw. For further developments,
see the 2.0 track.
Bug Fixes
-
Fixed revalidation mechanism with a no-cache directive.
-
The update of a cached resource in case of a revalidation is now correct.
-
The Max-Forwards header is now well handled.
-
The PUT and POST methods are now working well on HTTP/1.1
servers.
-
Fixed a bug in the Via header of proxied resources.
-
Fixed default adds of HTTP headers that were wrong.
-
debug of the classloader for servlets
-
Bug fix in the jdbm enumerator.
Enhancements
-
The indexers can now create "ghost" resources to allow more fancy uses of
Jigsaw, like shadow icon directories.
-
Added the TRACE method of HTTP/1.1
-
Added the possibility of templates in the indexers
-
the GrepPutFilter forbid a PUT of a document containing a specified string.
Very useful when you edit your website from one server and you doesn'y want
to allow links to this server.
-
Added a DateThread, if you want to speed up Jigsaw a bit (~10% by switching
loggers).
Jigsaw 1.0beta1
This is just a bug fix release of the latest member beta release.
Bug Fixes
-
Fixed a bug in Content-Length in case of Chunked encoding.
-
Added more feedback when a configuration error occurs while using
JigAdmin.
-
Fixed bug in the CacheFilter
Enhancements
-
Added a new Resource, DirectoryLister, acting like when you access to a
directory, useful to make a small index.
Jigsaw 1.0beta
Bug Fixes
-
FileResource now supports the HTTP/1.1 If-Range header, and a slight
bug was fixed in the emitted Content-Range header
-
The HTTP client side cache filter has been fixed (jdbmResourceStore enumration
was buggy)
-
The Caught Exception trace in errlog has been removed (The trace was the
bug - tm)
-
Fixed a bug in ICP message parsing (will now correctly handle message of
length exceeding 255 bytes)
-
If it manages a shared cache, the CacheFilter will no longer cache documents
retreive through a request that has an Authorization header.
-
Fixed a bug in HTTP Date parsing (one of the three date format wasn't parsed
properly)
-
Fixed a bug in ContentLengthInputStream (wrong size after an error on a read)
-
Fixed a bug in ActiveStream which was the source of empty documents feeded
by the proxy.
Enhancements
-
Added a property in the
ICPFilter
to disable caching of documents retreived through ICP
-
JSDK/1.0 FCS servlet API support
-
Powerful JDBC access through server side include.
This new feature allow you to querty any JDBC compliant database and embed
the result within your HTML page. Check the
SSIResource api.
-
PICS & JDBC.
A new LabelBureau implementation is available. It relies on any JDBC compliant
database as the storage mechanism for PICS labels, which makes it more scaleable
than the previous filesystem based approach.
-
Servlet support has been upgraded to 1.0FCS; Support for automatic servlet
reloading has also been implemented (Jigsaw will detect that the servlet
class files have changed and will reload them automatically).
New Features
-
Added a companion server to do the remote configuration.
The protocol used to communicate with the Admin servlet hasn't been specified
yet, and will probably change in the next releases of Jigsaw. The client
part of the API
(w3c.jigsaw.jigadm.RemoteResource)
is unlikely to change though.
-
A new graphical tool is available to do the configuration of Jigsaw. Currently,
this allows you to do everything the form based editor could do.
-
Support for the SAP protocol
has been included, as the starting point for multicast proxy-to-proxy support.
SAP is the Session Announcement Protocol (an Internet draft)
-
The
ProxyDirectory
resource now supports ftp tunneling (it won't do caching until someone tells
me how ftp results can be cached)
-
Support for a light multicasted version of ICP now available in the proxy,
turn your hundreds of useless 5Mo caches into a usefull 50Mo collaborative
proxy: the net is the computer ! Check the
MICPFilter
client side filter.
-
Resource can now be extended through the use of
ResourceFrame;
The notion of HTTP filters has proven usefull enough to be extended for non
HTTP resources. You can now attach frames to resources that describe
users for example (such as the w3c.jigsaw.auth.AuthUser).
Incompatible API changes
Incompatible Configuration Changes
-
Filters pickling as attributes
Filters pickling has changed: filters are now just a special resource attribute,
and follow the general pickling format. They used to be special, and that
caused lots of troubles.
Don't redefine the pickle method !!
-
Cache directory hierarchy
The cache directory hierarchy has been made multi-directory: cached entries
are stored in a tree of directories instead of within a single directory
(lessen the load on the file system by decreasing the acche directory size)
Jigsaw 1.0alpha5
Incompatible changes
-
The AttributeHolder
unpickle
and
unpickleInstance
methods, now take a third boolean parameter, that indicates if the resource
is to be initialized after unpickling. Warning if you have written
an 1.0alpha3 resource that redefines this method, you should make sure to
define the new format for this method (since it's the one that gets called
by the unpickling engine)
-
The HttpReplyMessage
setLocation
method now takes an URL, to reflect the fact that HTTP/1.1 specification
requires an absolute URL here.
-
The getURL method of
HTTPResource
has now been splitted into two diferent methods:
-
String
getURLPath()
-
Returns the path of the URL of the resource (as a String)
-
URL
getURL(request)
-
Retuns the full URL of the resource. With virtual hosting support, it may
happen that a resource has differnt URLs according to the incomming requests,
that's one of the reason for that split.
-
AttributeHolderAttribute
semantics has slightly changed: it is up to resources using that kind of
attribute to initialize the value (if any) of that attribute, by calling
their
initialize
method with appropriate default values.
-
Resources can now refuse unloading, through the new
acceptUnload
method. This allows to lock a resource in memory, whatever happens.
This should be use only with great care.
-
The
ResourceStoreHolder
interface has changed in the following ways:
-
notifyStoreUnload
-
Has been renamed to
acceptStoreUnload,
and returns a boolean that indicates wether the store holder is willing to
get rid of any of its references to the store. If any of that store holders
return false the store will not ne unloaded.
-
notifyStoreShutdown
and
notifyStoreStabilize
-
Semantics has been slightly changed: it is nolonger up to the store holder
to perform the job. The first method is the one in which the holder should
get rid of all its references to the store (by nullifying them), and the
second one is just a notification.
-
The
ContainerResource
lookupStore
method now throws an
InvalidResourceException
if the resource exists in its store but cannot be restored. In such a case,
the
DirectoryResource
will emit an appropriate error message.
-
The ServerHandler
interface
initialize
and clone
methods now provide a pointer to the
ServerHandlerManager
as a first parameter.
-
The resource and resource store APIs have been moved outside of
Jigsaw. After a year of experimentation, this code has proven usefull
outside the scope of the server itself, that's why we decided to move it
to a newly created package
w3c.tools.store. If you
have written some resources, the only change for you will be to import that
new package in your class files. The precise list of classes that has moved
is:
-
Attribute.java
-
AttributeHolder.java
-
AttributeHolderAttribute.java
-
AttributeRegistry.java
-
BooleanAttribute.java
-
ClassAttribute.java
-
DateAttribute.java
-
DoubleAttribute.java
-
FileAttribute.java
-
FilenameAttribute.java
-
HolderInitException.java
-
IllegalAttributeAccess.java
-
IntegerArrayAttribute.java
-
IntegerAttribute.java
-
InvalidResourceAttribute.java
-
LongAttribute.java
-
ObjectAttribute.java
-
PropertiesAttribute.java
-
Resource.java
-
ResourceLocker.java
-
ResourceShadower.java
-
ResourceStore.java
-
ResourceStoreHolder.java
-
ResourceStoreManager.java
-
SimpleResourceStore.java
-
StringArrayAttribute.java
-
StringAttribute.java
-
UnknownResourceException.java
-
The
ResourceStoreManager
unpickleProlog
method no longer returns a boolean. Instead it throws one of:
-
NotAStoreException
-
If the file preambule doesn't match the store cookie.
-
InvalidStoreClassException
-
If the class willing to load that repository doesn't match the class that
saved it.
-
InvalidStoreVersionException
-
If the repository version doesn't match the loading class version.
Compatible changes
-
HTTPResource defines a new
verify
method, that might be called by a resource store salvager to check the
consistency of the resource.For example, file system based resources will
use that method to check that the file or directory they wrap still exist,
and delete themselves if not.
-
DirectoryResource
listing now emits HTML3.2 compliant documents, along with a link to the container
(when possible)
-
The realms catalog no longer uses absolute pathes, it will not however upgrade
all realms catalog to not using absolute path. Relative path are relative
to the server's auth directory (typically config/auth)
-
The w3c.jigsaw.space property is no longer settable through the
Admin properties editor. This was an oversight. The only way to set the
space for a server, is through the -space commandline toggle
(check the command line page for
more details)
New features
-
A new
SalvagerResource
has been written. This resource will walk through the entire resource space,
to check for:
-
Cycles in resource stores (due to Jigsaw bugs)
-
Unused resource stores (it garbage collects the stores)
-
Synchronize resources with the file system, by calling the
verify
method of all resources.
-
A new ResourceWalker
interface is available, along with a
WalkerEngine. These
two classes provide respectively an interface to handle the walk, and an
engine that will trigger call to implementors of previous interface
while walking through a resource space.
Bug fixes
Numerous bug fixes have been omitted from the list, that list only the main
ones:
-
The
ResourceStoreManager
had numerous bugs, most of them should now be fixed.
-
The ICPFilter
HTTP client side filter that implements the Internet Cache Protocol should
now be compatible with Squid implementations
-
CVS has been fixed in numerous ways; the PutList resource should now be usable.
-
The basic class
AuthFilter now performs
authentication during lookup, rather then at ingoingFilter's time.
Jigsaw 1.0alpha4
Incompatible changes
-
Properties are no longer saved in a single file, each
ServerHandler
has to manage its own property file. The file is designated through the server
identifier. This means that older httpd.props file should
be changed by:
-
Renaming them to http-server.props (the default server identifier)
-
All properties prefix should be removed (ie all http-server prefixes)
-
The AttributeHolder pickling format has changed:
-
The FilteredResource pickling method had a bug (it didn't conform to the
general format)
-
Before being dumped, attribute values are prefixed by theire pickled length.
This allows the unpickleInstance method to skip unknown (ie deleted) attributes.
-
The
DaemonProperty
class is now only used as a property loader. It implements a catalog of property
sets; each
ServerHandler
instance is responsible for managing its own
ObservableProperties
instance.
-
The
getURL
method of User
HTTPResource
instances now return the full path of the resource within any of the server
contexts (it used to return the full URL).
-
The abstract
Attribute class
now defines a new
getPickleLength
abstract method (that has to be defined by sub-classes). This method is used
for the new pickling format of resources, to allow the unpickle method to
skip unknown attribute values.
-
The
ResourceStore
API has changed (for ResourceStore implementers only). The
getVersion
method has been added, and must return the version of the class that implements
the store.
The
initialize
method has a new opaque token parameter, to be used by the store when
calling back the resource store manager (eg when calling the markModified
method). The token can be thought of as the identity, for the resource
store manager, of the store.
-
The HttpManager
can now be instantiated several times within the same process. This allows
for different context for the HTTP client side API. More precisely, the new
method
getManager(Properties
props) will create a new manager if no other manager has been created
with that exact property set.
Bug fixes
-
The CommonLogger
now initializes its buffer size properly from properties.
-
Several fixes in the
CacheFilter
(protocol implementation errors)
-
Bug fixes in the server-side
Request object, wouldn't
allow for non persistent connections.
-
The new
SocketClientFactory
now properly deletes old clients if needed (old clients would otherwise tend
to be priviledged wr to newer ones).
New features
Compatible API Changes
Jigsaw 1.0alpha3
This release is mainly a bug fix release with regard to the
1.0alpha2 release.
Bug fixes
Main bug fixes are:
-
The HTTP client side code has been reworked. This shouldn't affect users
of that package, since it is mainly a rewritting of the internals of the
HttpManager. The main problem was the managing of persistent connections,
which is now much enhanced. The code was also cleaned up in that process.
-
The cache garbage collector really works now ! The 1.0alpha2 cache garbage
collector was just a proof of concept. The new garbage collector works by
chunking the flow of data being cache through generation numbers,
which allows for a much more precise garbage collections.
New features
A small set of enhancements has been made too:
-
Virtual hosts capabilities have been added, this feature supports only the
Host based version of that feature (which doesn't consume IP addresses).
More documentation is available
here.
-
The
ContainerResource
is now an abstract class, much more suitable for sub-classing then the
DirectoryResource.
-
The
ProxyDirectory
now has a disconnected mode, which allows you to connect your laptop
from the net, get any numbers of document, disconnect from the net to later
browse while on a trip. Check it !
-
A new
MirrorDirectory
resource has been added, that allows you to mirror any web site. This
resources is a nifty subclass of the newly created
ForwardDirectory
resource.
Jigsaw 1.0alpha2
This member release of Jigsaw, version 1.0a2 is a snapshot
of what will be Jigsaw 1.0a3, the next public release. It has lots
of improvements, and lots of new features that you should check out:
-
HTTP/1.1
-
The server is now fully HTTP/1.1 compliant, it will still be compatible with
older, HTTP/1.0 clients.
-
Caching proxy
-
This new release includes a caching proxy module, also fully HTTP/1.1 compliant.
The HTTP client side API that is used by this proxy can be used as a replacement
for the default HTTP Java handler. See the FAQ for more infos.
-
New resources
-
A set of new resources and filters have been added to the core distibution:
-
SSIResource
-
The server side include resource will handle standard server side include
commands. It is easily extensible in Java (make sure you check our tutorial
on how to extend it). This resource is extremely powerfull and flexible and
also impresively efficient, we urge you to have a look at it !
-
Image maps
-
A new image map resource has been included in the release. This adds image
map support within the server in a very efficient way.
-
ErrorFilter
-
Allows you to redefine all the error messages leaving the server, by using
internal redirection.
-
Enhancements
-
A lots of enhancements has been made to Jigsaw since release
1.0a1. Among which:
-
Performance tuning
-
Although not fully tuned yet, this release deal with some of the bottlenecks
found in older release. Inparticular, the new client pool class allows
Jigsaw to handle gracefully an increased number of simultaneous
connections.
-
Configuration
-
Has been enhanced in several ways. Check the /Admin directory to see them
!
-
CgiResource
-
The new support for CGI scripts is much more easy to configure and use. It
also has imrpoved a lot in terms of robustness. It has been tested on both
UNIX and Windows.
-
PICS support
-
The PICS module of Jigsaw has been updated to reflect the PICS 1.1
specification.
Jigsaw 1.0alpha1
This was the first available Jigsaw release.
Jigsaw Team
$Id: RelNotes.html,v 1.41 1998/04/08 09:30:52 yves Exp $