Building the Record Layer
Developing the Record Layer
Before contributing to the Record Layer, please see the contribution guide.
Building the Core
To do the full suite of checks and tests run:
./gradlew -PspotbugsEnableHtmlReport check test
If you enable the local repo in whatever uses the Record Layer, the following will make it available. The published jars will be in the directory
The Record Layer project does not use the Gradle IDEA plugin, unlike many similar projects. Instead, it uses IntelliJ IDEA’s builtin Gradle support to compile the project and run the tests; the repository will run a “sync” with the Gradle configuration every time the project is opened or a file referenced from
build.gradle is changed.
If you are used to opening older
.ipr-based IntelliJ projects, the process for opening this project will be somewhat different. Instead of selecting the
fdb-record-layer.ipr file, open the project’s root directory; IntelliJ will find the project configuration in the
If you make changes to most IntelliJ settings, they will save over the files that are checked into Git. These changes can be shared by committing the updated files.
There are a few settings that we use for consistency that are saved in the user-specific
workspace.xml file. These settings must be enabled manually by each developer:
Preferences > Editor > General > Auto Import > Optimize imports on the fly (for current project)
Preferences > Build, Execution, and Deployment > Build Tools > Gradle > Runner > Delegate IDE build/run actions to gradle
Preferences > Build, Execution, and Deployment > Build Tools > Gradle > Runner > Run tests using: > Gradle Test Runner
(optional, but useful) Preferences > Build, Execution, and Deployment > Build Tools > Maven > Importing > Automatically download > Sources
Before attempting to build anything, exit IntelliJ and build once from the command line. This will generate the protobuf files.
Launch IntelliJ again and Build > Build Project should succeed.
To verify that you have a working configuration, pick some tests that depend on FDB (such as those in the
FDBRecordStoreQueryTest fixture), and check that you can run them from IntelliJ.
Running the tests
In order to run the tests you will need to have FDB installed on your development machine. The latest FDB binaries can be found on the FoundationDB website.
Configuring tests for a non-standard FDB cluster file location
If a file
fdb-environment.properties exists in the root of the working directory, it contains environment variables that specify where to find
the local FDB. These settings will apply when running inside IntelliJ as well as from a command line and so are easier to manage than a shell script.
FDB_CLUSTER_FILE: the cluster file
.so) C API library