ScaleOut Java Project Configuration Guide

This Java Project Configuration Guide demonstrates how to configure Java projects to build applications which reference ScaleOut APIs in the ScaleOut Product Suite.

All Java libraries (JARs) needed to interface with ScaleOut StateServer®, ScaleOut StreamServer™, and the ScaleOut DigitalTwin Builder™ for ScaleOut StreamServer are available in the ScaleOut API Maven repository. These APIs are also available as part of the ScaleOut Product Suite installer. As explained below, you can add these libraries to your project using Gradle or Maven by including the ScaleOut API repository and then adding ScaleOut artifacts as dependencies to your project.

Alternatively, you can include the ScaleOut Product Suite libraries by referencing them locally through the filesystem after installing the product. They are always located in the installation directory, which is by default, “/usr/local/soss/java_api/” (“C:Files_Software” on Windows).

The following sections detail how to configure a Gradle or Maven project to reference the ScaleOut Product Suite APIs.

Gradle

For Gradle, you can add the ScaleOut API Repository to your build.gradle by adding the following under repositories:

repositories {
    mavenCentral()
    maven {
        url "https://repo.scaleoutsoftware.com/repository/external"
    }
}

…and then you can add the following JARs relative to your needs and licenses:

APIs for ScaleOut StateServer:

// Use the following for the Java NamedCache
compile group: 'com.scaleoutsoftware.client', name: "jnc", version: '5.8.18.349'
// Use the following for the JSR107 definition backed by ScaleOut StateServer
compile group: 'com.scaleoutsoftware.client', name: "jsr107", version: '1.2'
// Use the following for Spring Sessions backed by ScaleOut StateServer
compile group: 'com.scaleoutsoftware.spring', name: "session", version: '1.1'

APIs for ScaleOut StreamServer:

// Use the following for streaming events with ScaleOut StreamServer
compile group: 'com.scaleoutsoftware.client', name: "eventpipeline", version: '5.8.18.349'
// Use the following for streaming events to/from a Kafka cluster
compile group: 'com.scaleoutsoftware.client', name: "kafkaclient", version: '5.8.18.349'

APIs for the ScaleOut DigitalTwin Builder for ScaleOut StreamServer:

// Use the following to define a Digital Twin
compile group: 'com.scaleoutsoftware.digitaltwin', name: "core", version: '1.2.4'
// Use the following for an API driven deployment of a Digital Twin model
compile group: 'com.scaleoutsoftware.digitaltwin', name: "deployment", version: '1.2.4'
// Use the following for directing events from data sources to deployed Digital Twins
compile group: 'com.scaleoutsoftware.digitaltwin', name: "datasource", version: '1.2.4'
// Use the following for testing Digital Twin models against mocked out infrastructure
compile group: 'com.scaleoutsoftware.digitaltwin', name: "mock", version: '1.2.4'

Maven

For Maven, you can add the ScaleOut API Repository to your pom.xml by adding the following repository reference:

<repository>
    <id>ScaleOut API Repository</id>
    <url>https://repo.scaleoutsoftware.com/repository/external</url>
</repository>

…and then you can add the following JARs relative to your needs and licenses:

APIs for ScaleOut StateServer:

<dependencies>

    <!-- Use the following for the Java Named Cache -->
    <dependency>
      <groupId>com.scaleoutsoftware.client</groupId>
      <artifactId>jnc</artifactId>
      <version>5.8.18.349</version>
    </dependency>
    <!-- Use the following for the JSR107 definition backed by ScaleOut StateServer -->
    <dependency>
      <groupId>com.scaleoutsoftware.client</groupId>
      <artifactId>jrs107</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- Use the following for Spring Sessions backed by ScaleOut StateServer  -->
    <dependency>
      <groupId>com.scaleoutsoftware.spring</groupId>
      <artifactId>session</artifactId>
      <version>1.1</version>
    </dependency>
</dependencies>

APIs for ScaleOut StreamServer:

<dependencies>
    <!-- Use the following for streaming events with ScaleOut StreamServer  -->
    <dependency>
      <groupId>com.scaleoutsoftware.client</groupId>
      <artifactId>eventpipeline</artifactId>
      <version>5.8.18.349</version>
    </dependency>
    <!-- Use the following for streaming events to/from a Kafka cluster -->
    <dependency>
      <groupId>com.scaleoutsoftware.client</groupId>
      <artifactId>kafkaclient</artifactId>
      <version>5.8.18.349</version>
    </dependency>
</dependencies>

APIs for the ScaleOut DigitalTwin Builder for ScaleOut StreamServer:

<dependencies>
    <!-- Use the following to define a Digital Twin -->
    <dependency>
      <groupId>com.scaleoutsoftware.digitaltwin</groupId>
      <artifactId>core</artifactId>
      <version>1.2.4</version>
    </dependency>
    <!-- Use the following for an API driven deployment of a Digital Twin model -->
    <dependency>
      <groupId>com.scaleoutsoftware.digitaltwin</groupId>
      <artifactId>deployment</artifactId>
      <version>1.2.4</version>
    </dependency>
    <!-- Use the following for directing events from data sources to deployed Digital Twins  -->
    <dependency>
      <groupId>com.scaleoutsoftware.digitaltwin</groupId>
      <artifactId>datasource</artifactId>
      <version>1.2.4</version>
    </dependency>
    <!-- Use the following for testing Digital Twin models against mocked out infrastructure  -->
    <dependency>
      <groupId>com.scaleoutsoftware.digitaltwin</groupId>
      <artifactId>mock</artifactId>
      <version>1.2.4</version>
    </dependency>
</dependencies>