Skip to content

Managing Dependencies

Andrey Lomakin edited this page May 26, 2023 · 29 revisions

Xodus artefacts are published to Maven Central. The latest version is 2.0.1.

Your project can use different Xodus API layers consisting of API and implementation parts (subprojects, modules). Other parts of the project require different Xodus dependencies. If your project consists of an API and implementation parts, you probably want to define different dependencies for each.

API
Environments
Database Encryption

API

If you use Environments or Entity Stores, it is enough to make the API part of your project dependent on the xodus-openAPI artifacts:

<!-- in Maven project -->
<dependency>
    <groupId>org.jetbrains.xodus</groupId>
    <artifactId>xodus-openAPI</artifactId>
    <version>2.0.1</version>
</dependency>
// in Gradle project
dependencies {
    api 'org.jetbrains.xodus:xodus-openAPI:2.0.1'
}

Environments

If your project uses the Environments API, define a dependency on the xodus-environment artifacts for implementation:

<!-- in Maven project -->
<dependency>
    <groupId>org.jetbrains.xodus</groupId>
    <artifactId>xodus-environment</artifactId>
    <version>2.0.1</version>
</dependency>
// in Gradle project
dependencies {
    implementation 'org.jetbrains.xodus:xodus-environment:2.0.1'
}

Entity Stores

If your project uses the Entity Stores API, define dependencies on the xodus-entity-store, xodus-environment artifacts for implementation:

<!-- in Maven project -->
<dependency>
    <groupId>org.jetbrains.xodus</groupId>
    <artifactId>xodus-entity-store</artifactId>
    <version>2.0.1</version>
</dependency>
<dependency>
    <groupId>org.jetbrains.xodus</groupId>
    <artifactId>xodus-environment</artifactId>
    <version>2.0.1</version>
</dependency>
// in Gradle project
dependencies {
    implementation 'org.jetbrains.xodus:xodus-entity-store:2.0.1'
    implementation 'org.jetbrains.xodus:xodus-environment:2.0.1'
}

All the information that is provided above is summarized in the following table:

API Dependencies Implementation Dependencies
Environments xodus-openAPI xodus-environment
Entity Stores xodus-openAPI xodus-entity-store, xodus-environment

Database Encryption

To use database encryption, define a dependency on the xodus-crypto artifacts:

<!-- in Maven project -->
<dependency>
    <groupId>org.jetbrains.xodus</groupId>
    <artifactId>xodus-crypto</artifactId>
    <version>2.0.1</version>
</dependency>
// in Gradle project
dependencies {
    implementation 'org.jetbrains.xodus:crypto:2.0.1'
}

If you use built-in jetbrains.exodus.crypto.streamciphers.JBChaChaStreamCipherProvider stream cipher provider (which is recommended) no other dependendecies are needed. Otherwise you have to define a dependency on the Legion of the Bouncy Castle artifacts:

<!-- in Maven project -->
<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcpg-jdk15on</artifactId>
    <version>1.65</version>
</dependency>
// in Gradle project
dependencies {
    implementation 'org.bouncycastle:bcpg-jdk15on:1.65'
}