You should have a recent Ant installation to use our build file. To take full advantage of all targets you'll also need the following libraries in the
lib directory of your Ant installation:
- JUnit, Java unit testing tool.
- Apache Jakarta BCEL, a tool that can be used to remove unnecessary classes from a .jar file. It is necessary to build our demo jar.
If your computer has internet access then Glazed List's build system is
capable of automatically downloading all external dependencies from a
file repository managed here.
Consequently, the ANT build system is self-healing since it downloads
missing dependencies (jar files) automatically and places them at the
appropriate locations within the Glazed Lists project structure.
Another unique feature of the Glazed Lists build system is
that we produce both a J2SE 1.4 compliant and J2SE 5.0 compliant jar.
We do this by writing a build system that can self-modify.
Specifically, executing the "java14" target produces a subdirectory
/target/java14_glazedlists which is identical to the main build directory with the following exceptions:
- all source code within
/target/java14_glazedlists has been transformed to be J2SE 1.4 compliant using our Declawer tool
/target/java14_glazedlists/build.xml has been
adjusted to compile all class files for a target level of J2SE 1.4 (so
compiling with J2SE 5.0 still produces J2SE 1.4 compliant class files)
After executing "ant java14" you can simply change directories into
and begin working with the derived build system as you normally would
with any regular build system. All targets except "java14" should
function as expected.
While there is a Maven pom.xml file in the standard distribution,
Maven isn't used to build Glazed Lists. The use of ANT is supported.
Further info on our use of Maven is available here.
You should configure your IDE to put
- compiled classes into the output directory
- compiled test classes into the output directory
Glazed Lists is a really generic library (we are a List
library for God's sake!) and as such there are many places that Glazed
Lists can be used effectively. As a result, our build system has been
designed to be highly configurable so that, if users wish, they can
glazedlists.jar files that contain
only the packages that are relevant to their personal project. With
this goal in mind, Glazed Lists has two main areas in which you will
find source code.
/source contains the Glazed Lists core code (EventList, ListEventListener, etc...)
/extensions contains all of the third-party libraries with which Glazed Lists interoperates (JFreeChart, SWT, Hibernate, etc.)
Constructing an IDE project which builds the core and the extensions involves two things:
1. Telling your IDE where the sources are (
/source, and the
/source folder found in each extension)
2. Telling your IDE where it will find all of the dependent jar files (the jars for any given extension can be found in its
All extensions are completely independent of each other and only depend on source code found in the
/source folder of Glazed Lists and jars found in its own
/lib folder so you can decide which extensions you want to use and which you don't care about.