Skip to main content

Development

Overview

The following guide is intended to help developers who maintain or want to make changes to the Elide framework.

Building

Elide is built using maven. Because elide is a mono-repo with interdependencies between modules, it is recommended to fully build and install the project at least once:

mvn clean install

Thereafter, individual modules can be built whenever making changes to them. For example, the following command would rebuild only elide-core:

mvn clean install -f elide-core

Pull requests and release builds leverage GitHub Actions. PR builds simply run the complete build along with code coverage:

mvn -B install -DrepoToken=${{ secrets.COVERALLS_REPO_TOKEN }}

Release Versions

Elide follows semantic versioning for its releases. Minor and patch versions only have the following version components:

MAJOR.MINOR.PATCH.

Integration Tests

The elide-integration-tests module runs API tests against an embedded Jetty application with an H2 database for persistence. Integration tests are run for the JPA, hibernate, and inmemory stores. The module produce a 'test-jar' artifact that is then referenced for each data store module (jpa, hibernate, etc) that runs the corresponding tests.

Not every tests works for every store, and JUnit tags are leveraged to isolate the tests appropriate for each target.

When run in an IDE, the inmemory store is leveraged. To tests against a different data store, the IDE must be configured to:

  1. Set a property that selects the DataStoreTestHarness which in turn initializes the data store to test.
  2. Sets the classpath appropriately to the data store submodule that is being tested.

The following screenshot demonstrates configuring these two settings for the 'FilterIT' tests in IntelliJ:

Configuring IT Tests In Intellij