Java SDK for iWF workflow engine
See samples for how to use this SDK to build your workflow.
Here is the link to all the versions on Maven available to use. It gets replicated from staging repo after 30-60 minutes.
Also the Java docs for the latest version. For the latest version, MVN Repository website may have 1~2 days delay to show up.
// https://mvnrepository.com/artifact/io.iworkflow/iwf-java-sdk
implementation 'io.iworkflow:iwf-java-sdk:2.5.+'
<!-- https://mvnrepository.com/artifact/io.iworkflow/iwf-java-sdk -->
<dependency>
<groupId>io.iworkflow</groupId>
<artifactId>iwf-java-sdk</artifactId>
<version>2.5.+</version>
<type>pom</type>
</dependency>
To implement a workflow, the two most core interfaces are
Workflow interface defines the workflow definition
WorkflowState interface defines the workflow states for workflow definitions
A workflow can contain any number of WorkflowStates.
See more in https://github.com/indeedeng/iwf#what-is-iwf
git submodule update --init --recursiveRun the command git submodule update --remote --merge to update IDL to the latest commit
If you’d like to test your changes to the SDK with the workflows in the samples repo, use the local publishing command:
./gradlew publishToMavenLocal -x signMavenJavaPublication
build.gradle depends on the same version you just published. To find which version you published, open the SDK’s build.gradle file and look for the version = "x.y.z" line near the bottom of the file. Then run:
./gradlew --refresh-dependencies build
./gradlew unpublishFromMavenLocal
.github/workflows/: the GithubActions workflowsiwf-idl/: the idl submodulescript/: some scripts for GithubActions and testingsrc/: Java source code
main/java/io/iworkflow/core/: SDK code
command/: the command implementationcommunication/: the communication implementationmapper/: the mapper with IDLpersistence/: the persistence implementationvalidator/: some validatorsClient.java: the client implemntation...java …test/java/io/iworkflow/: Java test code (currently only integ test)
spring/: the integ test setup of using Spring as REST controllerinteg/: the integration tests
XyzTest.java: a file for test casesxyz/: the iWF workflow implementation for the integration test casesstart/decide APIs and completing workflow