Java Software

Release Notes


 

The OPeNDAP software started life as the Distributed Oceanographic Data System (DODS) project. Here are the release notes from previous version of the Java-DODS software on which OPeNDAP is based:

Java-DODS Release 1.1.3 -- 05/12/03 (ndp)
This is a supplemental release of 1.1 that contains the fixes mentioned below plus a fix of a regexp problem in the DRDS (bug 608).

Java-DODS Release 1.1.2 -- 03/11/03 (ndp)
This is a supplemental release of 1.1 that contains bug fixes for server side issues that only exhibit on the Windows operating system.

Java-DODS Release 1.1.1 -- 4/9/02 (ndp)
This is a supplemental release of 1.1 that contains bug fixes for DDS, and DAS parser problems and repairs to the DRDS constraint expression handling.

Java-DODS Release 1.1.0 -- 06/11/01 (ndp)
Repaired DODS relational Database Server (DRDS, dods.servers.sql.drds) so that it correctly handles "null" values in the backend database tables. Repaired DODS Test Server (DTS, dods.servers.test.dts). Test server output is now stable.


Java-DODS Release 1.0.0 -- 10/13/00 (ndp)
Placed the majority of the server diagnostic output under conditional control. Found and fixed several bugs in the server code including:

Release 1.0.6 (ndp)

Many things have been changed and re-arranged: The servlets should now be thread safe. Much of the core servlet code has been re-architected and should be carefully reviewed if you have been using it and wish to continue to use it. The servlet NO LONGER USES .ini files. All configuration information is no passed to the servlet through the javax.servlet.ServletConfig interface (in particular the getInitParameter() method). This information is stored in the web.xml file located in the WEB-INF directory for the servlet. See the file SERVLET for more information. The special clients www and ascii have been moved from dods.clients to dods.servers (dods.servers.www and dods.servers.ascii respectively)

Release 1.0 (ndp)

This is the first full release of the Java-DODS core software. Some fairly significant organizational changes have been made since Jake's original code, and since Beta 1.1. If you have been using the code it would behoove you to review the inheritance hierarchy, the functional hierarchy, and the organization of the packages. In particular this release ships with 2 functional servers (dods.servers.test.dts and dods.servers.test.drds), 1 functional client (dods.clients.geturl.Geturl), 2 special clients (dods.clients.ascii and dods.clients.www) that get used in the server architecture. The problems that Jake pointed out below about Input/Output Stream's and Reader/Writer's still remain to be resolved, and unfortunately this means that we are still using deprecated API's in several places.**NOTE: The test suites are currently broken. They did work, but changes in test server (repeated identical calls for the same dataset will produce different, although predictable, data) have rendered them non functional for the time being.

Beta 1.0 (ndp)

At this time the Server side code has been written. Class hierarchies have been cleaned up and in general the core code in the "dap" is tight and clean. Many of the ancillary programs written by Jake have not been extensively tested, this includes Geturl. The Server code has been tested and seems to work well.


Note: The following may be completely out of date, but they are still included as part of our legacy.

Jake's Original Design Notes

The following are some notes about the design and implementation of the Java DAP library. It should be useful reading for anyone who needs to fix bugs or add features to this code.

Design Differences

The definitive documentation for the DAP is contained in the Javadoc comments included with the source code. You can build this documentation with the "make doc" target of the Makefile. Here are some important differences between the API described in the Javadoc comments, and the C++ version of DODS, as well as James Gallagher's initial Java DAP design.

Java Pitfalls

Here are some miscellaneous comments on particular aspects of Java which I had to deal with when designing the Java DAP. Hopefully you won't stumble into these pitfalls yourself if I mention them here:

Testing

Here is some information about the test cases written for this code:

Adding New Types To The Dap

Unlike the C++ version of DODS, the Java DAP port was designed to make it easy to add new data types to the core. Here are the places where the code will need to be changed to incorporate a new primitive type: