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: :: ScaleOut API Repository https://repo.scaleoutsoftware.com/repository/external ...and then you can add the following JARs relative to your needs and licenses: APIs for ScaleOut StateServer: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :: com.scaleoutsoftware.client jnc 5.8.18.349 com.scaleoutsoftware.client jrs107 1.2 com.scaleoutsoftware.spring session 1.1 APIs for ScaleOut StreamServer: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :: com.scaleoutsoftware.client eventpipeline 5.8.18.349 com.scaleoutsoftware.client kafkaclient 5.8.18.349 APIs for the ScaleOut DigitalTwin Builder for ScaleOut StreamServer: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :: com.scaleoutsoftware.digitaltwin core 1.2.4 com.scaleoutsoftware.digitaltwin deployment 1.2.4 com.scaleoutsoftware.digitaltwin datasource 1.2.4 com.scaleoutsoftware.digitaltwin mock 1.2.4