Custom workflow review checklist
Learn how to go through the checklist before sending your custom workflow to Reltio for review.
Consider the following points:
- The
.JAR
must be built on JDK11. Ensure that the classes are built on JDK11 and that there’s nothing that is not supported by JDK11. - Set the scope of Workflow SDK dependencies to "provided". For more information, see
topic Dependency Scope.
See the example:
<dependency> <groupId>com.reltio.workflow</groupId> <artifactId>workflow-api</artifactId> <version>2022.1.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.reltio.workflow</groupId> <artifactId>workflow-custom</artifactId> <version>2022.1.0.0</version> <scope>provided</scope> </dependency>
-
The custom workflow must be using the AWS SDK for running Lambda functions with AWS libraries as dependencies.
You can use the sample .pom file given as a template for building custom workflow using Maven.
Sample: pom.dita
<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"> <modelVersion>4.0.0</modelVersion> <groupId>com.reltio.customername</groupId> <artifactId>custom-workflow</artifactId> <version>1.0.7</version> <properties> <aws-sdk-version>1.11.802</aws-sdk-version> <jdk>11</jdk> </properties> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-lambda</artifactId> <version>${aws-sdk-version}</version> <exclusions> <exclusion> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-core</artifactId> <scope>provided</scope> <version>${aws-sdk-version}</version> </dependency> <dependency> <groupId>com.reltio.workflow</groupId> <artifactId>workflow-api</artifactId> <version>2022.1.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.reltio.workflow</groupId> <artifactId>workflow-custom</artifactId> <version>2022.1.0.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${jdk}</source> <target>${jdk}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.1</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <repositories> <repository> <id>reltio-libs-release</id> <name>Reltio release repository</name> <url>https://repo-dev.reltio.com/content/repositories/public</url> </repository> </repositories> </project>
- The
.JAR
file must have all the dependencies packaged, if any of them are described in the pom.dita file. For more information, see topic Apache Maven Shade Plugin. - Add the scope to "", if there are similar dependencies in the AWS
SDK and Workflow API.
Ensure that the version is the similar to 1.11.802.
See the example:
<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>1.11.802</version> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-kms</artifactId> <version>1.11.802</version> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>jmespath-java</artifactId> <version>1.11.802</version> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-core</artifactId> <version>1.11.802</version> </dependency>
- Set the scope to "provided", when you use the GSON library.
See the example:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.4</version> <scope>provided</scope> </dependency>
- There must not be any unused dependencies.
- Cover at least 70% of your code by Unit/Integration tests.