The Amazon SDK for Java 1.x has entered maintenance mode as of July 31, 2024,
and will reach end-of-support
SWF basics
These are general patterns for working with Amazon SWF using the Amazon SDK for Java. It is meant primarily for reference. For a more complete introductory tutorial, see Building a Simple Amazon SWF Application.
Dependencies
Basic Amazon SWF applications will require the following dependencies, which are included with the Amazon SDK for Java:
-
aws-java-sdk-1.12.*.jar
-
commons-logging-1.2.*.jar
-
httpclient-4.3.*.jar
-
httpcore-4.3.*.jar
-
jackson-annotations-2.12.*.jar
-
jackson-core-2.12.*.jar
-
jackson-databind-2.12.*.jar
-
joda-time-2.8.*.jar
Note
The version numbers of these packages will differ depending on the version of the SDK that you have, but the versions that are supplied with the SDK have been tested for compatibility, and are the ones you should use.
Amazon Flow Framework for Java applications require additional setup, and additional dependencies. See the Amazon Flow Framework for Java Developer Guide for more information about using the framework.
Imports
In general, you can use the following imports for code development:
import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflowClientBuilder; import com.amazonaws.services.simpleworkflow.model.*;
It’s a good practice to import only the classes you require, however. You will likely end up
specifying particular classes in the com.amazonaws.services.simpleworkflow.model
workspace:
import com.amazonaws.services.simpleworkflow.model.PollForActivityTaskRequest; import com.amazonaws.services.simpleworkflow.model.RespondActivityTaskCompletedRequest; import com.amazonaws.services.simpleworkflow.model.RespondActivityTaskFailedRequest; import com.amazonaws.services.simpleworkflow.model.TaskList;
If you are using the Amazon Flow Framework for Java, you will import classes from the
com.amazonaws.services.simpleworkflow.flow
workspace. For example:
import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow; import com.amazonaws.services.simpleworkflow.flow.ActivityWorker;
Note
The Amazon Flow Framework for Java has additional requirements beyond those of the base Amazon SDK for Java. For more information, see the Amazon Flow Framework for Java Developer Guide.
Using the SWF client class
Your basic interface to Amazon SWF is through either the
AmazonSimpleWorkflowClient
or
AmazonSimpleWorkflowAsyncClient
classes. The main difference between these is that the \*AsyncClient
class return
Future
AmazonSimpleWorkflowClient swf = AmazonSimpleWorkflowClientBuilder.defaultClient();