is a reusable Java library distributed under the terms of the Mozilla
Public License (or GNU GPL or GNU LGPL, whichever of these you like).
It contains code I wrote and (re-)used for several projects (Jacob,
and others) and plan to use again for new projects
in the future.
Maybe this code is of some use for you too.
How the gui part of the library is used to create a base application, can
be seen from the source code examples Main.java and
It is a base application with a frame, menu, info box, and
help page. The code can be used to jump start your own
A precompiled project setup of the example with start and build script etc. can be
found in this guiexample.zip file.
The file utility methods have a separate page dedicated to them.
They can also be used by a package of its own independently from the rest
of the ccl library: FileUtil
You can always find the newest version of this page at: http://www.kclee.com/clemens/java/ccl/
Here is the meat: The ccl
- Basic GUI/Swing application framework and utility classes
- Additional string methods
- Vector methods
- File methods
- Debug and assertion support
- Test framework
Java JDK >= 1.4.1.
ccl Version 32.69
Just unzip ccl32.69.zip and add ccl32.69/lib/ccl.jar to your classpath. Now you can use the ccl package in your project. With
java ccl.Main -check
you can trigger a ccl self test.
There is also a script in the bin directory
which you can use to invoke the self test.
This should work most of the time. Eventually you need to
specify in the shell script or batch file
some environment variables explicitly if the script could not
figure out everything itself.
If you use the help feature from ccl.swing.MainJFrame, you
have to add JavaHelp to your classpath. For convenience reasons JavaHelp is distributed together with ccl (just add ccl32.69/lib/jhbasic.jar to your classpath).
Version 32.69 has been released on November 23, 2003
- Improved exception verbosity in XML/XSLT processing.
- Method getStandardDate became getDate in Util class.
- New method getName in Test class lets you overwrite
the test class name.
- New assertion methods 'assertEquals' in ccl.util.Test.
- New method 'FileUtil.writeTempFile' to write content
into a new temporary file.
- New convenience method 'Util.getStackTrace()'.
- New convenience method 'Util.getDateTime()'.
Here is the documentation about changes of
- XMLImporter has to post to the full class name.
- Increased XMLImporter file limit from 2 to 256 MB.
- Util.getMonth(..) is now more picky about its input.
Below is a list of additional
contributors and supporters: Thanks to
- Doug Lea for ccl.util.Comparable interface and ccl.util.Util.quicksort(..) methods
(they are Public Domain and taken out of his collection library)
- Elliotte Rusty Harold for ccl.util.StreamCopier copied from Java I/O p.
- Benjamin "Quincy" Cabell V (email@example.com), Besiex Software for StringMethods.java which is renamed to ccl/util/IniFile.java and which is distributed under the terms of the GNU Library General Public License.
- Paddy Ramanathan <firstname.lastname@example.org> for ccl.util.SysEnv. It was a contribution for the Jacob project.
- My managers at UBS Warburg who let me use and maintain this library for project development.
- Marcel Nijman for SplitPane code, which I took out of a news group.
- Matt T. Yourst for Java Class File library which is used by the the ccl.jcf package. The Matt's jcf library, which
is redistributed with this library, has the following copyright disclaimer:
All included source code, binaries, and information ("the Software")
are Copyright 1997 Matt Yourst ("the Author"). Permission is granted to
use the included files for any purpose so long as appropriate credit is
given to the Author.
- Glen Cordrey for a tip to set the application home directory automatically in a batch file.
- Brian Uegawachi and jalal for bug reports.
- The Apache Xerces project for making code for escaping
a string with XML entity references freely available.
- Jason Pell for a
multipart request library
under the LGPL
which ccl uses for importing data from an XML file into an SQL
database using a servlet [2002-05-20].
- Alex Molochnikov (email@example.com) for example code
to set the hour glass mouse cursor properly [2002-05-20].
- Jeff Quarrington for reporting a severe bug in method copyDir in class FileUtil [2002-09-22].
- Kenneth Westelinck (firstname.lastname@example.org) for
his code and debugging work on the ccl.swing.CCLTable [2003-05-01].
- Kenneth Westelinck for feedback of missing files
and for a minor bug fix [2003-05-04].
- J. M. G. Elliott for the Gif89Encoder package,
which is used internally [2003-05-09].
- Marco Schmidt for his example code to save an image as
an jpeg file [2003-05-09].
- Jef Poskanzer for GifEncoder on which Gif89Encoder is based on [2003-05-09].
Chr. Clemens Lee
<email@example.com> (my resume),
last updated: $Date: 2003/05/09 20:25:17 $