symphonyoss / symphony-java-client

Java client library for Symphony
Apache License 2.0
34 stars 37 forks source link

Maven Central Build Status Validation Status

Symphony Java Client (Archived)

The Symphony java client provides a real-time wrapper around the Symphony REST API's to simplify the creation of chat sessions, room access, presence, messaging and more... The client provides a set of logical services representing supported features of the Symphony platform. Services support real-time events through feature based listeners and communication objects. Access is not limited to the services as all underlying Symphony client implementations are exposed for advanced use or creation of your own service.

NOTE: Project is Archived

In August 2020, the Project was transitioned to Archived stage as its not currently maintained and it's superceded by other clients (e.g. Symphony's Java Client or Deustche Bank Java Client.

Features

Change log and notes

V1.1.5 (SNAPSHOT)

V1.1.4

V1.1.3 -(FAILED RELEASE)

V1.1.2

V1.1.1

V1.1.0

V1.0.3

V1.0.2

Branch Strategy

develop - All active development on latest SNAPSHOT

master - Periodic merged and tested features from develop branch

Requirements

POM:

    <dependency>
        <groupId>org.symphonyoss.symphony</groupId>
        <artifactId>symphony-client</artifactId>
        <version>(Version)</version>
    </dependency>

Certificates:

    Please contact your Symphony local administrator to obtain the necessary certificates
    for the user/service account being used to access the POD.

    Server Truststore = Contains server certs
    User Keystore = Symphony user client certificate

    Note: The latest version of the SymphonyClient object supports the ability to create custom HTTP Clients, which
    means you can bind different .p12 certs representing different BOT users.

Required System Properties or define through SymphonyClientConfig:

    -Dtruststore.file=
    -Dtruststore.password=password
    -Dsessionauth.url=https://(hostname)/sessionauth
    -Dkeyauth.url=https://(hostname)/keyauth
    -Duser.call.home=frank.tarsillo@markit.com
    -Duser.cert.password=password
    -Duser.cert.file=bot.user2.p12
    -Dpod.url=https://(pod host)/pod
    -Dagent.url=https://(agent server host)/agent
    -Duser.email=bot.user2@markit.com or bot user email

Exposing JMX HealthCheck endpoint

The -Dhealthcheck.jmx.enabled option is enabled by default and exposes a JMX MBean called org.symphonyoss.client:type=ClientCheckMBean, with one operation called isUp that returns true if connections with pod/keymanager are successful and encryption/decryption works; otherwise, it will throw a SystemException with a detail of the failed checks.

Using Jolokia, the URL to invoke the operation would be http://localhost:8778/jolokia/exec/org.symphonyoss.client:type=ClientCheckMBean/isUp and can be configured as probe for application readiness and liveness (as with Kubernetes and OpenShift

Other key requirements:

Examples

The latest examples are part of this SJC project and are continually updated with new versions released.

In addition, there is an external project providing samples of use: see Examples Project

API Docs

API Documentation

Contribute

This project was initiated at IHS Markit and has been developed as open-source from the very beginning.

Contributions are accepted via GitHub pull requests. All contributors must be covered by contributor license agreements to comply with the Code Contribution Process.