Author: Christos KK Loverdos <loverdos@gmail.com>
Blog: http://blog.ckkloverdos.com

Please do NOT email bug reports or feature requests.


The project is hosted at: http://sourceforge.net/projects/ckkl-core.


To compile, I use ANT 1.7.

The library contains the following:
    * Basic logging API to get rid of System.out.println and reveal the call
    stack position at the logging point (package: org.ckkloverdos.log).

    * Convenient handling of JavaBean properties towards flexible use under a
    JVM-based interpreter environment (your own DSL?) (org.ckkloverdos.java.beans).

    * Many utility classes for IO (org.ckkloverdos.io), Strings (org.ckkloverdos.string),
    time manipulation (org.ckkloverdos.time) and others.

    * A generic framework for the easy creation of toString() implementations
    (org.ckkloverdos.string). The framework can even handle classes that you only
    have in binary form and for which cannot directly override the toString()
    implementation.

    * An API handling Java classes as types that can be compared and aliased.
    In particular, the API makes it possible to handle primitive types and their
    object counterparts in the same footing.

    * A generic framework that unifies text or binary sources (e.g. Java source code
    or the bytes of a jar file). Each source is characterized by a type
    (org.ckkloverdos.source).

    * A functional-oriented list implementation under package
    org.ckkloverdos.collection. For now, it supports head(), tail(), map(), filter()
    and has a lot of utility methods especially for collections/arrays
    of strings.

    * Classes to support the use of pairs and tuples.

    * Support for hints as generic (last-position usually) parameters to methods, whose
    interpretation is based on context and whose semantics can be specifically defined.
    
    * An Assert utility to support programming-by-contract.

    * Ultra-fast dynamic primitive int arrays.

    * An extensible resource-loading framework.

    * A dynamic class loader that can be extended by new URLs or Files on-the-fly.

    * A resource API, generalizing the ClassLoader.getResource() API.

    * Provision for a JDBC driver to be registered with the DriverManager even if its
    class is not in the application CLASSPATH. See the javadocs of DriverManager
    for the constraints imposed by the SUN API.