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.xml

    <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>http://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.xml 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.