Prerequisites
The lowest supported JDK version is 8.
All of the ScaleOut JARs are available on the ScaleOut Repository.
Connecting to the ScaleOut Repository
The ScaleOut repository is hosted in a Sonatype Nexus Repository at:
https://packages.scaleoutsoftware.com/repository/scaleout-release/
Configure your build system using one of the following examples. For complete documentation on connecting to the ScaleOut repository, see the JavaProjectConfigurationGuide.
- sync
maven
Add the ScaleOut release repository to the project’s pom.xml:
<repositories>
<repository>
<id>scaleout-release</id>
<name>ScaleOut Release Repository</name>
<url>https://packages.scaleoutsoftware.com/repository/scaleout-release/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
Dependencies stored in the repository can then be referenced normally.
For example:
<dependency>
<groupId>com.scaleoutsoftware</groupId>
<artifactId>scaleout-client</artifactId>
<version>3.2.4</version>
</dependency>
Maven will retrieve the artifact from the configured ScaleOut repository when the project is built.
Configuring Maven Globally
The repository can also be configured in the user’s Maven settings.xml file.
Note
Configuring Maven globally to connect to the ScaleOut repository is preferred when Maven will be used to generate ScaleOut archetypes.
On Linux and macOS, the file is normally located at:
~/.m2/settings.xml
On Windows, it is normally located at:
%USERPROFILE%\.m2\settings.xml
Add a profile containing the ScaleOut repository:
<settings>
<profiles>
<profile>
<id>scaleout</id>
<repositories>
<repository>
<id>scaleout-release</id>
<name>ScaleOut Release Repository</name>
<url>https://packages.scaleoutsoftware.com/repository/scaleout-release/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>scaleout</activeProfile>
</activeProfiles>
</settings>
This configuration makes the ScaleOut release repository available to all Maven projects run by the user.
- sync
gradle
Add the ScaleOut release repository to the project’s build.gradle:
repositories {
maven {
name = "scaleoutRelease"
url = uri("https://packages.scaleoutsoftware.com/repository/scaleout-release/")
}
mavenCentral()
}
Dependencies stored in the repository can then be referenced normally.
For example:
dependencies {
implementation "com.scaleoutsoftware:scaleout-client:3.2.4"
}
Gradle will retrieve the artifact from the configured ScaleOut repository when the project is built.
Configuring All Projects
For a multi-project Gradle build, the repository can be configured centrally in settings.gradle:
dependencyResolutionManagement {
repositories {
maven {
name = "scaleoutRelease"
url = uri("https://packages.scaleoutsoftware.com/repository/scaleout-release/")
}
mavenCentral()
}
}
This makes the ScaleOut release repository available to all projects in the Gradle build.
- sync
gradle-kotlin
Add the ScaleOut release repository to the project’s build.gradle.kts:
repositories {
maven {
name = "scaleoutRelease"
url = uri("https://packages.scaleoutsoftware.com/repository/scaleout-release/")
}
mavenCentral()
}
Dependencies stored in the repository can then be referenced normally.
For example:
dependencies {
implementation("com.scaleoutsoftware:scaleout-client:3.2.4")
}
Gradle will retrieve the artifact from the configured ScaleOut repository when the project is built.
Configuring All Projects
For a multi-project Gradle build, the repository can be configured
centrally in settings.gradle.kts:
dependencyResolutionManagement {
repositories {
maven {
name = "scaleoutRelease"
url = uri("https://packages.scaleoutsoftware.com/repository/scaleout-release/")
}
mavenCentral()
}
}
This makes the ScaleOut release repository available to all projects in the Gradle build.
Referencing the API JARs
You can acquire the ScaleOut DigitalTwin Builder JARs in one of two ways:
Reference the DigitalTwin builder JARs from your project.
Download the required JARs from the ScaleOut repository and locally reference them from your project.
- sync
maven
<dependencies>
<!-- ... -->
<!-- your dependencies -->
<!-- ... -->
<!-- the digital twin hosting library, used for creating simulation and real-time digital twins -->
<dependency>
<groupId>com.scaleoutsoftware.modules</groupId>
<artifactId>modules-hosting</artifactId>
<version>3.1.4</version>
</dependency>
<!-- the digital twin development library, used for testing simulation and real-time digital twins on the Workbench -->
<dependency>
<groupId>com.scaleoutsoftware.digitaltwin</groupId>
<artifactId>digitaltwin-development</artifactId>
<version>3.1.4</version>
</dependency>
</dependencies>
- sync
gradle
dependencies { <!-- the digital twin hosting library, used for creating simulation and real-time digital twins --> implementation group: 'com.scaleoutsoftware.modules', name: "modules-hosting", version: '3.1.4' <!-- the digital twin development library, used for testing simulation and real-time digital twins on the Workbench --> testImplementation group: 'com.scaleoutsoftware.digitaltwin', name: "digitaltwin-development", version: '3.1.4' }
- sync
gradle-kotlin
dependencies {
implementation("com.scaleoutsoftware.modules:modules-hosting:3.1.4")
implementation("com.scaleoutsoftware.digitaltwin:digitaltwin-development:3.1.4")
}