Symphony Shared Stream

A collection of Java projects for building Symphony bots and apps

License

License

GroupId

GroupId

org.finos.symphony.toolkit
ArtifactId

ArtifactId

symphony-shared-stream
Last Version

Last Version

4.59.9
Release Date

Release Date

Type

Type

jar
Description

Description

Symphony Shared Stream
A collection of Java projects for building Symphony bots and apps
Project Organization

Project Organization

Finos

Download symphony-shared-stream

How to add to project

<!-- https://jarcasting.com/artifacts/org.finos.symphony.toolkit/symphony-shared-stream/ -->
<dependency>
    <groupId>org.finos.symphony.toolkit</groupId>
    <artifactId>symphony-shared-stream</artifactId>
    <version>4.59.9</version>
</dependency>
// https://jarcasting.com/artifacts/org.finos.symphony.toolkit/symphony-shared-stream/
implementation 'org.finos.symphony.toolkit:symphony-shared-stream:4.59.9'
// https://jarcasting.com/artifacts/org.finos.symphony.toolkit/symphony-shared-stream/
implementation ("org.finos.symphony.toolkit:symphony-shared-stream:4.59.9")
'org.finos.symphony.toolkit:symphony-shared-stream:jar:4.59.9'
<dependency org="org.finos.symphony.toolkit" name="symphony-shared-stream" rev="4.59.9">
  <artifact name="symphony-shared-stream" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.finos.symphony.toolkit', module='symphony-shared-stream', version='4.59.9')
)
libraryDependencies += "org.finos.symphony.toolkit" % "symphony-shared-stream" % "4.59.9"
[org.finos.symphony.toolkit/symphony-shared-stream "4.59.9"]

Dependencies

compile (3)

Group / Artifact Type Version
org.finos.symphony.toolkit : symphony-java-client-bindings jar 4.59.9
org.finos.symphony.toolkit : symphony-java-client-identity jar 4.59.9
org.finos.symphony.toolkit : symphony-java-client-entity-json jar 4.59.9

provided (5)

Group / Artifact Type Version
org.springframework.boot : spring-boot jar 2.3.2.RELEASE
org.finos.symphony.toolkit : symphony-api-spring-boot-starter jar 4.59.9
org.springframework.boot : spring-boot-starter-web jar 2.3.2.RELEASE
org.springframework.boot : spring-boot-starter-webflux jar 2.3.2.RELEASE
org.springframework.boot : spring-boot-starter-actuator jar 2.3.2.RELEASE

test (3)

Group / Artifact Type Version
junit : junit jar 4.13.1
org.apache.cxf : cxf-rt-rs-client jar 3.3.4
org.springframework.boot : spring-boot-starter-test jar 2.3.2.RELEASE

Project Modules

There are no modules declared in this project.

FINOS - Incubating sjt-build Coverage License Maven Central

What This Is

This project is a set of libraries aimed at facilitating creating Bots and Apps for the Symphony Chat Platform using Java and Spring Boot.

This project contains the following:

  • Symphony Java Client Bindings
  • Symphony Java Client Identity
  • Symphony API Spring-Boot Starter
  • Symphony App Spring-Boot Starter
  • Symphony JSON Support
  • Symphony FIX Support
  • A Symphony Maven Build Notifier
  • A TeamCity Build Notifier
  • Symphony Shared Stream
  • Chat Workflow
  • Tutorials for getting started
  • Demo bots and apps

Read further to see what each of these includes.

Overview and Dependencies

Many of the components in this project rely on each other, as demonstrated in this dependency diagram. This also gives and overviw of the purpose of each component.

Dependency Cake Diagram

Symphony Java Client Bindings

This provides a JAX-RS standard, Type-Safe means of interacting with Symphony pods via REST apis.

bindings is a set of swagger-generated domain objects and interfaces that provide a Java API for interacting with Symphony's REST endpoints.

This is used in preference to Symphony's own API as the configuration can be left to spring boot, and you can use Spring's starters for JAX-RS to build your application.

View The README

Symphony Java Client Identity

symphony-java-client-identity provides a single abstraction of SymphonyIdentity, which encapsulates the data needed to authenticate with a symphony server. That is:

  • Private Key
  • Certificates
  • Common Name
  • Email Address

This is a highly convenient abstraction which works with Spring Boot's use of Jackson and YAML to describe Bot and App identities in Java.

View The README

Symphony API Spring Boot Starter

Provides Spring-Based configuration and auto-wiring for Symphony APIs. This is perfect if you are building a Symphony Bot using Spring Boot.

Symphony App Spring Boot Starter

If you are building a Symphony App, there are multiple concerns around app security, networking, describing your application and handling user authentication.

This provides you with an out-of-the-box way to get started and build an app with all of these concerns taken care of.

Symphony JSON Support

This is a utility that helps you serialize/deserialize JSON in a format suitable for the JSON data payload of a Symphony Message, using Jackson.

QuickFIX Support

This is a utility that helps you serialize/deserialize QuickFIX messages into JSON Format, as described here.

Although this is not reliant on Symphony code, it is adjacent tech and so might be useful for sending FIX payloads within Symphony.

Maven Build Reporter

Provides a maven extension that allows you to report build results into a Symphony chat room.

TeamCity Build Notifier

Allows you to report your TeamCity builds into Symphony chat rooms, using a bot.

Symphony Shared Stream

The purpose of this module is to provide a drop-in stream consumer for Symphony that allows a cluster of bot replicas to coordinate work. That is, prevent the problem of two or more bots simultaneously consuming and processing the same Symphony message.

Chat Workflow

This module provides a one-stop-shop for constructing work-flows in Java. It is intended that beyond configuration (see below), the developer will not have to understand any Symphony APIs to build initial proof-of-concept work-flows and have them run in Symphony.

License

This project is licensed under the Apache 2.0 License.

Releasing This Project (For Maintainers)

In order to do a release:

  1. Changes.md
  • Update this file to include details of the release.
  1. On Releaser's machine:
mvn test integration-test
mvn versions:set -DnewVersion=<our breaking change no>.<symphony-api-version>.<our-release-no> -DartifactId=\*  -DgroupId=\*
mvn -DskipTests -pl '!demos/demo-bot,!demos/demo-app,!demos/claim-bot,!demos/poll-bot,!demos/todo-bot' clean test source:jar javadoc:javadoc deploy -P symphony-release
mvn versions:set -DnewVersion=<our breaking change no>.<symphony-api-version>.<our-release-no+1>-SNAPSHOT -DartifactId=\*  -DgroupId=\*
# then push to git
  1. On oss.sonatype.org
  • Close the Staging Repository
  • Release it.
  1. Perform release on github with same number
org.finos.symphony.toolkit

The Fintech Open Source Foundation (www.finos.org)

FINOS’ mission is to promote open innovation in financial services. See our full list of repos from our nearly 100 projects & 11 programs at finos.github.io

Versions

Version
4.59.9