# ccl Release History

Continue reading on ccl's main page.

## Table of Contents

- Version 32.69
- Version 31.67
- Version 30.66
- Version 29.63
- Version 28.61
- Version 27.59
- Version 26.57
- Version 25.54
- Version 24.51
- Version 23.50
- Version 22.48
- Version 21.47
- Version 20.46
- Version 19.44
- Version 18.43
- Version 17.42
- Version 16.41
- Version 15.37
- Version 14.36
- Version 13.33
- Version 12.32
- Version 11.31
- Version 10.29
- Version 9.26
- Version 8.24
- Version 7.22
- Version 6.20
- Version 5.18
- Version 4.11
- Version 3.9
- Version 2.7
- Version 1.6

## Release History

### Version 32.69

Version 32.69 has been released on November 23, 2003

...

#### What's New

1. Improved exception verbosity in XML/XSLT processing.
2. Method getStandardDate became getDate in Util class.
3. New method getName in Test class lets you overwrite the test class name.
4. New assertion methods 'assertEquals' in ccl.util.Test.
5. New method 'FileUtil.writeTempFile' to write content into a new temporary file.
6. New convenience method 'Util.getStackTrace()'.
7. New convenience method 'Util.getDateTime()'.

#### Fixed Bugs

1. XMLImporter has to post to the full class name.
2. Increased XMLImporter file limit from 2 to 256 MB.
3. Util.getMonth(..) is now more picky about its input.

### Version 31.67

Version 31.67 has been released on May 9, 2003

New GraphicsUtil class.

#### What's New

1. Already released with version 30, but not announced: A new graphics utility class with methods to save components or images as gif or jpg files and other goodies. Thanks to J. M. G. Elliott for the Gif89Encoder package, which is used internally.

#### Bugs Fixed

1. gif89encoder.jar has not been distributed with the ccl lib.
2. ccl.util.test.UtilPackageTest source file has not been distributed.
3. ListEditDialog doesn't set the background anymore. It is not necessary and also sabotages some look and feels. Thanks to Kenneth Westelinck for this fix.

### Version 30.66

Version 30.66 has been released on May 1, 2003

New table enhancing the javax.swing version.

#### What's New

1. New table ccl.swing.CCLTable, making the swing table nicer looking with continuous vertical grid lines even over empty rows and other enhancements. Thanks to Kenneth Westelinck for his code and debugging work on this class.
2. New border ccl.swing.CCLButtonBorder, which should look quite familiar for most people.
3. New ccl.swing.CCLButtonBorderTableCellRenderer class for nicer borders in table headers.
4. New method SwingUtil.setCCLButtonBorderOnTableHeader to change the table header border.
5. New ccl.swing.CCLLineBorder class, which adds variable line thickness for each individual line - compared to javax.swing.border.LineBorder.
6. New ccl.swing.GraphicsUtil.equals( Image, Image ) for image comparison on a pixel level.
7. In the ccl.servlet.HTML class, the operation mode form element uses now three buttons for add, change, and delete instead of a selection box.

#### Bugs Fixed

1. Applied a check that custom user look and feels don't get overwritten in class ccl.swing.MainJFrame.

### Version 29.63

Version 29.63 has been released on October 6, 2002

Changed license from MPL 1.0 to MPL 1.1/GPL 2.0/LGPL 2.1.

#### What's New

1. The license used for the ccl library has been modified from the Mozilla Public License version 1.0 to Mozilla Public License version 1.1 or GNU General Public License version 2 or GNU Lesser General Public License version 2.1. The user is free to use the ccl library under each of these three licenses, whichever she/he prefers.

#### Fixed Bugs

1. A stupid test was forgotten to be removed that could only succeed on my own development environment.
2. Some self tests were disabled by mistake.

### Version 28.61

Version 28.61 has been released on September 22, 2002

Ccl test class supports now the JUnit framework.

#### What's New

1. Ccl test framework supports now test classes originally developed to use the JUnit framework.

#### Fixed Bugs

1. A severe bug in method copyDir in class FileUtil, which has been reported by Jeff Quarrington.

### Version 27.59

Version 27.59 has been released on August 5, 2002

A couple of small code and documentation enhancements.

#### What's New

1. New ccl.swing.GraphicsUtil class.
2. Added debugserver manual page.
3. New HTML.printTitle(..) which lets you specify the text color.
4. New HTML.flush() method to force to send data back to the client immediately.
5. setBusy and isBusy methods turn frame mouse cursor to an hour glass and make sure no user interaction can take place (in class ccl.swing.MainJFrame).
6. MainJFrame has a new getHelpBroker method that can be used to register a Java Help broker object in your application.
7. RunnableAction.actionPerformed is not final anymore. Still should not be overwritten normally.
8. Old project files in the File menu have now automatically mnemonics.

### Version 26.57

Version 26.57 has been released on May 20, 2002

New multipart request library and debugserver shell script.

#### What's New

1. DebugServer has now its own shell script to start it up (./bin/debugserver).
2. Instead of using O'Reilly's servlets library ccl is now using Jason Pell's multipart request library. While O'Reilly's had some severe license implications, Jason's library is under the LGPL.

### Version 25.54

Version 25.54 has been released on May 1, 2002

A couple of small additions and bug fixes.

#### What's New

1. New convenience method ccl.servlet.HTML.printFormularTextInput(..) with size of text field specification.
2. New ccl.util.Util.centerLine(..) and formatCenter methods to format ascii text in center mode.
3. New ccl.servlet.DebugServer which can be used to study details of HTTP or other network protocols.
4. Slightly improved ccl.swing.DoubleList and DoubleListModel.

#### Fixed Bugs

1. Get class path for classes without a package failed (ccl.util.FileUtil.getClassPath(Object)).
2. Method getUserTables returned also system tables for the McKoi database. This is fixed now in class ccl.util.DBUtil.
3. ccl.servlet.ChangedRequest is updated to the latest servlet api (HttpServletRequest).
4. ccl.util.Util.isOSSolaris() checks now also for SunOS.
5. Table name gets converted to lowercase when getting column info in ccl.servlet.XMLImportHandler. This is necessary for postgresql 7.2, this might now confuse other databases.

### Version 24.51

Version 24.51 has been released on December 30, 2001

Minor bug fixes.

#### Fixed Bugs

1. Added new tests for ccl.servlet.XMLImportHandler class using a PostgreSQL database. If the user has no JDBC driver installed for this database, the tests will be skipped.
2. ccl.util.Init class did not accept project file names without a suffix.

### Version 23.50

Version 23.50 has been released on November 27, 2001

Minor bug fix with comman line option handling.

#### Fixed Bugs

1. Text after commas in command line option descriptions got truncated.

### Version 22.48

Version 22.48 has been released on October 31, 2001

Minor feature enhancements.

#### What's New

1. Util.untabify() method replaces tab characters with the necessary number of spaces.
2. New convenience method ccl.xml.XMLUtil.getValueOf(file,xpath).
3. New method ccl.util.FileUtil.normalizeFileName(filename) which returns an absolute file name but takes the system property "user.dir" into account (instead of the native system's current directory (which can't be changed that easily in Java).
4. New class ccl.util.ClassPathUtil which contains methods moved from other classes dealing with finding files or directories from the classpath or inside jar archives.

### Version 21.47

Version 21.47 has been released on September 14, 2001

Minor feature enhancements.

#### What's New

1. XML helper class supports now Xalan version 2. Support for Xalan version 1 has been dropped.
2. New method ccl.swing.SwingUtil.maximizeWindow( Window, float ) to set the size of a window to a given percentage of the screen size.

### Version 20.46

Version 20.46 has been released on September 8, 2001

New ascii text formatting methods (e.g. block mode).

#### What's New

1. New methods to format ascii text in block mode or left aligned (ccl.util.Util.formatBlock(..) and ...formatLeft(..)). This is especially useful to be invoked from an xslt parser.
2. There is new example code that demonstrates the gui framework. It is a base application with a frame, menu, info box, and help page which can be used to jump start your own application. Take a look at doc/guiexample/Main.java and doc/guiexample/ViewController.java. A precompiled project setup of the example with start and build script etc. can be found at doc/guiexample/guiexample.zip.
3. Ccl lib comes with an ant build.xml script now. This should help to compile the whole lib on your own. The ant script does not yet help to compile the native Linux shared library.
4. New method ccl.util.Util.systemAndWait( String ) and ...systemAndGetError( String ). These are just added for convenience, as the same methods have been there already with an Vector argument.
5. New method ccl.util.FileUtil.getFiles( dir, prefix, suffixes ) gets all base file and dir names inside a given directory which map the given prefix and suffix list.

#### Bugs Fixed

1. Exception in ccl.swing.DoubleList when clicking in left list below last line.
2. Exception in ccl.util.FileUtil.copy is not printed to standard error anymore.

### Version 19.44

Version 19.44 has been released on July 22, 2001

Minor API change.

#### What's New

1. Moved method ccl.servlet.XMLExporter.printEscaped(..) to class ccl.xml.XMLUtil.escape(..). This method replaces characters in a string with an XML entity reference if necessary. Credit for this code goes to the Apache Xerces project from which it is taken.

### Version 18.43

Version 18.43 has been released on July 15, 2001

Minor bug fix version.

#### Bugs Fixed

1. Return value of FileUtil.move(..) was different from what the documentation said.

### Version 17.42

Version 17.42 has been released on June 25, 2001

Minor enhancements.

#### What's New

1. More convenience methods for converting xml via xslt in ccl.xml.XMLUtil.
2. New native method setLocation( Frame f, int x, int y ) for Linux as my last hope to workaround a nasty Java bug.

### Version 16.41

Version 16.41 has been released on June 10, 2001

Minor new features.

#### What's New

1. New class ccl.servlet.CSV to generate spread sheet data in csv format.
2. New method in ccl.servlet.HTML to convert a null or empty string into a space in HTML ( ).
3. Added ccl.util.Util.getFirstDayOfMonth().

#### Bugs Fixed

1. ReflectionClassLoader failed loading classes from package javax in version Java 1.1.
2. A bug fix in FileUtil.readStream(). End of stream was not always successfully recognized.

### Version 15.37

Version 15.37 has been released on April 22, 2001

New XMLUtil class.

#### What's New

1. ccl.xml.XMLUtil is an utility class which makes transforming xml via xslt stylesheets just as convenient as invoking a shell script. You provide either files or strings and get the transformed xml file back as a string or file. No need to know the classes used from Xalan in detail.

#### Bugs Fixed

1. None.

### Version 14.36

Version 14.36 has been released on April 19, 2001

Improved HTML formatting class.

#### What's New

1. Class ccl.servlet.HTML has better formatting of data tables.
2. Class ccl.util.DBUtil supports now InstantDB as well as Sybase.

#### Bugs Fixed

1. None.

### Version 13.33

Version 13.33 has been released on March 11, 2001

New servlet support classes and a TextViewer class.

#### What's New

1. New class ccl.servlet.HTML.
2. New class ccl.servlet.XMLExporter.
3. New class ccl.servlet.XMLImporter and ccl.servlet.XMLImportHandler.
4. New class ccl.util.DBUtil.
5. New class ccl.swing.TextViewer.

#### Bugs Fixed

1. None.

### Version 12.32

Version 12.32 has been released on February 28, 2001

Minor new features.

#### What's New

1. Util has new methods to get formatted memory information (percentage of used memory etc.).
2. FileUtil has new methods 'getBaseName' and 'getDirName'.

#### Bugs Fixed

1. InputCancelDialog had a severe (off by one) bug in its history handling.

### Version 11.31

Version 11.31 has been released on February 11, 2001

Minor new features.

#### What's New

1. Text field input dialog (ccl.swing.InputCancelDialog) has optional drop down list.
2. FTPUtil is a wrapper of the sun.net.ftp.FtpClient class. This class provides convenience methods for ftp put and get in binary mode.

#### Bugs Fixed

1. FileUtil.getFiles(String,String) is now also able to process empty ("") file suffixes.

### Version 10.29

Version 10.29 has been released on December 2, 2000

A minor bug fix.

#### What's New

1. Method 'getTimeWithMillis' in ccl.Util.
2. Shell script and batch file included to start self test.
3. Makefile (with hardcoded paths) for compiling native code for Linux is included.

#### Bugs Fixed

1. For applications installed under a classes directory the application path was not identified correctly.

### Version 9.26

Version 9.26 has been released on October 27, 2000

Init class does use awt only if necessary.

#### What's New

1. Init class does not use awt if not necessary. The awt is only needed for color objects anyway. In batch mode the background colors is hardly of relevance. Now the class can be used on machines which have no X installed.

#### Bugs Fixed

1. None.

### Version 8.24

Version 8.24 has been released on September 28, 2000

Minor additions.

#### What's New

1. ccl.util.OutputErrorStreamManager captures stdio and stderr streams.

#### Bugs Fixed

1. Miscellaneous.

### Version 7.22

Version 7.22 has been released on June 30, 2000

Some new GUI classes.

#### What's New

1. New class BusyWindow, CCLTreeNode, HighlightableList, ListCancelMultiSelector, ListEditDialog, ListToListPanel, MetaJDialog, MemoryDialog, MemoryPanel, and ThreadsDialog.
2. SplitPane provides workaround for setDividerLocation( double ) bug in Swing JSplitPane class. Thanks to Marcel Nijman for this code.
3. JCFUtil class which offers some helper methods for analyzing Java byte code files. It uses Matt Yourst's Java Class File library.
4. New package ccl.platform with Linux class to access some Unix system functions (e.g. create symbolic link etc.).

#### Bugs Fixed

1. Miscellaneous.

### Version 6.20

Version 6.20 has been released on April 17, 2000

Some new GUI classes.

#### What's New

1. New class BusyWindow, CCLTreeNode, HighlightableList, ListCancelMultiSelector, ListEditDialog, ListToListPanel, MetaJDialog, MemoryDialog, MemoryPanel, and ThreadsDialog.
2. SplitPane provides workaround for setDividerLocation( double ) bug in Swing JSplitPane class. Thanks to Marcel Nijman for this code.
3. JCFUtil class which offers some helper methods for analyzing Java byte code files. It uses Matt Yourst's Java Class File library.
4. New package ccl.platform with Linux class to access some Unix system functions (e.g. create symbolic link etc.).

#### Bugs Fixed

1. Miscellaneous.

### Version 5.18

Version 5.18 has been released on December 16, 1999

New date methods and GUI date text field.

#### What's New

1. New GUI date text widget ccl.swing.DateField.
2. New date methods in ccl.util.Util.

#### Bugs Fixed

1. Miscellaneous.

### Version 4.11

Version 4.11 has been released on October 18, 1999

New GUI/Swing package and some minor ccl.util classes.

#### What's New

1. New GUI/Swing application framework and utility classes.
2. New ThreadExitSecurityManager, History, Initializable, Testable classes.

### Version 3.9

Version 3.9 has been released on August 1, 1999

New ccl.util classes.

#### What's New

1. Direction, Enum, FileObject, History, Init, Option, ReflectionClassLoader, Singleton, SysEnv classes and Exitable interface.

### Version 2.7

Version 2.7 has been released on July 29, 1999

New support for Windows ini or KDE config files.

### Version 1.6

Version 1.6 has been released on July 26, 1999

Chr. Clemens Lee, email to: clemens@kclee.com