Date: Wed, 17 Mar 1999 17:38:25 -0600 (CST) From: Jonathan Abbey <jonabbey@arlut.utexas.edu> To: cool@lwn.net Subject: Ganymede 0.98 released Hi, Liz.. new version of Ganymede out for your readers to bang on. ;-) Ganymede 0.98 is now available for download at ftp://ftp.arlut.utexas.edu/pub/ganymede/ as well as at: http://www.arlut.utexas.edu/gash2 Ganymede is a GPL'ed network directory management system written in Java, providing support for team management of NIS, DNS, etc. -- Wow, it's been over a month since 0.97. Lots and lots of things fixed, tweaked, adjusted, stamped, and improved. A lot of the last month has gone into gasharl schema fixes and improvements that won't necessarily be of much benefit to anyone not using GASH, but there have also been a lot of tweaks and fixes to the server, client, and admin console. On the client, there have been lots of GUI fixes and reworkings as a result of actual user testing. Lots of long-term annoyances have been fixed. On the server, there have been a fair number of changes to make the server ready for production use, including a reworking of the server's value-checking logic to provide better feedback when a user enters an invalid value for a field. I expect that Ganymede 0.99 will primarily feature work on the NIS/DNS build integration for the gash and gasharl schemas, as well as some more documentation for these things. For Ganymede 0.99, I may also re-work the commit-time build logic to allow people to do multiple database commits during a Ganymede session without actually issuing an NIS/DNS build each time. This will depend on how further testing goes with several people running Ganymede simultaneously. Documentation is probably still one of the weak points (as well as the lack of user-contributed schema kits), so please let me know if there are any aspects of the current documentation that you would particularly like to see improved. -------------------- Changes from 0.97 to 0.98 ------------------- RELEASE DATE: March 17, 1999 1. [BUILD] Ganymede build scripts moved out of db/out to db The Ganymede server now uses a property called 'ganymede.builder.scriptlocation' to locate the builder scripts to be run by the builder tasks registered in the server. Previously, the builder tasks ran the build scripts in the out directory, which wasn't really compatible with the decision in 0.97 to have the build tasks archive the output files written by the build tasks. Now the build scripts are expected to be located by default in the directory about out, which allows the zip archives to be cleanly made. There is still some confusion here.. in theory, you can have multiple build tasks registered in the server, each of which will try to zip up the out directory. This is not optimal, but what to do about it? 2. [SCHEMA] Added emailListCustom class to gasharl schema kit. The email list members field is an invid field that can point to objects of different types. It is used to allow the email list object to have members that are users, external email listings, or other email groups. Previously, the email list members field couldn't really be edited after the bulk loading process was complete. 3. [CLIENT] Made windows for newly created objects non-closeable The client allows the user to close object windows manually as a convenience, to avoid cluttering up the client when editing lots of objects. Unfortunately, if we allow the user to close a newly created object, there isn't necessarily a good way of getting that window back if it turns out that the user left some mandatory field unfilled when they go to click on 'commit'. Now object creation windows will not be closeable, so that it's not possible to 'lose' object windows that you need to do further editing on. 4. [CLIENT] Modified the list editor GUI component The 'list editor' GUI component used in the client may have a text field at the bottom to allow the user to simply type in something to add to the list. Previously, the 'Add' button connected to the text field was enabled all the time, confusing users manipulating the component. Now the 'Add' button will only be enabled when the user has entered something into the text button. 5. [SERVER/CLIENT] Modified removal/inactivation handling The server now by default refuses to allow objects to be removed that have an inactivation protocol defined. supergash can go ahead and remove objects directly, and custom DBEditObject subclasses can still redefine this behavior by overriding canRemove(). In conjunction with this change, the client has been modified so that it will always show 'delete' as an option when right-clicking on an object, even though the object may have an inactivation protocol defined. This makes things simpler, since it would be difficult to handle the delete toolbar icon properly if I just wanted the client to prevent the user from ever trying to delete an object that can be inactivated. And besides, the user might be operating with supergash privileges. 6. [SCHEMA] Lots of refinements to gasharl schema Modified the loader code to use BufferedReader, and to take care of a few deprecation warnings. Loading files from GASH should be a good bit faster now. The GASHARL schema now includes fields in the admin persona and owner group objects to track information used for more complete GASH compatibility. New users and groups will be created with their uid and gid starting in a numeric range compatible with GASH's permission model if the owner group has a minimum uid/gid set. The GASHARL schema now includes support for handling ARL contract information, which will be of no interest to anyone outside the lab. 7. [CLIENT] Reworked the persona select handling The client now prompts users with multiple admin personae with a persona selection dialog on log-in. 8. [SERVER] Fixed the html schema dump code in DBStore.java Oops. DBStore had my home directory path hard-coded when it should have been using the ganymede.htmldump property. Fixed. 9. [SERVER] Fixed a bug preventing creating new object types in develop mode The server's schema editing code had a bug that caused it to reject the creation of new object types when the server was run with -develop on the command line, which allowed for the creation of new universal fields. Not a bug that anyone else should have run into, but some aspects of this bug had the server doing some unnecessary extra work. 10. [CLIENT] Changed date representation in the query table The query table will now use 4 digit years when showing dates. 11. [CLIENT] Fixed Calendar GUI Previously, viewing an object that had date fields in it was not handled properly.. the date field in most respects did not act properly (clear button, calendar popped up in edit mode, etc.). Fixed bug in JPanelCalendar which caused the calendar's year field not to be refreshed properly upon rejecting a date as out of range. 12. [CLIENT] Fixed stupid lingering 'working guy' window bug Fixed the problem with the 'working' internal frame not being properly disposed of, and with it being hidden behind existing windows when created. 13. [CLIENT] Redesigned query dialog The querybox has been redesigned for clarity and user-friendliness. The querybox now allows the ownerlist field to be searched on. 14. [SERVER] Optimized memory handling for strings All strings loaded into the database are now interned(), trading database load time for memory/runtime efficiency. Not sure that this makes a noticeable difference, but it will be of some help. 15. [CLIENT] Fixed dialog placement and sizing errors The JCenterDialog placement code was broken if the dialog was larger than the frame parenting it. All Ganymede dialogs should now always be entirely visible on screen. The JCenterDialog's pack() method improperly adjusted the size of centered dialogs, causing the edges of centered dialogs to be too small. All dialogs should now be properly sized on NT as well as UNIX. 16. [SERVER] Empty strings are considered undefined in StringDBField The server's required fields logic wasn't detecting an empty string (a string equal to "" rather than null) as an undefined field, which it should do and now does. 17. [SERVER] Improved error reporting paths in server Changed the verifyNewValue() methods in DBField and DBEditObject to return a ReturnVal so that those methods can pass back detailed error dialogs to the user. 18. [SERVER/ADMIN CONSOLE] Added more information to admin console Added a column to the active user table to show how many objects each user is actively editing, to help track actual use. Added a column to the task table to show when each task was last run. ------------------------------------------------------------------------------- Jonathan Abbey jonabbey@arlut.utexas.edu Applied Research Laboratories The University of Texas at Austin -------------------------------------------------------------------------------