EnvironmentSetup

Gradle configuration

Glazed Lists uses the Gradle build system since version 1.11.

By using the Gradle wrapper (gradlew), it automatically donwloads the configured version of Gradle.

Currently, Gradle 3.5 is used. Note, that an installed JDK 1.7 is the minimum requirement. The JAVA_HOME environment variable should point to the Java installation directory.

IDE configuration

For Eclipse, it's recommended to install and use the Buildship plugin for Gradle support.

After cloning the Git repository, you just have to import the existing Gradle project by pointing to the root directory of the cloned Git repo and follow the instructions.

Legacy configuration (Glazed Lists < 1.11)

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:

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:

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

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.