01/01/17
years of undocumented changes (yeah, shame over me, but at lest it has only been poorly documented, but actively maintained).

01/01/08
Several untracked changes.
Renamed com.antelmann.imagedb to com.antelmann.image package.
Removed com.antelmann.timeregister package (moved to an application specific environment while reworked).

04/25/07
Reimplementing com.antelmann.db.AbstractDatabase to use a Proxy directly (instead of a InterfaceWrapper) to properly wrap the method call into a transactionally synchronized checking.

04/01/07
Several unspecified changes and bug-fixes (I'm afraid); mainly in the com.antelmann.db package

03/26/07
Renamed com.antelmann.db.Entity to com.antelmann.db.PropertyEntry and com.antelmann.db.Resource to com.antelmann.db.DBEntry for better naming consistency.


03/19/07
Enhancements in com.antelmann.net.mail.JEmailViewer:
- when saving an attachment to disk, you're now being ask whether or not to overwrite
- after saving an attachment to disk, the parent directory is now automatically opened


02/28/07
Bug fixes in com.antelmann.timeregister.JWorkUnitValidatorForm.
Bug fix in the constructor of com.antelmann.timeregister.WorkUnitValidator.
Bug fix in com.antelmann.timeregister.SQLPunchDB.
The above fixes were all related to the problem that the minTime had never been properly stored/read.
Bug fix in com.antelmann.timeregister.WorkUnitValidator; the accept() method did not property check the intervals.


02/23/07
Extended the interface com.antelmann.db.DBClassStore.


02/19/07
Fixed an error in com.antelmann.JDBCRowStore which left out the ID while inserting/updating since the feature of ignoreInvalidProperties was put in.
Changed the API in regards to the Exceptions thrown in com.antelmann.util.Patch.


02/09/07
Enhancements for more flexibility in com.antelmann.sql.JDBCRowStore.
Changes in the interface com.antelmann.db.DBStoreListener.
New convenience methods in com.antelmann.sql.BaseRowMapper.
Bug fixes in com.antelmann.io.IniFile.
com.antelmann.net.Spider now supports the ability to obtain InputSreams from password protected HTTP sites; this new functionality is now also used by com.antelmann.net.Downloader and com.antelmann.net.JDownloader.
Changed default encoding for hashing to use UTF-8 in com.antelmann.util.Strings.
Enhanced com.antelmann.net.mail.JEmailViewer to better choose between plain text view and HTML-view.
Minor enhancements in com.antelmann.util.gui.Menus.
Some additions to the com.antelman.util.table package.


02/06/07
Changed the constructor of com.antelmann.util.Range for more flexibility.
Extended the classes com.antelmann.net.Spider, com.antelmann.net.Downloader and com.antelmann.net.JDownloader to include the functionality to download files using basic authentication.


01/10/07
Bug fixes in com.antelmann.util.table.FilteredTableModel


12/18/06
Moved development to JDK1.6.
Replaced sun.misc.BASE64Encoder with the Base64 implementation of iharder.sourceforge.net/base64


12/14/06
Bug fixes in the following classes:
- com.antelmann.util.logging.Logger
- com.antelmann.util.table.MethodTableModel
- com.antelmann.util.table.SortableTableModel


12/12/06
Renaming of package com.antelmann.mgmt to com.antelmann.db (as all classes really turn out to deal with database management rather than more general management).


11/15/06
Extensive rework of the com.antelmann.mgmt package.


10/31/06
Bug-fix in com.antelmann.cashregister.Customer: overriding of the equals method to prevent NullPointerExceptions when used in a JSearchList.
Taking out the age group marking, as it wasn't translated into Latvian/Russian yet - and would only steer confusion at this point.


10/05/06
First complete compilation with Mustang (J2SE 1.6); several code-fixes as a result (mainly redundant casts as a remainder of the conversion to generics for 1.5).


09/20/06
Some new methods and bug-fixes in the com.antelmann.ooffice package.


09/19/06
Several changes in com.antelmann.mgmt package.
New class: com.antelmann.util.Range
Improvements in com.antelmann.sql.ConnectionHelper (support for Range objects in fitering options).


08/29/06
Changes in the com.antelmann.timeregister APIs to use com.antelmann.mgmt.User instead of TimeUser wherever feasible.


08/17/06
New class in com.antelmann.sql: RowItemTableModel.


08/15/06
New classes and features in the package com.antelmann.ooffice.


08/08/06
Added a touchPad feature in com.antelmann.cashregister.RegisterAction using JTouchNumPad.


08/01/06
Rearrangement of various APIs; moved functionality into a new package called com.antelmann.util.table.
A number of unlisted different minor bug fixes and enhancements.
Took out com.antelmann.callcenter package from the public GNU stuff.


07/06/06
Fixed a bug in com.antelmann.util.Sets.split(..).


07/04/06
Added a feature to com.antelmann.sql.JDBCTableModel to support a projection on the table by supplying the desired columns.


06/27/06
Heavily revised the NetConnection API throughout com.antelmann.net package; rewriting of implementing classes.


06/22/06
Cleaned up various APIs to provide for more consistent naming conventions.


06/21/06
Changed com.antelmann.util.gui.JDateIntervalChooser to use com.toedter.calendar.JDateChooser instead of com.antelmann.util.gui.JTimeChooser


06/19/06
Bug fixes / improvements in com.antelmann.timeregister:
JPunchClock doesn't throw an unnecessary error anymore on the attempt to close the already closed socket on reconnection attempt.
JWorkUnitEditor now defaults to the correct end time if a validator is present on the selected user when creating a new manual entry.
JWorkUnitValidatorForm now selects the complete text on focus gain of text fields.
Also: added the class com.antelmann.util.gui.SelectAllOnFocusGain

06/02/06
Reimplemented com.antelmann.cashregister.SQLRegisterDB to take more advantage of com.antelmann.sql.JDBC functionality (more stable, but also a bit slower, sadly).
Removed com.antelmann.cashregister.RegisterDB.storeTransactions(Iterator<Transaction>) from the interface.
Replaced com.antelmann.util.Strings.languageComparator (and ignoreCaseComparator) with com.antelmann.util.UniversalComparator


05/31/06
Added the possibility of an employee directly associated with a com.antelmann.cashregister.Item


05/29/06
Added a feature in package com.antelmann.cashregister to group 'admin'-like RegisterAction buttons into one com.antelmann.util.gui.JComboButton; an affected implementation class (besides RegisterAction) is JRegisterButtonPanel


05/22/06
Renamed com.antelmann.util.Twain to TwainConnector.
Incorporated the library from http://www.javajeff.mb.ca/ into the new class com.antelmann.imagedb.TwainAdapter


05/18/06
com.antelmann.cashregister:
added support for a new configuration property (logoutAfterCommit); if enabled, the JCashRegister will perform a logout after a transaction is performed.


05/16/06
Changed com.antelmann.util.gui.JSearchList to use a protected method for filtering, so that the filtering can be customized through subclassing.


05/11/06
Changed com.antelmann.cashregister.JAnalyzer to use com.antelmann.util.gui.JDateIntervalChooser rather than something else.


04/25/06
Rewrote com.antelmann.cashregister.JAnalyzer to better allow customization through inheritance; also: rearranged the gui a bit.


04/13/06
Bug fix in com.antelmann.cashregister.SQLRegisterDB.limit(String, ResultSet, fieldName)


03/23/06
Fixed a bug in com.antelmann.util.Strings#hexstring(String) with the consequence, that all hash values using Strings#hash(String) would change!
Changed the APIs in the package com.antelmann.sql for better clarity.
Added more convenient functionality to com.antelmann.util.CypherKey.


03/20/06
Changed the default ClassLoader for com.antelmann.util.Settings from the system's class loader to the class loader of the Settings class.
Added com.antelmann.util.Misc.loadClasses(File...) and Misc.loadFromClassPath(String)


03/13/06
Bug fix in com.antelmann.cashregister.JWarehousePanel: the TransactionListener capability would stop iterating through the items if one item would not be a warehouse product.


02/20/06
Moved TimeSystem and implementing classes (also the related class NTPServer) from com.antelmann.net / com.antelmann.util to com.antelmann.calendar.


02/17/06
Moved com.antelmann.util.Stopwatch to com.antelmann.calendar.Stopwatch.
Corrected problems in some classes that implemented Comparable inconsistently with the equals() method, which caused trouble using SortedSet objects. 
Instead of classes having inconsistent Comparable interfaces, a standard Comparator was provided.


02/15/06
Added support for a filter in com.antelmann.cashregister.JProductPanel per request.


02/02/06
Changed the user form in com.antelmann.cashregister.JUserForm to not edit the password hash value, but to only reset the value through a button.
Also: changed the password hashing at com.antelmann.cashregister.User to the new com.antelmann.util.Strings.hash(String) method.
Note that the database format (formerly, the password hash was an int, now it's a String) changed as a result.
Changed the definition of com.antelmann.util.PatternExtractor to make better use of generics.
Changed the APIs in com.antelmann.util.logging to also make better use of generics.
As a result, a couple of other classes needed to change as well.


01/25/06
Moved the DatabaseException from package com.antelmann.util to com.antelmann.mgmt.
New functionality in com.antelmann.timeregister


01/24/06
Changed the API and model for com.antelmann.timeregister quite a bit to support a proper user model.
In this procedure, the package com.antelmann.mgmt was created to provide some common classes to be used in several packages, in particular com.antelmann.cashregister and com.antelmann.timeregister.
Also, bug-fixes in the configuration for com.antelmann.cashregister related to focus loss in tables.
Fixed another bug that would not update the de.madrugada_gmbh.coiffeur.JCustomerList on inserting a customer, which was due to an error in JMCustomerForm, where the returned Customer from the form had the wrong ID and was not the one reflected by the database. However, there still is the problem that there just *might* be an update after the inserted customer was set.


01/19/06
Fixed a bug on com.antelmann.io.MyFile#getFileRelativeTo(File), where the handling of a root dir caused an error.


01/13/06
Fixed a bug in com.antelmann.cashreigster.JWarehousePanel, so that entering a product through the ID will actually use the barcode instead of the product id.
Fixed a bug in com.antelmann.net.ServerLogFile (now properly supporting GZ compression).
Added functionality to com.antelmann.net.NetConnectionServer to remove inactive connections from the list.
Fixed a bug in com.antelmann.timeregister.JPunchServer, so that the number of active connections is displayed correctly.


01/11/06
extended some functionality in com.antelmann.sound.JPlayList


01/09/06
changed the typo "withdrawl" to the correct "withdrawal" in all code, documentation and database fields


01/09/06
fixed a bug in com.antelmann.cashregister.RegisterAction that would remove the customer association (if any) in case of a self-withdrawal


01/03/06
added/implemented com.antelmann.util.gui.Form* class files.
Moved some classes from com.antelmann.util(.gui) to com.antelmann.io (Backup, JBackup, JCompare).


12/29/05
added the interface com.antelmann.game.GameObserver and incorporated it into various classes


12/26/05
added the game implementation of Sudoku in com.antelmann.game.puzzle.sudoku


11/01/05
various changes in com.antelmann.cashregister


09/25/05
Added support for RSS feeds in com.antelmann.net package.


09/24/05
Moved the static member ietfDateFormat from com.antelmann.util.Strings to com.antelmenn.calendar.CalendarUtils


09/16/05
Added a barcode to com.antelmann.cashregister.Product, i.e. the id is no longer used for barcode scanning


08/03/05
Deprecated the use of taxCode in com.antelmann.cashregister.Category


07/25/05
Taken out the com.antelmann.cashregister package from the GPL distribution - for now


07/21/05
Among several other enhancements in com.antelmann.cashregister: fixed a bug that allowed for a Transaction to contain equal Item objects.


06/23/05
Created package com.antelmann.sql and put all classes (new and old) in there that are for JDBC apps.


06/10/05
Changed the licensing mechanism to differentiate between licenses that include sub-packages and those that don't.


04/01/05
Many significant changes in com.antelmann.cashregister including changing the interfaces and basic functionality.


02/20/05
New classes:
com.antelmann.util.Backup
com.antelmann.util.gui.JBackup
com.antelmann.util.JScheduler
com.antelmann.net.mail.MailScanner


02/18/05
Renamed com.antelmann.io.MyFileFilter to com.antelmann.ExtensionFileFilter


01/27/05
Removed com.antelmann.util.IETFDateFormat and put a replacement into com.antelmann.util.Strings.ietfDateFormat


01/26/05
API changes in com.antelmann.cddb including some new functionality.
The class com.antelmann.cddb.OperationNotAllowedException was removed.


01/22/05
Bug fix in com.antelmann.net.Downloader.
Changed com.antelmann.util.StopWatch to com.antelmann.util.Stopwatch (had to happen eventually).


01/10/05
Minor new functionality in com.antelmann.util.Debug and com.antelmann.util.gui.Menus.


01/08/05
Changed the JDBC driver implementation for MySQL in com.antelmann.util.JDBC to use MySQL Connector/J3.1 instead of MM.MySQL 2.0.8 driver.


12/01/04
Added the ability to limit functionality through licensing in package com.antelmann.


11/01/04
Added a couple of new classes and changed a few other enhancements while migrating to 'tiger'.


10/04/04
Switched to JDK1.5 and thus changed numerous APIs and implementations to match the new generic collections. Due to the changes in the API, the Version number now changed to 0.7.0.
In some of the 'older' packages, that have not been used by me recently (such as com.antelmann.game and com.antelmann.callcenter), most collections have been made of type Object for faster code migration.


10/02/04
Implemented an atomic clock using NTP (com.antelmann.net.AtomicClock).


09/25/04
Added logging capabilities to com.antelmann.net.SocketConnection.
Added a field to com.antelmann.util.logging.LogEntry.


09/24/04
Changed the client/server API in com.antelmann.net surrounding the NetConnection concept.


09/22/04
Added package com.antelmann.timeregister.


09/21/04
Changed com.antelmann.cddb.XcmdFormatException from a RuntimeException to a newly created com.antelmann.util.FormatException.


08/30/04
Added a new functionality to com.antelmann.cashregister package.


08/14/04
A few new utility classes w/ new functionality were added.


08/11/04
New functionality in com.antelmann.cashregister package.
The class TransactionAnalyser now provides flexible ways of grouping.
The corresponding gui (JTransactionAnalyser) gives some access to that new functionality.


08/10/04
Changed the class name from com.antelmann.util.Print to com.antelmann.util.PrintUtilities and added some functionality.
Added the class com.antelmann.util.gui.JPrinterSelect.


08/04/04
Small functional enhancement in com.antelmann.cashregister.JTransactionAnalyser


07/06/04
A new application (com.antelmann.net.mail.JEmailWatcher) provides a convenient way to monitor several email accounts remotely from one location. It very much eases many administrative work w/ POP3 email accounts.


07/04/04
The com.antelmann.util.logging package has been optimized to provide the same formatting capabilities over several LogWriter objects.


07/03/04
New layout improvements e.g. in com.antelmann.net.JFTP with the use of the new class SpringUtilities taken from the Java Sun tutorial for Swing.
The package com.antelmann.net.mail now has additional functionality to test an email account.


06/30/04
Changed the API at com.antelmann.net.mail.EmailService and corrected some stuff.
The class name changed from EmailService to EmailAccount.
Solved a few synchronization issues in com.antelmann.util.logging package; also, the API changed a bit.
Again changed com.antelmann.net.Spider to not include too many static methods anymore,
so that different Spider objects can be used to process data simultaneously
(since methods within one Spider object are synchronized for many reasons).
Due to several changes in public interfaces and class name changes (as well as other significant changes), the version number was finally increased to 0.6.0 alpha (from 0.5.0).


06/26/04
Functional enhancements of com.antelmann.util.gui.ImageViewer;
error correction in com.antelmann.io.InterceptInputStream.


06/25/04
Corrected a bug in com.antelmann.net.Spider: some methods accessing static resources were not properly synchronized.


06/16/04
The class com.antelmann.net.mail.EmailService now also supports text/html emails.


06/03/04
Enhancements in the com.antelmann.cashregister package:
The KHK class now has the ability to write to disk much more effectively.
The TransactionAnalyser now provides methods to aggregate Transactions
based on time.


06/01/04
Changed API of com.antelmann.net.Spider to avoid too many static methods.
Many other classes had to be changed accordingly as a result.


05/28/04
Fixed some bugs in com.antelmann.cddb package.


05/27/04
Fix in com.antelmann.io.MyFile#getFileRelativeTo(File):
works now also with root directory.


05/19/04
Enhancements in com.antelmann.util.logging: the interfaces are leaner and the filtering capabilities of each LogWriter are now used in the Logger class.
Also, the Level now implements Comparable to have an easier alternative to implement LogFilter objects based on Level importance.


05/12/04
New functionality and enhancements in the com.antelmann.cashregister package: reverse booking.
New LogWriters in com.antelmann.util.logging that support XML.
Better APIs in package com.antelmann.net.mail.


04/28/04
New class: com.antelmann.util.ThreadWorker


04/25/04
New functionality in the com.antelmann.cashregister package: take out items on a customer rather than directly through cash.


04/16/04
The new class com.antelmann.util.AbstractIterator is now used to ease the implementation of custom iterators or enumerations.
com.antelmann.io.Data has refined functionality; now, portions of a given stream can be transfered to another.
Minor enhancements throughout other classes within the package.


02/19/04
New methods providing new functionality:
com.antelmann.io.MyFile#fileCompareText(File)
com.antelmann.util.JDBC.getTableNames(Connection)

With this new constructor, a JDBC table can now be updated 
(and rows can even be inserted) when displayed in a JTable:
com.antelmann.util.gui.JDBCTableModel#JDBCTableModel(Connection, String, boolean)

com.antelmann.util.gui.JDBCInfoPane is a new class that provides a useful set of information (including all tables and their content) by simply passing a Connection object to it.


01/14/04
Enhanced com.antelmann.net.LocalWeb to provide more functionality.


01/11/04
Changed the booking in com.antelmann.cashregister.KHK to use the customer account of a transaction if present. The gui classes of the same package now allow to replace the customer of a transaction via mapping to appropriate accounts.


12/29/03
New classes in com.antelmann.net which easily handle to send emails (requires javax.mail api).


10/20/03
Changed com.antelmann.net.URLCache to not create a thread per refresh.


10/10/03
Added the member variable "inStock" for com.antelmann.cashregister.Product.

10/06/03
Enhanced the com.antelmann.util.logging package to provide filtering capabilities.
Several enhancements in com.antelmann.cashregister and com.antelmann.cashregister.hm packages.


10/04/03
Added compression capabilities to com.antelmann.io.MyFile.
Enhancements in the com.antelmann.cashregister package.


09/20/03
Several minor API improvements throughout various packages.


09/19/03
Changed currency values in com.antelmann.cashregister from float to double.


09/17/03
Changed com.antelmann.io.MyFile.synchronizeDir() to use the filter also in the 'delete map', i.e. files that do not match the filter in the target directory won't be deleted anymore.


09/07/03
First fully functional version of com.antelmann.cashregister application.
Several other minor improvements in other areas.


06/27/03
Upgraded the development to J2SE 1.4.2.
Added support for com.sun.java.swing.plaf.gtk.GTKLookAndFeel.


05/19/03
Enhancements in com.antelmann.io.MyFile.


04/25/03
New package: com.antelmann.cashregister; an implementation of a cash register with several features.


04/13/03
Several enhancements in the com.antelmann.sound package with a much improved JJukeBox.


04/11/03
New features in com.antelmann.io package: stream comparison in class Data allows to compare files by their content (see also MyFile).


04/08/03
Several minor bug fixes and enhancements.


04/02/03
Changes in com.antelmann.net.Spider to improve performance and features. Also, Spider.getImages() now contains occurring background pictures.


03/28/03
added the classes com.antelmann.io.InterceptInputStream and com.antelmann.io.ReplaceInputStream.
Further enhancements and new features in the com.antelmann.io package.


03/27/03
com.antelmann.cddb.JCDChecker now supports submissions of CDs to FreeDB - w/o much comfort at this point, though.

03/03/03
More cool utility classes for GUIs: com.antelmann.gui.JFontControl.


03/01/03
A cool new generally useful class (com.antelmann.util.gui.JFontChooser) is now used in various other GUIs. 
Also, the new class com.antelmann.util.gui.FontViewer is a nice utility for every PC user.
Changed some of the APIs to provide more intuitivity.


02/23/03
Changes in package com.antelmann.cddb to allow submissions to a FreeDB server (previously not implemented).
Several other improvements and new methods throughout various packages.


02/20/03
Fixed a bug in com.antelmann.util.JDBC, which handled the use of brackets in table names improperly; now, applications with table names with spaces have to add brackets manually.

01/13/03
Added some look&feel themes to the standard menu in com.antelmann.util.gui.Menus.


01/11/03
Enhancements in com.antelmann.net.FTPConnector: implemented correct handling of directory listings containing "." and "..".


12/22/02
Implemented a GUI for a JukeBox: com.antelmann.sound.JJukeBox.


11/17/02
The GUI for the tile puzzle game (package com.antelmann.game.puzzle) now supports moves per mouse-click.


11/15/02
Fixed a bug in com.antelmann.io.MyFile


11/12/02
Some minor enhancements in the GUI elements of the com.antelmann.util.gui package.


11/10/02
Enhanced the GUI of the package com.antelmann.game.muehle to support proper mouse selection of a capture move.


11/09/02
Added Icons on many toolbars throughout the packages.


11/08/02
Implemented the class com.antelmann.net.FTPConnector, which allows directory tree synchronization over FTP.


10/31/02
Enhancements in the com.antelmann.callcenter package - particular in the documentation.


10/29/02
Some miscellaneous enhancement in several classes.
Fixed bug in com.antelmann.io.MyFile.synchronizeDir().


10/14/02
Added the package com.antelmann.callcenter, which provides a simple but effective callcenter solution.


10/2/02 - 10/8/02
Several bug-fixes and enhancements. Restructuring of some classes and introducing the package com.antelmann.io.
Localization of classes providing English and German language resources.


9/28/02
Corrected an error in com.antelmann.sound.JZPlayer which caused an endless loop in certain cases.


9/14/02
New game implementation: com.antelmann.game.mine


8/27/02
Interface com.antelmann.cddb.CDInfo changed: method getFileContent() is renamed to getXmcdContent().
Error corrected in com.antelmann.cddb.CDID.getTrackLength(int); the method now returns the proper track length.
Method added in com.antelmann.cddb.SimpleCDCollection: searchContent().


6/8/02
The new class com.antelmann.net.Goolge provides a simple wrapper around the new Google.com API.
The new class com.antelmann.net.JMessenger provides a peer-to-peer messenger that supports encryption and file-transfer (bye bye Yahoo! or Microsoft messenger with their unwanted privacy policy :-).
The com.antelmann.net.JWebBrowser is enhanced to include some cool features that don't come with IE or Netscape, such as displaying info on the Web-Server.
Some minor enhancements in com.antelmann.net.JChat.


6/4/02
Added a very simple way to support encryption when sending objects over untrusted networks (see com.antelmann.util.Encoded).
Enhanced the implementation of com.antelmann.net.NetConnectionServer and com.antelmann.net.SocketConnection.
Changed com.antelmann.net.ChatServer and com.antelmann.net.JChat to support some simple encryption.
Also, JChat now supports to edit the user name used during chat.


6/3/02
Changes in com.antelmann.util.logging package: interface Log was removed and replaced with class Level (inspired by java.util.logging).


6/1/02
I drafted a new flexible class structure for a sophisticated music CD database (other than just plain CDDB xcmd format) in the package com.antelmann.cddb, including the new classes Resource, Contribution, Composition, Role, Group, Artist and Track.
Changed the tree search algorithms in com.antelmann.game.GameUtilities so that a pruned move according to the Player object whill still be evaluated through the heuristic method, so that the algorithms still work smoothly even if all avaliable moves are pruned. This change is also reflected in the doc for the interface description of com.antelmann.game.Player.


5/30/02
Many Improvements/corrections in com.antelmann.cddb; in particular the, class CDDBXmcdParser is now pretty much complete (replacing CDDBFileParser).
Also, changing a site with FreeDB now works smoothly; and a GUI template is developed.
The new class com.antelmann.net.Email represents an email object that can be send by various means (i.e. CGI scripts).


5/13/02
The new package com.antelmann.cddb allows transparent access to online CD databases for cataloging music CDs locally or otherwise.
Added com.antelmann.sound.MP3FileProperties, which gives convenient access to some functionality provided by the de.vdheide.mp3 package.


5/10/02
Changes in com.antelmann.util.Settings to allow applications to set an environment specific ClassLoader if needed (e.g. in app server environments).


5/9/02
Minor improvements to com.antelmann.net.ChatServer


5/5/02
The new class com.antelmann.net.CGI allows easy posting to CGI scripts on the web.
Minor improvement in com.antelmann.sound.JukeBox allowing now more flexibility.


5/1/02
Restructured a few directories, introduced the tagging interface com.antelmann.ThirdParty and made the build process work with Ant.


4/30/02
Put all images&sounds and other files that are needed under com/antelmann/resources.


4/28/02
The new class com.antelmann.net.JWebBrowser implements a simple but neat web browser; some features are quite cool, though.
Enhancements in com.antelmann.net.URLTree, com.antelmann.net.URLNode and com.antelmann.net.JSpider to take advantage of URLCache objects for much improved performance.
Restructuring and enhancements in com.antelmann.net.Spider.


4/27/02
Enhancements to com.antelmann.util.MyFile (dir synchronization, subtree deletion).
Renamed class URLInfo to class URLCache.
Changes in com.antelmann.net.URLInfo: now it also caches headers.
Changes in com.antelmann.net.Spider: some methods are moved from URLInfo to Spider and the methods now throw IOException instead of returning null, which is really more appropriate.


4/26/02
Added com.antelmann.util.gui.ImageLoader.


4/11/02
Added com.antelmann.sound.JukeBox for playing play lists.
com.antelmann.sound.JPlayer has a new feature: you can now select a random sound file from a directory subtree (a proper playlist ist still to be implemented).
Tested com.antelmann.sound.MP3Player with javalayer 0.2.
Bug fixes and additions in com.antelmann.sound.SoundPlayer (now with 'Listeners supported').
Documentation/tutorial updates accordingly to the changes made.


4/9/02
Renamed com.antelmann.util.JWatch to com.antelmann.util.JWatchLabel.
Added com.antelmann.util.gui.JAlarmClock.
Tiny enhancement in com.antelmann.util.StopWatch.


4/7/02
Fixed a bug that allowed a GameBoardMove to be legal in MuehleGame.isLegalMove(), but failed in MuehleGame.makeMove(); fix: overwrite equals() in MuehleMove.


4/6/02
Encapsulated calls to ClassLoader.getSystemResource() with Settings.getResource() as it is quite undesired to not have an appropriate exception thrown, but instead have some image loading thread complain about 'some' NullPointerException much later (for example).
Enhancements in the way some other exceptions are thrown.


4/5/02
Enhanced the documentation generation to include links to the standard Java documentation within my documentation.
Changed the interface com.antelmann.net.NetConnectionHandler to include a method that reacts on lost connections; affected classes are updated accordingly.
The class com.antelmann.util.Misc was stripped of some functionality that instead can now be found in com.antelmann.util.MyFile.
Enhancements in com.antelmann.util.MyFile (beyond what Misc had previously).


4/4/02
Added the class com.antelmann.net.WebWatcher.
Enhancements in the class com.antelmann.util.JDBC.


4/2/02
Added the new class com.antelmann.net.URLInfo to handle URLs with local caching.
Minor changes/additions in com.antelmann.util.Misc.


4/1/02
Added new methods to com.antelmann.util.MyFile.
Moved com.antelmann.util.gui.MyFileFilter to com.antelmann.util.MyFileFilter (where it makes more sense) and added some new functionality, which makes it suitable as a java.io.FileFilter as well as a javax.swing.filechooser.FileFilter.


3/31/02
All custom logging classes in the antelmann.com framework have been moved from the com.antelmann.util package to the com.antelmann.util.logging package to clarify their relation to java.util.logging in J2SE 1.4.
Enhancements in com.antelmann.util.logging.Logger: the class is now capable of writing to multiple LogWriters.


3/30/02
Enhancements in com.antelmann.net.JSpider: actions that may take longer are now taken out of the event handler thread for better response behavior.


3/27/02
Eliminated the methods setHeuristic() and getHeuristic() from the interface com.antelmann.game.GameMove as the concept of heuristic doesn't really belong into the GameMove (though it was a little more convenient this way; but now, the interface is cleaner and the algorithms for sorting moves based on their heuristics are safer, too).
As a result of the above, the class com.antelmann.game.GameBook really became obsolete, as its stripped functionality comes down to a simple Hashtable that could be used as a GameBook. Hence, the class com.antelmann.game.BookPlayer now contains just that - a Hashtable instead of a GameBook - and is simplified, too.
Also, the already eariler deprecated class com.antelmann.GameLibrary has now been removed entirely.


3/26/02
Enhanced the selectMove() algorithm in com.antelmann.game.TemplatePlayer to use multithreading on time-constrained evaluations to have a more balanced search among the different move branches.
Enhancements in com.antelmann.game.AbstractGame to gain better behavior when a game is used in multiple threads simultaneously.
Added some methods to com.antelmann.util.MyMath.


3/25/02
Changed interface com.antelmann.JGamePlay to use location and size specification instead of insets, to allow for more flexibility.
JNetgame, JPlayerClient, JGameFrame have been updated accordingly.
New game implemented: package com.antelmann.game.awari, with game, move, player and plain standard GUI.
Updated com.antelmann.net.JChat and com.anetlmann.net.JChatServer to use com.antelmann.util.Settings for defaults
Addition to com.antelmann.util.Misc: the method start(URL url) allows to start a URL in a web-browser, though this is platform dependant


3/24/02
Overwritten isCellEditable() for the JTable in com.antelmann.game.chess.JPieceSelector to disable cell editing for the piece selector.
The new class com.antelmann.util.Settings provides default application properties for the framework.
com.antelmann.sound.JPlayer is enhanced to advantage of the new default Parameters from com.antelmann.Version.getDefaultProperties().
Added a method to com.antelmann.util.gui.Menus to conveniently display various Properties.
The com.antelmann.Main class now allows access to System and Application Properties through com.antelmann.util.gui.Menus.


3/23/02
Additions and corrections to com.antelmann.Version.
A new class (com.antelmann.util.MyFile) was added to provide some additional functionality to a file.


3/12/02
Changed JSpinner dialog for level change to be modal in com.antelmann.game.JGameFrame


3/10/02
Refined com.antelmann.game.GameGUI; removed redundant method.
Added another standard set of chess icons for com.antelmann.game.chess.JChess and make it choosable from the menu; the additional set of chess icons is contained in com.antelmann.game.chess.SampleChessGraphics.


3/9/02
Added some methods to com.antelmann.sound.JPlayer to allow pre-loading of sounds.
Refined some documentation for the com.antelmann.game package.


3/8/02
Updated the JavaDoc API documentation along with a beginning of a tutorial.
Provided an explicit interface to allow customization of chess graphics in package com.antelmann.game.chess.
As a result, there are the following new classes/interfaces in the package com.antelmann.game.chess: SampleChessGraphics and ChessGraphics.
To apply the customization, a method was added to class JChess: setGraphics(ChessGraphics icons)


3/7/02
Fixed bug in com.antelmann.sound.JPlayer to always display the clip time correctly.
Fixed bug in com.antelmann.sound.MP3Player (getMicrosecondPosition() returned milliseconds instead of the desired microseconds).
Fixed bug in com.antelmann.game.JPlayerClient that led to resending the game to the client unnecessarily; also, the client now reacts properly to illegally performed moves (when e.g. a chess game was set up manually).
Changed the JSlider in com.antelmann.game.JGameFrame to a more appropriate JSpinner - taking advantage of J2SE 1.4 functionality.
Changed methods in com.antelmann.game.GameUtilities to reflect explicit search algorithms like depth-first, breadth-first and best-first search; also, the method bestFirstSearch is new.


3/6/02
Implementing the ability to setup a game with a GUI.
New class in com.antelmann.game.chess package: JPieceSelector
Various changes in com.antelmann.game.chess.
Changed interface com.antelmann.game.GameGUI and implementing classes to get access to the respective Frame instead of the Container.
Added stack traces to com.antelmann.util.LogEntry - taking advantage of J2SE 1.4 functionality.


3/5/02
Added a new method to the interface com.antelmann.game.Player: pruneMove (GamePlay game, GameMove move, int[] role)
for allowing tree pruning with domain knowledge in com.antelmann.game.GameUtilities.
Impacted classes: com.antelmann.game.TemplatePlayer, com.antelmann.SocketPlayer, com.antelmann.SocketPlayerServer


3/3/02
Bug fixes in com.antelmann.SoundPlayer and com.antelmann.MP3Player


2/28/02
Added build info and upgrade check in com.antelmann.Version.
Made a bunch of game classes non-public that are not really needed outside the domain of the game.


2/28/02
Began this change log (all previous changes had not been logged explicitly, I'm afraid).