This document provides a brief overview of Integration Commons components and how to build them from scratch.
Integration Commons provides the common components required to build a new integration to Symphony Platform, as the common base class for any WebHook based integration, Symphony authentication utility classes, metrics tools, and many other utility classes.
The third-party services that would like to post messages into a configurable set of streams should define the integration-parent as a parent of your maven project.
Example:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>integration-parent</artifactId>
<groupId>org.symphonyoss</groupId>
<version>0.10.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>integration-test</artifactId>
<dependencies>
<dependency>
<groupId>org.symphonyoss.symphony.integrations</groupId>
<artifactId>integration-webhook</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
If you want to create a new webhook integration you should define the integration-webhook module as a dependency and start by extending the WebHookIntegration class, as it is the super class of every other integration.
You’ll build a simple java library that provides some useful services to build new integrations.
- JDK 1.8
- Maven 3.0.5+
Integration Commons is compatible with Apache Maven 3.0.5 or above. If you don’t already have Maven installed you can follow the instructions at maven.apache.org.
To start from scratch, do the following:
- Clone the source repository using Git:
git clone [email protected]:symphonyoss/App-Integrations-Commons.git
- cd into App-Integrations-Commons
- Build using maven:
mvn clean install
In order to distribute and/or deploy an Integration, the Maven build provides a -Pbundle
profile which creates a target/bundle
folder containing:
- an
integration.jar
artifact including all Java logic needed. - an
application.yaml
file that configures the Spring Boot application; the file must be located in the project's root folder. - a
run.sh
that is able to run the integration on different platforms (locally and remotely); the file must be located in the project's root folder.