Documentation‎ > ‎

EnvironmentSetup

Ant configuration

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 located at /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 /target/java14_glazedlists 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.


Maven configuration

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.


IDE configuration

You should configure your IDE to put

  • compiled classes into the output directory target/classes
  • compiled test classes into the output directory target/test-classes

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 produce customized 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.

1. /source contains the Glazed Lists core code (EventList, ListEventListener, etc...)
2. /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 /lib folder)

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.

Comments