Skip to content

The Symphony BDK (Bot Developer Kit) for Java helps you to create production-grade Chat Bots and Extension Applications on top of the Symphony REST APIs.

License

Notifications You must be signed in to change notification settings

finos/symphony-bdk-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build FINOS - Incubating License Maven Central javadoc

Symphony BDK for Java

Note

BDK version 3.0: Major change !

The newly introduced BDK version 3.0 relies on Java 17 and SpringBoot 3. This is a major change that allows Symphony to continue to propose the latest security fixes following the end of support of Spring Boot 2 and also to keep up with the latest evolutions of Java.

For the next 6 months Symphony will provide critical security fixes for BDK 2.0 where possible (since Spring gives no guarantees for their packages).

Please consider migrating your Bots in the coming months to benefit from the latest features and support.

Important

As detailed above, the BDK version 2.0 will stop being supported by Symphony on August 15.

The official Symphony BDK for Java helps you to create production-grade Chat Bots and Extension Applications on top of the Symphony REST APIs.

Installation and Getting Started

The reference documentation includes detailed installation instructions as well as a comprehensive getting started guide.

Here is a quick teaser of a complete Symphony BDK application in Java:

public class BotApplication {
    
    public static void main(String[] args) {
      
        final SymphonyBdk bdk = new SymphonyBdk(BdkConfigLoader.loadFromSymphonyDir("config.yaml"));
      
        bdk.activities().register(slash("/hello", context -> {
            bdk.messages().send(context.getStreamId(), "<messageML>Hello, World!</messageML>");
        }));
        
        bdk.datafeed().start();
    }
}

Build from Source

The Symphony BDK uses a Gradle build. The instructions below use the Gradle Wrapper from the root of the source tree. The wrapper script serves as a cross-platform, self-contained bootstrap mechanism for the build system.

Before you start

To build you will need Git and JDK 8 or later. Be sure that your JAVA_HOME environment variable points to the jdk1.8+ folder extracted from the JDK download.

Build from the Command Line

To compile, test and build all BDK2.0 jars, use:

./gradlew

To compile, test and build legacy jars:

git checkout legacy
./gradlew

Legacy modules (SDK and BDK 1.0) have been moved to the legacy branch

Install in local Maven repository

To install all Symphony BDK jars in your local Maven repository, use:

./gradlew publishToMavenLocal

Contributing

In order to get in touch with the project team, please open a GitHub Issue. Alternatively, you can email/subscribe to symphony@finos.org.

  1. Fork it (https://github.com/finos/symphony-bdk-java/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Read our contribution guidelines and Community Code of Conduct
  4. Commit your changes (git commit -am 'Add some fooBar')
  5. Push to the branch (git push origin feature/fooBar)
  6. Create a new Pull Request

NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

Need an ICLA? Unsure if you are covered under an existing CCLA? Email help@finos.org

Thanks to all the people who have contributed

contributors

License

Copyright 2021 Symphony LLC

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0