/sdk-java

The Java SDK for building plugins that integrate with ManyWho

Primary LanguageJava

ManyWho Java SDK (v2)

Build Status Maven Central Gitter

An open source SDK that allows you to easily build plugins and services that integrate with Flows running on the ManyWho platform.

Installation

The SDK is currently available from the Maven Snapshots repository and is automatically published there on each commit, so it's easy to integrate with your Java application:

<repositories>
    <repository>
        <id>ossrh</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.manywho.sdk</groupId>
        <artifactId>sdk-services</artifactId>
        <version>2.0.0-SNAPSHOT</version>
    </dependency>
</dependencies>

Usage

Some initial basic information on how to build a plugin that integrates with ManyWho using this SDK is available here.

Modules

WARNING: These modules are in flux, and the object structures/names/classes might change at any time!

sdk-api

This module contains the ManyWho API objects, spanning across our Draw, Run and Translate APIs. Our APIs aren't 100% covered (yet!) but the most commonly used objects are available. If there are objects missing that you need in your application, feel free to open an issue or submit a pull request and we'll include them as soon as possible.

<dependency>
    <groupId>com.manywho.sdk</groupId>
    <artifactId>sdk-api</artifactId>
    <version>${version.manywho.sdk}</version>
</dependency>

sdk-client

This module supplies some clients that help you integrate with the various ManyWho APIs. It currently supports parts of the Run API and is actively being improved to cover the other APIs.

<dependency>
    <groupId>com.manywho.sdk</groupId>
    <artifactId>sdk-client</artifactId>
    <version>${version.manywho.sdk}</version>
</dependency>

sdk-example

This module is an example Service written using the SDK. It is meant to be used as a reference for building other services, and should contain examples of each major aspect of the SDK (e.g. Identity, Files, Social, etc.).

sdk-server-servlet3

This module enables support for running services using a Servlet 3 compatible container (e.g. Tomcat) and includes the sdk-services module as a dependency.

<dependency>
    <groupId>com.manywho.sdk</groupId>
    <artifactId>sdk-server-servlet3</artifactId>
    <version>${version.manywho.sdk}</version>
</dependency>

sdk-server-undertow

This module is probably what you want - it enables support for running services using the high-performance, embedded Undertow server and includes the sdk-services module as a dependency.

<dependency>
    <groupId>com.manywho.sdk</groupId>
    <artifactId>sdk-server-undertow</artifactId>
    <version>${version.manywho.sdk}</version>
</dependency>

This module includes the vast majority of the SDK's functionality for building services. Basic documentation for using it is being actively written here, but if there is anything missing feel free to open an issue or submit a pull request and we'll update them as soon as possible.

<dependency>
    <groupId>com.manywho.sdk</groupId>
    <artifactId>sdk-services</artifactId>
    <version>${version.manywho.sdk}</version>
</dependency>

Contributing

Contributions are welcome to the project - whether they are feature requests, improvements or bug fixes! Refer to CONTRIBUTING.md for our contribution requirements.

License

This SDK is released under the MIT License.