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:
- Set a property that selects the DataStoreTestHarness which in turn initializes the data store to test.
- 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: