2005-09-14

v2.1 beta, Java Generics support and more...

Version 2.1 will offer two new interfaces in the PooliT library: Cacher and CacheHandler. Cacher classes allow object caching which stores a particular instance of an object that can be requested from the cache multiple times by other classes. There is a subtle distinction between a Pooler and a Cacher: Poolers store multiple instances of identical objects that are indistinguishable from eachother; Cachers store one instance of an object in a particular state and that instance can be referenced by many other objects simultaneously.

Also, a parallel development module has been created to offer support for Java Generics introduced in the new JDK 1.5. Generics support is preliminary as I have not had much experience using this new feature. Please report any bugs if you use the Generics version. A parallel module was created because adding Generics support into the main module would force compilation of PooliT with a JDK 1.5 compiler which everyone will not have the option to use.

The CVS repository has been re-organized to accommodate the PooliT source tree with Generics support. If you wish to obtain the source code to the Generics-version, checkout the "poolit-generics" module in CVS. For the standard version, checkout the "poolit" module.

Finally, the package namespace has changed to ca.huy.poolit. Please consider this impact to your codebase when upgrading to the new version. It should be a simple matter of doing a search & replace of org.ascentphase.poolit to ca.huy.poolit.

2005-03-24

Article published

An article about PooliT has been written in the magazine Software 2.0. The article appears in their third English edition issue titled Reliable Java. So go buy the magazine or purchase the PDF version. There is also a Polish language translation of the article in the Polish issue.

2003-12-20

Release v2.0 available

PooliT v2.0 is now available for download. PooliT is now released under a BSD-style license replacing the previous LGPL license of previous versions.

Classes have been re-arranged to make packaging of PooliT within other projects easier. The significant change being that poolit is now under the package namespace org.ascentphase.poolit. Please read the notes.txt file in the distribution for further changes that have been made to v2.0.

The jar file contained in the distribution is compiled for JDK1.4. This is mainly to accommodate the newly added nested exception feature in JDK1.4. If you use the jar in a JRE version prior to 1.4, you may encounter RuntimeExceptions especially if you use the nested exception feature. The ant build.xml script has been modified so that you can easily recompile PooliT with JDK1.3 calls. Please see the notes.txt file for instructions. Compiling for JDK1.3 should also work for JDK1.2 and possibly JDK1.1.

2003-11-26

Release v1.1 available

PooliT v1.1 is now available for download. It contains bugfixes that were reported by users of PooliT.

CreateException and FetchException support nestable exceptions when compiled and run with a JDK/JRE 1.4 or greater. If you re-compile PooliT yourself with a JDK version that is 1.3 or lower, you will have to edit the two exception classes and comment out the appropriate lines as described in the respective source files.

A close() method has been added to the Pooler interface. This allows the pool to be shutdown and its resources cleaned-up.

2002-09-20

Release v1.0 available

I have decided to release the 1.0 version of PooliT. After about a year and a half stuck at version 0.1 beta and no bugs being reported and doing personal testing on my own recently, I feel comfortable enough to release PooliT as 1.0.

There have been some additional classes to this release:

  • LimitedPooler - places a maximum limit on the number of objects that will be created by the pool and maintained in the pool. A good example is to limit the number of database connections so that you do not go overboard and potentially create an obscene number of connection that waste system resources.
  • NotifyPooler - notifies objects when they are fetched from and released back to the pool.
  • NotifyPoolerListener - implemented by objects that wish to be notified when fetched from and released to a NotifyPooler.
  • DisposablePooler - will pool objects as long as there is enough memory to do so. If memory becomes scarce, the VM will be free to garbage objects inside this pool to free up memory for other uses.
  • PooliTConnectionHandler - create PooliTConnection objects which wraps a java.sql.Connection. This permits the pooling of JDBC connections that will not close when the Connection's close() method is called. Instead, the Connection will be returned to the pool from which it was fetched to be re-used by another caller.
  • PooliTConnection - used in conjunction with PooliTConnectionHandler.

2002-09-09

CVS access to code

After over a year of lull in the development of PooliT, I am going to dedicate some time to adding features and providing additional code.

Also, the source code to PooliT is now available via CVS with some additional files not available in the tarball or zip.

2001-04-14

First post!

PooliT 0.1Beta has been released. Modest testing has been done and it seems to work, but no rigorous testings has been done. That is why it is BETA.