I added a pom.xml file that will create a jar against the version of maven2 that is in the stock Ubuntu 13.10 installation as of 06/18/2014. Use "mvn clean install" to create a .jar file. I have not tested the mvn jar artifact, I have simply created it for convenience.
Creating my own IntelliJ project, I used the following jars that I downloaded (starting) from:
http://mvnrepository.com/artifact/com.netflix.glisten/glisten/0.3
-rw-r--r-- 1 ethomas ethomas 114916 Jun 9 23:42 aspectjrt-1.6.0.jar
-rw-r--r-- 1 ethomas ethomas 11531774 Jun 9 22:42 aws-java-sdk-1.6.6.jar
-rw-r--r-- 1 ethomas ethomas 326917 Jun 9 22:40 cglib-nodep-2.2.2.jar
-rw-r--r-- 1 ethomas ethomas 46725 Jun 9 23:39 commons-codec-1.3.jar
-rw-r--r-- 1 ethomas ethomas 60686 Jun 9 23:40 commons-logging-1.1.1.jar
-rw-r--r-- 1 ethomas ethomas 807736 Jun 9 23:42 freemarker-2.3.9.jar
-rw-r--r-- 1 ethomas ethomas 234177 Jun 9 22:39 glisten-0.3.jar
-rw-r--r-- 1 ethomas ethomas 1795936 Jun 9 22:41 guava-12.0.jar
-rw-r--r-- 1 ethomas ethomas 424648 Jun 9 23:40 httpclient-4.2.jar
-rw-r--r-- 1 ethomas ethomas 223282 Jun 9 23:49 httpcore-4.2.jar
-rw-r--r-- 1 ethomas ethomas 34477 Jun 9 23:39 jackson-annotations-2.1.1.jar
-rw-r--r-- 1 ethomas ethomas 206379 Jun 9 23:39 jackson-core-2.1.1.jar
-rw-r--r-- 1 ethomas ethomas 922643 Jun 9 23:39 jackson-databind-2.1.1.jar
-rw-r--r-- 1 ethomas ethomas 16046 Jun 9 22:41 json-simple-1.1.jar
-rw-r--r-- 1 ethomas ethomas 245039 Jun 9 23:40 junit-4.11.jar
-rw-r--r-- 1 ethomas ethomas 388864 Jun 9 23:40 mail-1.4.jar
-rw-r--r-- 1 ethomas ethomas 504643 Jun 9 22:41 spock-core-0.7-groovy-2.0.jar
-rw-r--r-- 1 ethomas ethomas 556747 Jun 9 23:42 spring-beans-3.0.7.RELEASE.jar
-rw-r--r-- 1 ethomas ethomas 670388 Jun 9 23:43 spring-context-3.0.7.RELEASE.jar
-rw-r--r-- 1 ethomas ethomas 383621 Jun 9 23:43 spring-core-3.0.7.RELEASE.jar
-rw-r--r-- 1 ethomas ethomas 205357 Jun 9 23:43 spring-test-3.0.7.RELEASE.jar
-rw-r--r-- 1 ethomas ethomas 179346 Jun 9 23:43 stax-1.2.0.jar
-rw-r--r-- 1 ethomas ethomas 26514 Jun 9 23:44 stax-api-1.0.1.jar
The two most important items here are the glisten-0.3.jar file and the aws-java-sdk-1.6.6.jar files. The rest are either dependencies or transitive dependencies. Basically I started including everything until it worked. I also used groovy-2.2.1.
Running test cases requires setting up Domains in SWF at the AWS SWF Console. Look at Utils.java to set either BasicCredentials (requires putting in AWSSecretKey and AWSAccessKey variables) or EnvironmentVariableCredentialsProvider to set up environment variables (see http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/EnvironmentVariableCredentialsProvider.html)
To set up the pom.xml file, I used: http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven and http://maven.apache.org/pom.html
Feel free to modify that file as necessary.
There are 4 tests that run in this source code so far:
-
TestAndPromise. This has a simple activity that sleeps and prints a message, and tests the AndPromise concept by running a 'waitFor()' on an AndPromise of promises A and B.
-
TestNested. This generates the string "ABCDEFGHIJKLMNOPQRSTUVWXYZ" by using a series of promises, each which depends on the output of the previous one.
-
TestNestedSettable. This is the same test as TestNested except Settables are used with the .chain() method to set up the relationship between the various promises.
-
TestTryCatck. This is a test that does an integer division in the activity that uses as divide by 0 to trigger an error to test the glisten doTry/withCatch structure.