Niggle Status

Niggle is definitely in a usable state. In fact, that is probably an understatement. Niggle is highly robust. Reminders On-line has been building all of its servlet-based software on top of Niggle for well over a year. ROL's java servlet-based reminder service, Medimom, runs on top of Niggle. Still, there are various issues that have caused me to classify the current release as beta.

Of the things that Niggle lacks right now, the most important are: documentation, documentation and documentation. And in that order! Currently, the only documentation to help you get into Niggle is what is to be found in the examples hierarchy. That, and the generated javadoc.

So, documentation is our greatest single priority. In my opinion, the best documentation consists of examples that are well-constructed and annotated. And that will be my emphasis over the next while on that front. Aside from that, there are specific classes that we expect to add fairly soon.

There is now an initial (you can consider it beta) version of JDBC bridge classes that allow Niggle to represent a fairly transparent wrapper over an RDBMS with a JDBC driver. These have been developed and tested against MySQL, but there is little reason to believe they cannot be used with other back-ends. We have had a similar front-end working against a JNDI data source as a proof of concept. I have removed those classes from the present release, since I did not want to support them. They will be polished and put back in at a later point. Our experience shows that it is certainly possible to use wrap up a JNDI data source as an instance of com.niggle.MutableDataSource.

For your first steps in playing with Niggle, you will likely find it more convenient to use the classes in com.niggle.data.inmemory. The DataSource implementations in that package keep all record in memory and persist data to flat text files. This is actually a fairly nice scheme to get started with, since it makes Niggle a self-contained solution for applications with run-of-the-mill data persistence requirements. And actually, mostly due to the cheapness of RAM nowadays, this solution has scaled up much better than we ever thought it would.

So, to sum up, Niggle is not alpha-level code, since it has been stress-tested extensively and is known to be highly robust. On the other hand, it is not really completely ready-for-primetime material because it is missing some important things that the final non-beta release will have, the most important of these being more extensive documentation. It is once the above issues are addressed that I intend to take the pre out of the release tags and call that release Niggle 1.0 final.

The Niggle Project page on Sourceforge

To stay informed about Niggle, we strongly encourage you to subscribe to the Niggle-related mailing lists.

Jonathan Revusky, 15 April 2001